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)