Patch 3732 - 3735

25

On April the 22nd the next game patch is coming - and it is an exciting one. There are various significant improvements on the base game and critical bug fixes. You'll be able to stomp again and the game will have proper mod options support. There is improved AI tooling and a quick check for map makers to confirm everything is buildable. On top of that some of the small suggestions have been implemented and more are coming. And above all: on average the game appears to be 10% to 15% more efficient in comparison to the FAF branch. When interacting with shields the game is 600% to 700% more efficient - I dare you to compare the interaction of 5 Janus with 30 Aeon hover shields on the FAF and on the FAF Develop branch ☀ . And to finish it all up the aesthetics of the game has been improved in various areas, such as how trees interact with the game.

I'll extent this post with more information in the near future. For now, you can find the changes here on the commit log or read them up in the changelog. The latter has not been updated for two weeks.

I am asking you all to contribute by playing on FAF Develop and reporting back the stability of the branch in this topic. A positive result (in other words: it is stable) is important to report too. Attach the game log (via pastebin.com), the enabled (sim) mods and the replay id of your game when you report back.

Up to this point all my tests with AIs show that it is stable. And they show that the game is significantly faster in general. But they do not have sufficient coverage to confirm that the game type is stable for release. We got roughly a month to confirm that, and I need your help to do that 🙂 .

5145aaee-2e05-4bb9-887c-8245c4b8e2f1-image.png
An infographic to help you host a game using FAF Develop. Instead of using the FAF game type, select the FAF Develop game type. Note that FAF Beta is for balance changes and is the same as the FAF game type at the moment.

A work of art is never finished, merely abandoned

Game version 3735 (24th of April, 2022)
===================================

