Skip to content

Game version 3732

Choose a tag to compare

@Garanas Garanas released this 22 Apr 14:00
· 2592 commits to develop since this release
6b72eb1

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)
    Full share unit transfer priority is now based on rating, instead of score. If no rating is available then the unit transfer is based on score

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

  • 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