Developers patch 3745 - 3748
-
-- Control groups --
Control groups in Supreme Commander has always been a bit messy, especially when you look at how other strategy games approach it. We're streamlining their behavior, without removing the capability to have the old behavior. You can find the exact details on Github:
Deprecated UI mods
The following UI mods are known to collide with these changes, and are therefore deprecated:
group_split
Control Group Zoom Mod
additionalControlGroupStuff
Make a post in this thread if you think some of these features are worth keeping around and we'll discuss whether the UI mod should be re-implemented or that we can integrate the behavior into the game.
Settings
With these changes, there are three places where you can adjust the behavior. Lets go over them one by one.
Set behavior
Triggers when you try to create a control group with your current selection. The settings allow you to 'steal' units from other control groups, or the old behavior where a unit can be part of multiple control groups
Factory behavior
Triggers when a factory is assigned to a control group and it starts producing a unit. The settings allow you to create units that are not attached to a control group, or the old behavior where a unit inherits the control group of the factory.
Double tap behavior
Triggers when you select a control group twice. The settings allow you to choose between a series of behaviors:
-
- none: nothing happens, the behavior is disabled
-
- translate-zoom: the old behavior, where the camera is translated and zoomed in / out to see the entire control group
-
- translate-zoom-if-lower: the old behavior, but it does not zoom in. It only translates the camera and zooms out as required.
-
- translate`: the old behavior, but it does not change the zoom at all. It only translates the camera.
These changes give you full control over what some of the UI mods implemented separately.
Double tap decay
Allows you to define the amount of time (in miliseconds) when something is considered a double tap. Defaults to the old value (which is 2 seconds).
Hotkeys
For completeness sake I'll include all the related hotkeys. Some of these are unchanged from the old behavior.
['set_group1'] = '<LOC key_desc_0015>Set Group 1'
Defines the units for control group 1. Steal behavior can be adjusted using the
Set behavior
in the settings.['group1'] = '<LOC key_desc_0004>Recall Group 1'
Recalls the control group by selecting it.
['revert_selection_set'] = 'Restore selection to the one before recalling a control group'
New behavior that allows you to switch back to the previous selection when you previously recalled a control group.
['append_group1'] = 'Append control group 1 to current selection'
The old append behavior, where the control group is added to the current selection.
['add_selection_to_selection_set1'] = 'Append the current selection to control group 1'
An alternative to the append behavior, that allows you to add the current selection to the control group.
['combine_and_select_with_selection_set1'] = 'Combine selection and control group 1 and select the control group'
An alternative to the append behavior that allows you to merge the current selection and the control group and then immediately recalls the control group.
-- Command and cursor interactions --
There are a lot of small improvements we can make to command and cursor interactions. A proof of concept was made by @Strogo in this forum post. We're now integrating the majority of his work, while refactoring how cursor interaction works from the ground up. You can find the exact details on Github:
Deprecated UI mods
The following UI mods are known to collide with these changes, and are therefore deprecated:
Advanced Camera Stuff
(we're integrating the range rings of this mod)Random UI Improvements
Make a post in this thread if you think some of these features are worth keeping around and we'll discuss whether the UI mod should be re-implemented or that we can integrate the behavior into the game.
Settings
With these changes additional settings come in to help you customize the behavior to your liking. Lets go over them one by one.
ignore mode via Ctrl
When enabled and holding (left) control, forces the game to ignore any other command but move and attack move commands. This allows you to run away without accidentally reclaiming. Or make it easier to micro your units without accidentally directly attacking another unit.
Default selection threshold
The higher the value, the easier it becomes to select and target units or props. The value is in (screen) pixels. This can help you select individual units or props, especially on displays with higher resolutions.
Note that Interaction with units take precedence over props. When multiple entities are in range, the one nearest to the mouse location has precedence.
Reclaim selection threshold
The same as the previous, but specifically for when you're in reclaim command mode. Makes it less tedious to reclaim by making it more difficult to miss click.
Note that Interaction with units take precedence over props. When multiple entities are in range, the one nearest to the mouse location has precedence.
Replay selection threshold
The same as the previous, but specifically for when you're watching a replay. Should make it easier to track units while they are on the move.
Behavior changes
Issue tactical / strategical missiles
Tactical and strategical missiles can no longer target specific units or props. Instead, they always ground fire. This guarantees that they target exactly where you click. Prevents the intel bug (of 'dead structures') from causing all sorts of issues, such as your order not going through because the unit is 'dead'.
Other features
Disabled reclaim cursor
At a certain (camera) distance from the terrain you can no longer issue reclaim orders. This is now made visual by adjusting the cursor. This should improve the UX, and prevent issues such as the one described in this forum post.
-- Improved performance of reclaim labels --
The performance of reclaim labels have always been questionable. There have been many attempts at improving their performance - and finally here we are! Reclaim labels no longer have a significant performance hit on your fps. On top of that, reclaim is batched to make it easier to understand the amount of reclaim that is on top of each other. The batching is disabled the moment reclaim commands valid.
Deprecated UI mods
The following UI mods are known to collide with these changes, and are therefore deprecated:
Advanced Reclaim&Selection Info
Advanced Reclaim Info
Better Reclaim View
disable reclaim UI
DynamicReclaimGrouping
EzReclaim
OnScreenReclaimCounter
Optimized Reclaim View
SmartReclaimSupport
Sadly, the list is quite large. The reason for this is that apparently all the UI mods related to reclaim did not adhere to good modding practices. This is partly because the old implementation was indeed difficult to hook. We've taken this into account with the new implementation. We'll be integrating some of the features of these UI mods (such as color-tuning reclaim based on their value), but due to the amount of UI mods we can't integrate everything.
-- Recall --
A new feature that was requested by other contributors to decrease the amount of effort that it takes to close a losing game. You can now recall via the diplomacy menu. A recall is similar to 'conceding' in other games: if you and your allies decide to recall, your team is taken out of the game.
The recall conditions are as follows:
- With a team of 2 or less players: all players need to agree
- With a team of 3 or more players: all but one player needs to agree
-- Observers can see mouse locations --
A new and unique feature to help trainers train and to help casters cast: as an observer you can view the mouse locations of the players that are playing! As a result, it is immediately clear what someone is paying attention.
This feature does not work in replays, and it does not work when you watch a live-replay.
Looking for feedback
We're open to all feedback, but we're specifically looking for feedback on the naming and descriptions. I'm not a English native speaker so they may be a bit wonky. I'm also not able to translate to other supported languages of the game. We're very open to have these translated too.
-
Current list of deprecated mods:
Raw list of changes:
(Draft as of 2022/11/04 - 22:15 (GMT + 1)) # Game version 3745 (6th of November, 2022) And there it is, the last major patch of the year! This patch was ambitious. The purpose was to introduce modern features into the game, while at the same time make the game easier to customize to your liking. Some of the patch can be immediately applied by players, like the extended features on control groups, camera recall functionality and the improved performance of the reclaim overview. Other features are not immediately visible but are a major step forward, like the navigational mesh we generate for the map you're playing on for AIs. Previous patches primarily made changes in the code directly related to the simulation. This patch also includes changes to the code surrounding the user interface. Also refers to UI code or UI mods. It was not possible to do this patch without causing incompatibility with some of the UI mods that are out there. We introduced a list of incompatible mods at the end of this changelog. Authors can update their mod, bump the version number and the game should automatically make it available again. As a minor note to the authors of UI mods: it is better to have many small UI mods that each add in a single feature, then it is to have one large UI mod that adds in many features. One example is Economy Manager - a mod often used by players - is no longer compatible because one of its dozen features is incompatible:the command feedback no longer triggers with Economy Manager enabled. Long story short: keep the UI mods small and simple, as people can enable any number of them. And as this year ends I'd like to show my personal appreciation to some contributors and community members. I'll start off with hdt80bro, who has been working on the repository for the past few months. His extensive knowledge and motivation was visible in our discussions and above all in his code changes. We're lucky to have him. Next to that I'd like to thank Madmax for always being there when I needed essentially anything. Whenever I needed a tester, Madmax is usually there ready to help confirm the stability of it. And of course there is Rowey - always ready to assist with his friendly character. Rowey has pushed the FAF Youtube that increased exposure on the development of this game, like being there when we were producing the game development series. a lot of the videos on game development. And last I'd like to thank Sprouto - creator of the LOUD community - for being an inspiration to what he managed to achieve with LOUD. Every time we talk I learn something new and I am looking forward to our next conversation. And like that, a new year of development will start. And with a new year we'll take a new route to how we'll further develop this game. Instead of having a 'game team' - that introduces an arbitrary boundary between contributors - we'll move towards how other projects are managed: by creating a clear, properly scoped backlog of issues that contributors can pick up. Anyone can add and discuss issues in the backlog. Once an issue is accepted it is added to a milestone. Milestones allow us to steer contributors towards a common vision. They make it immediately clear when you can expect your changes to be live. Alas - there's too much to tell and too little room in this changelog. For those interested, we'll soon make a post on the forums and release the new contribution guidelines on the repository. With appreciation towards all the contributors that made this patch possible, Jip ## Features - (#4119) Extend functionality of control groups Adds in modern features into how control groups work. This includes: - the 'stealing' units from other control groups (like in Starcraft II) - being able to toggle the control group inheritance of factories - allow you to adjust the behavior of the camera when you double tap - allow you to adjust the double tap interval And on top of that we've introduced various new hotkeys that interact with control groups. You can find the settings in the game options. You can find the additional hotkeys in the hotkeys menu. - (#4124, #4331) Improve cursor / command behaviors Acts as an integration of the 'Random UI improvements' mod of Strogo. This includes: - disabled reclaim cursor when you can't issue reclaim orders due to camera distance - manual tactical / nuke launchers no longer attach to units, and instead always target the ground - area of effect preview when you try to issue an attack order - allow you to adjust the selection threshold, particular useful for 2K+ displays or when watching replays You can find the settings in the game options. - (#4124) Extend camera features Acts as an integration of Additional Camera Stuff. This includes: - Allows you to retrieve up to 9 camera locations - Allows you to restore the previous camera position You can find the additional hotkeys in the hotkeys menu. - (#4188, #4190, #4191) Allow observers to view mouse position of players in-game In particular useful for casters. The feature does not work with replays or live games (that are replays too). In order for it to work you need to be an observer in the game, as it starts. The information is not stored in the replay either. - (#4203, #4204, #4212, #4234, #4244) Introduce recall Adds in a recall feature. Similar to a the 'concede' feature that other games provide, it allows you to cast a team vote on whether you want to recall as a team. When you are with two or less alive players it requires all alive players of the same team to agree. When you are with three or more alive players it requires all but one of the alive players of the team to agree. Was introduced because people got frustrated with the Fullshare mode in combination with the limitated player base size. - (#4219) Add in successive upgrades hotkeys for Hotbuild Allows you to easily queue the upgrade of an upgrade using Hotbuild. - (#4232) Add batching of reclaim labels Reclaim labels are batched as you zoom out. As a result they remain readable. - (#4241, #4334) Add coloring of reclaim labels Reclaim labels are colored based on their value. - (#4175) Add PBR blender nodes for rendering of units This acts as a step-up towards introducing PBR-based shaders. It is used to check the textures / assets of units and acts as an inspiration to the shader implementation. - (#4131) Introduced of shared armies Allows you to play as one army, where you all share control over the same units. This used to be a standalone executable and is now integrated with the base game. You can find these settings in the lobby options. Note that when applied the game is no longer rated. - (#4254) Improve text markers When you create a text marker it is also send to the chat with camera coordinates attached. This allows you to jump to text markers. Based on a forum post. - (#4253) Attempt at fixing engineer behavior for Seraphim air factories Engineers constructed by the Seraphim air factories get teleported instead of 'tractored' off the factory. This was the only factory that made it impossible to select the engineer during roll off. Attempting to make the unit selectable during tractoring introduced a pile of issues. Therefore now all Seraphim air factories are magicians until we find better effects. Based on a forum post. - (#4249) Add in a hotkey to select intelligence structures Based on a suggestion by a user. - (#4249) Add in a hotkey to filter your selection to the engineer with the highest tech All other engineers in your old selection will assist the selected engineer Based on a suggestion by a user. - (#4266) Improve pathing surrounding props Only large props (the size of a frigate or larger) block pathing. Previously a lot of props blocked pathing, in particular small rocks. This introduced a lot of noise in the occupancy layers, where it isn't clear that this noise exists. Especially when you are zoomed out, being unable to see the rocks. The noise caused units to behave strange, suddenly stop, circle around, etc. By removing this noise we indirectly improve pathing a lot. - (#4270, #4282, #4285, #4298, #4312, #4313, #4308) Introduce generated navigational mesh to interpret maps This feature is technically involved. The idea is similar to the marker generator that has been part of the Uveso AI for a few years now, but instead of markers we work with areas. The navigational mesh can be used by AIs to understand and interact with the map. The feature is based on compression via quad trees that compress the pathing information. We use the leafs of the quad tree to create a graph. This graph is initially used for just pathfinding, but we can use the graph for so much more. All the code related to this feature is licensed using the MIT license. We're improving it in collaboration with the AI developers. We try to convert their requests into an algorithm that computes the answer. The algorithm needs to be simple, yet efficient as there is essentially no budget to perform computationally expensive algorithms. We're open to new contributors to help maintain and expand this exciting new feature of FAF. - (#4287, #4328) Adjust factory behavior when building and finished building a unit Drastically reduces the time it can take for a unit to roll off the building pad of a factory. The production of a new unit starts the moment the build pad is clear. Also allows units to rotate to the correct roll off point right before being finished. Tech 1 tanks, artillery and labs have one second additional build time to compensate for the reduction of roll off time. - (#4307) Re-organize game options Adds in headers and groups various options together. A few options have been renamed. Others have been removed. The game options menu is a lot more organised now. ## Bug fixes - (#4338) Fix remote code exploit It was possible to inject arbitrary code into the simulation via a UI mod. This would not be able to affect your system, but it would allow you to run any code in the simulation and have that code run for all players involved. It is highly appreciated that this was brought to our attention discretely. - (#4205) Fix typo with missile callbacks for AIs - (#4225, E#13) Fix Harbingers preference to reclaim instead of attacking during an attack move They now attack move as you'd expect, instead of notoriously reclaiming the nearest tree. - (#4248, #4337) Fix issues with Tractor Claws of the Colossus Air units are now destroyed as soon as they reach the claw and the beam of the colossus is now less likely to try and attack units that are being tractored. - (#4201) Fix footprint and collision box of Ythotha The Ythotha is no longer afraid of walls and can again happily crush them. - (#4202) Fix duration of death animations of structures It now matches the time it has always taken for factories to be destroyed. - (#4250) Fix missing meshes and normals of various units Including the Summit, that now again looks a lot better. - (#4207, 4230) Fix props corrupting bomber weapon state - (#4260) Add the BlueprintId to `Blueprint.CategoriesHash` - (#4171) Fix scaling issue with new mod manager - (#4262) Fix teleportation glitches No more teleporting Cybran ACU with a cloak upgrade. - (#4264) Fix a glitch with an Atlantis and a gunship with its cargo No more invincible units through this weird glitch. - (#4291) Allow turrets to rotate to the nearest threat again This was broken by the previous patch, it now functions as expected again. - (#4329) Fix collision size of Titans, Loyalists and Ilshahovs for beam weapons Beam weapons (in particular, the Seraphim tech 2 point defense) should now more reliably hit these specific units. - Properly populate `AdjacentUnits` of structures Useful for AIs to quickly determine adjacent units. Only units that provide an adjacency bonus are tracked. ## Performance - (#4180) Improve performance of AI economy conditions - (#4284) Improve performance of AI builder conditions - (#4237) Improve performance by changing `self.Fun(self, ...)` to `self:Fun(...)` This was initially considered an improvement to performance. With the recent improvements to the benchmarking tools we found out that this isn't strictly the case. Therefore we are reverting it back to the more-readable format. - (#4232, #4242, #4241, #4243) Improve performance of reclaim labels Drastically improves the performance of reclaim labels. A lot of UI mods adjusted the behavior of reclaim labels. Usually they did this by using destructive hooks. That makes it impossible for us to push through these improvements. UI mods that apply destructive hooks to `reclaim.lua` have been deprecated. Their authors are highly encouraged to update their mods and are recommended to use soft hooks instead. - (#4325) Clean up and improve performance of imports ## Campaign / AI - (#4265, #4268, #4271, #4305, #4300, #4294) Improve AI behavior and performance of the base game Including, but not limited to: - use alternative move functions that reduce formation issues - implement eco-over-time to better guage the economic situation - fix ACU behavior where it is unable to finish structures - fix various issues with commands not being cleared properly - fix factory manager not cleaning up destroyed factories - introduction of pathing build conditions (using navigational mesh) - (#4304) Add HQ support functions for AIs - (#4309, #4310, #4319, #4311) Clean up of various build conditions ## Annotations (#4172, #4186, #4176, #4174, #4183, #4235, #4227, #4238, #4025, #4229, #4069) We're batching all pull requests with regards to annotations into one entry. That doesn't make the work less meaningful - the introductions of annotations is what Typescript is for Javascript: a completely new and improved approach to development. You can find the plugin by searching for `fa-lua-vscode-extension` in the `FAForever` Github group, as found here: https://github.com/FAForever ## Other changes - (#4214) Adjust order of lobby options for less scrolling - (#4226) Introduce initialization decoupled layouter design pattern Improves the layouter UI pattern that was introduced since the last patch - (#4228, #4246) Add key action localization directives Allows us to add in keys that are used for a hotkey to a description. Useful for tooltips and the loading screen tips. - (#4256) Allow debugging drawing tools to function properly in AI games These are often used by AI developers to debug their code. - (#4257) Allow easier testing on deploy/fafdevelop All files in `/devdata` are now loaded when playing on the `FAF Develop` game type - (#4217) Add new and improve existing loading tips - (#4274) Update description of Fullshare gamemode - (#4280, #4281, #4323) Improve workflow for testing Allows us to write better tests for engine-oblivious functionality - (#4279) Add or improve translations for traditional chinese - (#4269) UI Framework: introduction of the set and support classes - (#4289) Speed up checking when a player is defeated In an attempt to match the old time taken to determine when a player is defeated. Based on a forum post. - (#4299) Fix energy storage large strategic icon in construction menu - (#4290) Allow hovering over the Ythotha storm Allows you to see veterancy statistics, to finally settle the debate how useful the storm is Based on a forum post. - (#4301) Introduce color library Allows us to easily convert numbers into colors as RGB, HSL or HSV. - (#4321, #4332) Deprecate mods by version number Previously we could only deprecate mods by its name, regardless of its version. We can now also include the version, allowing an author to update the mod and have it automatically 'undeprecate' by doing so. - (#4326) Create initial tests for NavDatastructures.lua ## Contributors - 4z0t (#4232, #4242, #4171, #4269, #4309, #4310, #4319, #4311) - Penguin5 (#4214, #4217) - Relent0r (#4180, #4205, #4265, #4268, #4271, #4284, #4305, #4294) - hdt80bro (#4172, #4186, #4176, #4174, #4203, #4204, #4183, #4184, #4185, #4236, #4225, #4234, #4226, #4237, #4228, #4227, #4238, #4280, #4270, #4229, #4069, #4301, #4321, #4325, #4217, #4334, #4207) - Rowey (#4172, #4176, #4174, #4183, #4184, #4185, #4235, #4236, #4238) - Jip (#4119, #4124#4188, #4190, #4191, #4212, #4205, #4232, #4241, #4243, #4244, #4248, #4250, #4253, #4260, #4254, #4262, #4249, #4025, #4267, #4266, #4264, #4281, #4270, #4282, #4285, #4286, #4292, #4290, #4304, #4298, #4312, #4313, #4308, #4291, #4287, #4328, #4329, #4307, #4331, #4332, #4327, #4334, #4338, #4336, #4201, #4202, 4230) - iczero (#4338) - FemtoZetta (#4274) - KionX (#4131, #4255) - CheeseBerry (#4219) - BlackYps (#4175) - YuchenJimmy (#4279) - xXEddieXxx (#4299) - Zjonn (#4323, #4326) - ErikMekkes (#4321) And with thanks to Fichom for creating various textures scattered over the pull requests. ## List of incompatible mods ```lua -- mods that are deprecated, based on mod folder name deprecatedMods["simspeed++"] = true deprecatedMods["#quality of performance 2022"] = true deprecatedMods["em"] = "11" -- as per #4119 the control groups (called selection sets in code) are completely overhauled -- and extended feature-wise, because of that these mods are no longer viable / broken / integrated deprecatedMods["group_split"] = "0.1" deprecatedMods["Control Group Zoom Mod"] = "2" deprecatedMods["additionalControlGroupStuff"] = true -- as per #4124 the cursor and command interactions are complete overhauled and extended feature-wise, -- because of that these mods are no longer viable / broken / integrated deprecatedMods["additionalCameraStuff"] = "3" deprecatedMods["RUI"] = "1.0" -- as per #4232 the reclaim view is completely overhauled deprecatedMods["Advanced Reclaim&Selection Info"] = "1" deprecatedMods["AdvancedReclaimInfo"] = "1" deprecatedMods["BetterReclaimView"] = "2" deprecatedMods["disableReclaimUI"] = "2" deprecatedMods["DynamicReclaimGrouping"] = "1" deprecatedMods["EzReclaim"] = "1.0" deprecatedMods["OnScreenReclaimCounter"] = "8" deprecatedMods["ORV"] = "1" deprecatedMods["SmartReclaimSupport"] = "3" deprecatedMods["DrimsUIPack"] = "3" deprecatedMods["Rheclaim"] = "2"
Note that mods like Quality of Performance are no longer required - they barely have impact on the
performance of the simulation these days. -
Added a second sneak peak: all about command and cursor interactions!
-
-
This post is deleted! -
I would really like to see the ability to lock units to another unit to be built in for example locking shields and flak to an experimental. Also, one query can the tml's targeting be optional so that a tac bank can be used to select up a bunch of structures and shift-g them. I'd imagine if structures can't be targeted, they will indefinitely fire at the ground attack markers as opposed to firing at structures until they are destroyed.
-
Ground fire has a salvo limit that can be defined in each unit
-
I'd really like the ability for engineers, combat engineers, and sacus to reclaim only. Currently,
when your mass fills up, they begin to assist units or repair. This gets them stuck in a loop and no longer reclaiming. It would also be nice to be able to disable auto-assist on smds and nukes for engineering stations. -
I think you are using the Patrol order with your engies, right? Try using instead Alt-Right click (queue up a few with shift), that should solve this issue.
-
-
I can not begin to describe how pleased I am that you make a point of mentioning which mods are integrated or otherwise conflicting. On that note, one of my favorite features from Random UI is the 'easy reclaim', which I did not see mentioned here. Being able to only click reclaim without move orders has been amazing. Is that also being integrated alongside the hard-move commands? (now 'ignore mode').
-
@jip said in Upcoming developers patch:
Deprecated UI mods
The following UI mods are known to collide with these changes, and are therefore deprecated:
Advanced Camera Stuff
(we're integrating the range rings of this mod)Random UI Improvements
Make a post in this thread if you think some of these features are worth keeping around and we'll discuss whether the UI mod should be re-implemented or that we can integrate the behavior into the game.
Is there some secret to turning on the range rings? As at the moment faf develop forces additional camera stuff off but does not display the shift (or ctrl depending on settings) range rings.
-
The range rings are not integrated yet, once they are I'll add it to the post. There will also be (Youtube) clips on some of the new (and old) features of the game so that there's more awareness.
-
Can I suggest a feature?
Contextual drag selection:
- Alt drag box to select only engineers
- Normal drag box to select only army
- Shift drag box to select everything
-
@immortal-d said in Upcoming developers patch:
I can not begin to describe how pleased I am that you make a point of mentioning which mods are integrated or otherwise conflicting. On that note, one of my favorite features from Random UI is the 'easy reclaim', which I did not see mentioned here. Being able to only click reclaim without move orders has been amazing. Is that also being integrated alongside the hard-move commands? (now 'ignore mode').
Yes it is - it is already in! You can set a separate selection threshold when you are in reclaim mode (via hotkey or via the reclaim button in the UI). See also the settings (when you are on FAF Develop).
-
@immortal-d said in Upcoming developers patch:
I can not begin to describe how pleased I am that you make a point of mentioning which mods are integrated or otherwise conflicting.
And if there is anything else we can do to make the patch easier to understand / process, do share.
-
@archsimkat said in Upcoming developers patch:
Can I suggest a feature?
Contextual drag selection:
- Alt drag box to select only engineers
- Normal drag box to select only army
- Shift drag box to select everything
I think that would be really awesome!
-
@jip I think making a guide to where does the mod menus is after integration and how to views the options of the mod after might be good
-
@archsimkat I think It would require engine changes, I can only tell that for engies shift+alt is possible through UI
-
-
Nice work 4z0t! Let us know when the mod is up
-
@archsimkat mod
is done and works fine for me -