### Bug fixes

 - Remove remainder of old decal / tree knocking code (#3803)
    Fixes issues with the missiles of the Cybran 'Plan B' submarine

 - Fix consumption issue with extractors when production is paused (#3804)
    Extractors no longer produce mass for free when their production is paused :)

 - Allow for ambiguous states in classes (#3805)
    This fixes an issue with the mod RKs explosions that immediately 
    broke the simulation upon launch

 - Fix wreckage not taking damage (#3807)

 - Fix inconsistent lods (#3808)
    This was particularly noticeable between trees and tree groups.

 - Fix Aeon structures shader after construction (#3809)

### Performance

 - Prevent extractors from looking through all markers upon creation (#3804)

### Contributors

 - Jip (#3803, #3804, #3805, #3807, #3808, #3809)

With thanks to Archsimkat, AlfaViTe and Cyrris for taking the time to report various issues.

Game version 3734 (22nd of April, 2022)
===================================

### Bug fixes

 - Fix (another) missing parameter in matchmaking (#3801) 

### Contributors

 - Jip (#3801)

Game version 3733 (22nd of April, 2022)
===================================

### Bug fixes

 - Fix missing parameter in matchmaking (#3800) 

### Contributors

 - Jip (#3800)

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 separetely 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 
   - (#3729, #3731, #3732, #3748, #3771, #3774, #3780, #3782, #3784,
      #3788, #3794, #3793, #3796) 

    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 Galacitic 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 occurences 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
    simultaniously. 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 
   - (#3704, #3703, #3709, #3725, #3766, #3767, #3521, #3781, #3785)

 - 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 exhaus 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

 - Sheikah (#3647)
 - FtxCommando (#3647)
 - BlackYps (#3647, #3642, #3759)
 - Penguin  (#3647, #3705, #3715, #3721,
             #3728, #3712, #3742, #3751,
             #3764, #3750, #3768, #3765,
             #3782, #3706, #3792, #3799) 
 - Askaholic (#3647, #3759)
 - Sheeo (#3647)
 - Balthazar (#3660, #3647, #3676)
 - 4z0t (#3651, #3647, #3704, #3703, #3709,
         #3725, #3737, #3747, #3766, #3767,
         #3777, #3787, #3785, #3795)
 - Jip (#3660, #3647, #3663, #3656, #3387, 
        #3659, #3648, #3646, #3649, #3672,
        #3668, #3669, #3670, #3675, #3679,
        #3681, #3683, #3685, #3673, #3653,
        #3693, #3691, #3696, #3698, #3718,
        #3714, #3719, #3702, #3729, #3710,
        #3712, #3736, #3740, #3753, #3720,
        #3774, #3775, #3780, #3521, #3781,
        #3788, #3791, #3793, #3794, #3796,
        #3759)
 - Tagada (#3675, #3678)
 - Strogo (#3667)
 - Rowey (#3689)
 - Unbring (#3690)
 - KionX (#3682)
 - Relent0r (#3673)
 - Brokerjoe (#3738, #3740)
 - SkepticSpecter (#3743)
 - Madmax (#3720, #3798)
 - Healther (#3722, #3717)
 - Crotalus (#3741)
 - speed2 (#3759)

A work of art is never finished, merely abandoned

Games played:

Other reported issues:

  • (fixed with #3728) Team ratings not updating in the lobby
  • (fixed with #3728) Team ratings not being rounded
  • (fixed with #3732) Players start with 100 less mass in storage
  • (fixed with #3736) Issue with Fatboy and Atlantis build animations
  • (fixed with #3780) Issue where wrecks had 10% more value
  • (fixed with #3788) Issue that prevents Fire Beetle from doing fire
  • (fixed with #3793) Issue that causes any area-damage over time unit (examples are t3 Aeon artillery, andt4 seraphim strategic launcher) to not do damage accordingly

A work of art is never finished, merely abandoned

https://replay.faforever.com/16667223
we just played 4v4 in FAF Dev Mode and Performance was quite nice until the end. No lags no desync, no behind. - stable

https://replay.faforever.com/16667871
also next game with 6v6 Dual Gap had much better performance than usual. - stable

https://replay.faforever.com/16723234
game 6v6 on Tesla Island

Yolona Oss nukes seems to be buggy, first hit at about 44:30min has strange impact and also following nuke hits has strange impact in area of detonation.

Off topic wish: visibility status in lobby (friends or public), because sometimes we don´t recognize this and wait ... but of course, nobody can come 🙂

This post is deleted!

Would it be possible to add a very high fidelity LOD graphic setting ?

Especially factories and air transporters look very blocky when you zoom out just a little bit. (it's always been the case).
It's also odd that big transporters simply disappear entireley when you zoom out.

Here is a little comparison between FAF and the Graphicenhancement mod
https://www.youtube.com/watch?v=Nsi9-8JsUXY&ab_channel=Rengaruu

Other than that the changes look good. 😄
Hopefully one day the ACU will also be able to wrestle itself through T1 engineers.

It seems there is a bug with PDs that can damage your own ACU!
Here is a reply from a 1 player survival game:
https://replay.faforever.com/16678392
At around minute 9, when an ACU is building a second rows of PDs, you can see that the shots of the PD are damaging the ACU and eventually kill it! This behavior was not observed running a game with the old engine and the same game settings.

@MooseMax I'll look into it - thank you for reporting it.

A work of art is never finished, merely abandoned

The Yolo appears to be broken. It doesn't kill everything in it's explosion. Normal nukes might be affected to some degree as well. I was nuked and my own nuke launcher somehow barely took any damage. Here's a replay. https://replay.faforever.com/16683256

Yolos occured towards the end, after a massively slow air fight.

I'll look into it. I'll not available for the next four days, so at its earliest would be Tuesday 🙂

A work of art is never finished, merely abandoned

@moosemax said in Patch 3732:

It seems there is a bug with PDs that can damage your own ACU!
Here is a reply from a 1 player survival game:
https://replay.faforever.com/16678392
At around minute 9, when an ACU is building a second rows of PDs, you can see that the shots of the PD are damaging the ACU and eventually kill it! This behavior was not observed running a game with the old engine and the same game settings.

This is fixed - thank you for reporting it.

A work of art is never finished, merely abandoned

@snagglefox said in Patch 3732:

The Yolo appears to be broken. It doesn't kill everything in it's explosion. Normal nukes might be affected to some degree as well. I was nuked and my own nuke launcher somehow barely took any damage. Here's a replay. https://replay.faforever.com/16683256

Yolos occured towards the end, after a massively slow air fight.

Can you try and sandbox this? I have not been able to reproduce it.

A work of art is never finished, merely abandoned

@jip I'll give it a shot tonight.

The replay desyncs :sad:

A work of art is never finished, merely abandoned

@snagglefox same in our game, see report above

https://replay.faforever.com/16723234
game 6v6 on Tesla Island

Yolona Oss nukes seems to be buggy, first hit at about 44:30min has strange impact and also following nuke hits has strange impact in area of detonation.

Off topic wish: visibility status in lobby (friends or public), because sometimes we don´t recognize this and wait ... but of course, nobody can come 🙂

@master-chief said in Patch 3732:

Off topic wish: visibility status in lobby (friends or public), because sometimes we don´t recognize this and wait ... but of course, nobody can come

@MarcSpector this may be a nice feature too, for the client 🙂

A work of art is never finished, merely abandoned

@master-chief said in Patch 3732:

https://replay.faforever.com/16723234
game 6v6 on Tesla Island

Yolona Oss nukes seems to be buggy, first hit at about 44:30min has strange impact and also following nuke hits has strange impact in area of detonation.

Off topic wish: visibility status in lobby (friends or public), because sometimes we don´t recognize this and wait ... but of course, nobody can come 🙂

62fd1644-42ea-47f4-a259-7242ac062ce6-image.png

desyncs too. Do you have the logs of the game?

A work of art is never finished, merely abandoned

@jip said in Patch 3732:

@master-chief said in Patch 3732:

Off topic wish: visibility status in lobby (friends or public), because sometimes we don´t recognize this and wait ... but of course, nobody can come

@MarcSpector this may be a nice feature too, for the client 🙂

Thanks for the good idea. I also fell for this trap once. I will create the suggestion in the client's repository.

@rengaruu said in Patch 3732:

Would it be possible to add a very high fidelity LOD graphic setting ?

Introduced with #3775, available on the FAF Develop game type. See the graphics options, you have to scroll a tiny bit to see the last one.

b56b7809-0e23-4eab-b67d-b70791be7d56-image.png

It requires:

  • Fidelity set to High
  • Shadows set to High (to get improved shadows)
  • Level of Detail set to High (to get improved LOD)

In case you set in-game, then it applies to the next game.

A work of art is never finished, merely abandoned