Game version 3732 (22nd of April, 2022)

Features

  • In-lobby auto balancing (#3750, #3764, #3768) Introduction of in-lobby balancing for the typical two-team setup. Similar results to optimal balance but allows the host to manually tweak the starting positions and take into account parties before launching the game.

  • Introduction of experimental graphics (#3775) Allows you to increase the LOD of entities and the LOD and resolution of shadows. This can be enabled separately in the graphics options of the game. Is applied after restarting the game.

    Please read the tooltip carefully.

  • Introduction of lobby option to determine sharing behavior of units (#3741) Allows the host to enable the sharing of all units, only allow the sharing of non-construction units or disable the sharing of units all together. By default sharing of all units is enabled.

  • Dynamic AI threat calculations (#3660) The AI threat values have not been updated over the years - they are now computed based on unit statistics during the blueprint loading phase. Introduces a utilities window that allows you to inspect AI-related blueprint values of a unit. You need to set a hotkey for that window. You can find it in the hotkeys dialogue (F1) by searching for ‘information’. Cheats need to be enabled in order for the window to show.

  • Allow Hives to start upgrading immediately (#3675) Part of the Small Suggestions topic on the forum - suggested by Tagada.

  • Introduce connection status during matchmaking Adds a UI component that informs you how many players are connected while waiting for the people to connect for ladder / matchmaking.

  • Introduction of the (performance) profiler (#3674, #3700) Allows us to diagnose where the performance is being used during a game. Revolutionary in terms of our capabilities of understanding where all those cycles are going.

    Requires you to set a hotkey to enable it. Abuse is bannable.

  • Introduce toggle for mesh rendering on the minimap (#3667) All meshes would be culled (or rendered) accordingly on the minimap even though they are, typically, never visible. Introduces a toggle to disable mesh rendering in the minimap.

    This is not functional until the next release of the executable.

  • Adjust dynamic threat computations (#3680, #3673) Armored command units no longer have inflated threat values. Introduces a flag to skip the dynamic threat computation all together, defaulting back to what was set in the blueprint. Weapons by default produce direct fire threat, unless they are flagged to be blockable by an anti-artillery shield. In that case they only produce economic threat.

    This only impacts AI-related games. With thanks to Relent0r (creator of RNGAI) for his time.

  • Temporarily disables weapons of a unit upon gifting (#3696) Prevents the cheat where gifted units can immediately fire again. This was particularly relevant to bombers.

  • Map utilities window (#3677, #3713) Introduces a window to help analyse a map. Can be used to visualize the threat values of an AI, check the buildability of extractors, along with ringed storages and fabricators. Can visualize all markers on a map.

    Requires you to set a hotkey to enable it.

  • Display team ratings in the observer window of the lobby (#3721, #3728, #3742)

  • Introduction of an announcement when you receive units due to full share (#3712)

  • Introduction of click-on-name-to-whisper feature while in the lobby (#3747)

Bug fixes

  • Remove new lines when you set a lobby title (#3644) Prevents having lobbies in the client that occupy multiple lines, allowing them to overlap with other lobbies.

  • Preserve weapon bone orientation upon destruction (#3668) There was a bug introduced last patch that causes weapons to reset their orientation right before the unit was destroyed.

  • Fix trampling damage (#3669) There was a bug introduced last patch that reduced all trampling damage to zero. Surprising how little people reported about it :)

  • Fix inconsistencies with cheat menu (#3656) The mouse click is now always registered. Prevents selected units from interfering with the cheat progress by deselecting them while spawning units and reselecting them when you are finished. Fixes veterancy issues: both for the spawn menu and all campaign missions.

  • Proper UI scaling of Window class (#3679, #3795)

  • Fix display name of Ythotha death weapon (#3689) The yearly contribution of Rowey - can’t wait what next year will bring us!

  • Add missing build mode entries (#3690)

  • Fix Cerberus turrets over extending their range (#3693)

  • Fix encoding issues with unicode characters in the preference file (#3711, #3737)

  • Fix issues with the color picker of the lobby (#3705, #3715, #3751, #3765, #3706, #3799)

  • Fix various issues that people found while playing on FAF Develop

    With thanks to: Yudi, Archsimkat, Snagglefox, Master-Chief, Moosemax, Phong and all the other people that hosted games on FAF Develop and / or reported issues to the game team.

Other

  • Improve readme of repository (#3647, #3663, #3670) Introduces a modern readme and accurate installation instructions of the development environment. With thanks to everyone involved, including but not limited to BlackYps, Sheikah, Balthazar, Emperor, Ftx. And thanks to 4z0t there is a complete Russian translation of the readme and the installation instructions.

  • Adjust map preview button (#3646) The button to show the map preview is enlarged and remains enabled when you are ready as a player.

    Part of the Small Suggestions topic on the forum - suggested by Scout_More_Often.

  • Add enabled mods to tooltip (#3649) Adds the enabled ui or sim mods to the tooltip in the lobby, allowing you to preview the enabled mods without entering the mod manager. A small quality of life feature.

    Part of the Small Suggestions topic on the forum - suggested by Emperor_Penguin.

  • Chat ally option (#3651) Adds a chat option to send to allies by default instead of to all. Chat options can be found by clicking the wrench icon on the chat dialogue when you are in-game.

    Part of the Small Suggestions topic on the forum - suggested by CheeseBerry.

  • Add map version to tooltip in scoreboard (#3648) Improves the default scoreboard by introducing the map description and version when hovering over the map.

    Part of the Small Suggestions topic on the forum - suggested by Emperor_Penguin.

  • Change default army color order of lobby (#3642) Changes the default army colors to be more intuitive, as an example: when the game is 2 vs 2 then it is two shades of red versus two shades of blue.

  • Improve compatibility with Lua 5.1 (#3676)

  • Improve compatibility for LuaJIT (#3682) Sadly - LuaJit itself has been cancelled due to the insignificant improvements to the simulation in comparison to the amount of work.

  • Enable wld_RunWithTheWind from the command line (#3653) Useful when you have Ai vs Ai games

  • Allow Galactic Colossus to retarget if the current target is unreachable (#3695)

  • Fix some styling issues with the lobby (#3777)

  • Attempts to fix the self-awareness of the ready button in the lobby (#3791, #3792) Reduces the occurrences of the ready button not being in sync with the host and other users in the lobby.

Performance

  • Fix LODs of effects (#3720, #3798)

    Fixes inconsistent Level of Detail (LOD) cutoffs for effects. The cutoff is used to prevent the creation and rendering of particles when they barely contribute to the final image. A lot of effects had an infinite cutoff. These particles were always created and rendered. The creation of particles has a significant impact on the sim, the rendering has an impact on your fps. We introduce a sane LOD cutoff value with which we improve the performance of the sim and your fps at the same time.

    With thanks to Madmax (creator of various maps and mods) for all his effort to look at more than individual 300 effect files.

    This was a well-described starters issue - you can find more of these issues on the repository.

  • Dynamic LOD settings (#3662) Computes the LOD cut off values of props based on its blueprint properties. A prop that occupies less screen space will have a lower cut off value - allowing it to be culled sooner. This improves the framerate of the game in general, while having a minor impact on visual fidelity.

    Technical detail: The LOD values of props in the blueprint are now ignored.

  • Improve performance of markers (#3387) Allows AI developers / map scripters to work with markers without having to worry about underlying performance issues. As an example, retrieving the mass markers on a map is a common operation for AIs. If done through the base game code it would re-allocate a new table of markers each time an AI condition manager starts checking the state of the game. That is quite wasteful. This file keeps track of previous calls, caching the result. Supports adaptive and crazy rush-like maps.

    Introduces a UI that allows you to inspect the cached markers. The window is toggled with ‘K’ by default and can be adjusted as usual. Requires cheats to be enabled.

    Technical detail: this has no impact on regular games, only on games with AI once they’ve implemented these new routines.

  • Improve performance of various UI-related functions (#3659) Replaces the global function to use a cached result. A call to GetSessionClients or GetArmiesTable created a unique table that the garbage collector can pick up two lines later. These functions are called each frame or each tick. With this caching behavior they get replenished every two seconds, or every 0.025 seconds if a fast interval is set.

  • Improve performance of reclaim effects (#3672) Reduces the amount of garbage generated when an engineer is reclaiming a prop, such as a tree or a wreck.

  • Improve performance of shield interactions (#3681, #3699) Significantly improves the performance when a lot of shield interactions are happening simultaneously. This is the case when shields get tickled to death, such as by a Mantis or by a bomber.

    One particular use case that is significantly faster is when you have fire at Janus fly over 30 mobile shields. This took about 60% of the total budget per tick, but now only takes 10%.

  • Improve performance of damage over time (DOT) (#3683) Reduction of table allocations.

  • Improve performance of projectile collisions (#3685) Reduction of table allocations and engine calls.

  • Improve performance of unit sound interactions (#3686) According to commit dfb363d the sound of submarine units do not work. The solution introduced is applied to all units and allocates a handful of entities per unit. These allocations are expensive! By default, units try to play the sound themselves. For submarine units we introduce one entity that plays all the sounds of the submarine.

  • Improve performance of utility functions of the Unit class (#3678, #3691) Reduction of table allocations and engine calls.

  • Removal of the blinking lights (#3698)

  • Improve performance of UI related classes

  • Improve performance of all props, including wrecks (#3714) Significantly reduces the number of tables allocated per prop. Simplifies some of the logic in favor of performance. Completely removes the state machine. Improves the visual fidelity of forest fires.

  • Improve performance of all projectiles (#3718) Reduction of table allocations, engine calls and various logic across the projectile class hierarchy.

    Part of a session available on Youtube. See the videos about improving the performance of projectiles in the playlist Game Development on the FAForever Youtube channel.

  • Improve performance of tree-knocking and decal creation of projectiles (#3719) Introduces a generic approach that is highly optimized. Supports units from mod packs accordingly.

  • Improve performance of the UEF build effects (#3702, #3736, #3738) Significant reduction of table allocations, engine calls and a significant reduction in the amount of Lua instructions related to these functions.

    Part of a session available on Youtube. See the videos about improving the performance of UEF build effects in the playlist Game Development on the FAForever
    Youtube channel.

  • Improve performance of the Seraphim build effects (#3740, #3753) Corrects the scope of some values and improves the consistency of the Seraphim build effect.

  • Improve performance of the Lua class hierarchy (#3710) Re-implements the class hierarchy used on the Lua side of the game from scratch. It simplifies the implementation to improve the performance while retaining the same functionality. Reduces the amount of tables allocated and the amount of table-related Lua instructions. Supports
    automated class culling and adjust the implementation of states to reduce the memory footprint of the game.

  • Improve performance of exhaust effects (#3743) Significant reduction of table allocations.

    This was a well-described starters issue - you can find more of these issues on the repository.

  • Improve performance of veterancy buff creation (#3720) Reduction of table allocations.

    This was a well-described starters issue - you can find more of these issues on the repository.

  • Improve performance of OnMotionHorzEventChange (#3717) Reduction of function calls and removes the ‘OnMotionHorzStart’ callback.

Contributors