Game version 3741 (21st of August, 2022)

Another month, another patch! With pride we present the next version of the game where we slowly start tackling long-standing issues that we’ve been taking for granted. Among them the tactical missile defenses that feel underwhelming, broken weapons such as those of the Galactic Colossus and beam weapons being unable to hit reliable. But soon no more - we’re tackling them one by one!

Not only that, from a development perspective we’ve made great strides. The amount of annotated code has exploded, allowing our extension to give proper suggestions and hints. Step by step, pull request by pull request we slowly turn the code base into one that supports modern programming features such as being able to jump to a definition and we now provide sane suggestions and snippets.

Let alone the improvements to the infrastructure surrounding FAF. With the cache servers of Cloudflare as our backbone the distribution of maps, mods and game assets have never been better.

With appreciation towards all the contributors that made this patch possible,

Jip

Bug fixes

  • (#4002) Fix issue with single-item combo list

  • (#4016, #4080) Re-implement game results

    A complete re-implementation of how the game results are tracked. This should fix the famous draw bug (where one player wins and the other loses) and in general there should be less unknown game results.

  • (#4063) Fix targeting bones of static shields

    Should make them easier to hit with low-arc projectiles and beams

  • (#4058) Fix units being able to evade area damage

    Due to how the game processes the game over several steps the area damage could be applied too late, allowing really fast units to already be out of the area of damage, even though the projectile had a direct impact. This is particularly noticeable for spy planes, where they are able to ‘sustain’ a lot of SAM fire while barely receiving a scratch in damage.

    All in all, this makes the game feel a lot more consistent. A hit should be a hit.

  • (#4058) Fix beam weapons being unable to hit all air units

    Due to how the game processes beams there’s a possibility that the beam aims ‘in front’ of the unit, causing it to miss. This is fixed by giving the unit (air units, for this change) a collision box (or sphere) that is of sufficient size. As a result, the Seraphim Lighting Tank (T3 MAA) no longer requires its hack, and because of that can no longer pierce shields :).

  • (#4071) Remove smoke ring on underwater SACU death

  • (#4074) Disable blue shield bar of shields when turned off

  • (#4079) Remove problematic code of JSON library

    Could occasionally cause a game crash

  • (#4078) Adjust collision hitboxes of all transports

    Allows their cargo to receive (splash) damage more consistently and makes the transports easier to hit when they are landed.

  • (#4082, #4083, #4084) Fix target bones - Seraphim Land units

    Similar to #4058 and #4063, makes these units easier and more consistent to hit when firing with beam weapons. We’ll slowly tackle all of the units in the base game, but this is a consuming process!

  • (#4093) Add guard to check if dummy weapon of shields are de-allocated

  • (#4088) Fix stack overflow in UI when units are assisting each other

  • (#4102) Adjust collision box of Megalith due to build animation

    Allows units to consistently hit the Megalith while it is being constructed

  • (#4110, #4109, #4160) Add guards to prevent execution when c-object is de-allocated

  • (#4103) Attempt at fixing a shield assist bug that could send all your resources into limbo

    Particularly relevant for hives when they are assisting shields that are also taking damage

  • (#4121) Rowey fixing Jip

    What would we be without him!

  • (#4112) Attempt to fix the save / load functionality of the game

    Long story short - we tried applying some tricks to improve performance a while ago and those did not work anymore after saving and then loading in the game. As a consequence, after loading the game was working with the wrong data causing all sorts of issues!

    We hope this fixes it, but if you still have issues with saving and loading then you can contact us via Discord or the forums.

  • (#4113) Reduce projectile speed of air to air weapons

    There’s a collision bug that causes the game engine to pick the furthest collision if a projectile collides with multiple instances at the same time. As a consequence, it was difficult for interceptors to hit landed air units and in particular transports. By reducing the projectile speed (and increasing the size of the hitboxes with #4078) we try and solve this issue consistently for the base game

  • (#4115) Prevent manual attack move (via the UI) of clearing structure queues

  • (#4125) Fix Solace not having the bomber category

  • (#4120) Fix the enhancement removal dialogue being stuck

  • (#4132) Fix mass of wreckage of Kennel

  • (#4144) Fix the death animation of the tempest

  • (#4140, #4152) Fix rare occasions when the status quo of HQs are not updated properly In particular, when gifting due to full share and when directly destroying the unit

  • Fix beam weapons not disabling themselves (#4154)

Features

  • (#4040, #4043, #4044) Re-implement the tractor beams of the Galactic Colossus

    Re-implements the tractor beams of the Galactic Colossus from the ground up. They finally work as intended and can no longer remain stuck on invalid targets. Includes a slight boost to the effects, enjoy toying with the physics!

  • (#3893) Add shooter cap to tactical missiles

    Prevents the TMDs from overshooting their targets, as a result TMDs feel a lot more consistent and are in general a lot stronger.

    Fixes an issue with multiple SMDs being unable to stop multiple strategic missiles.

    Adds callbacks to units when their missile is intersected by a shield, a defense or by terrain.

  • (#4018) Improved Mod Manager UI

    Improves the mod manager by introducing a search bar, being able to mark mods as favorite and being able to sort mods on their type. Introduces the capability of interpreting URLs from the mod_info.lua file, allowing you to send people to a github, gitlab, bitbucket, sourceforge page or to a topic on the forums.

  • (#3927) Allow jammers to recreate their jamming blips

    Fixes the issue of jamming blips being gone forever once they were scouted. With this implementation, after fifteen seconds of being in the fog of war the jamming blips should re-emerge on their own.

  • (#4114, 44fd74) Alternative CPU benchmark pt. 1

    The first of two parts on creating a new CPU benchmark. The current benchmark tries to run some computations in the lobby. This has shown to be inaccurate. The new benchmark takes samples during the game and stores the highest possible sim rate you can run in combination with the total amount of units. Initial data points suggest that this is highly accurate and is even capable of detecting the throttling of laptops.

    The next part will replace implementation of the CPU score in the lobby. That will be part of the next release. This guarantees that everyone has some data to start off with.

  • (#3650, #4158) Improve team color mode

    Allows players to adjust the colors used in team color mode. With it, we can finally support people with color blindness.

    Players can choose their own colors by right clicking the team color mode button.

  • (#3916) Introduce reclaim statistics for engineers

    The game now keeps track of the reclaim statistics of engineers. They are shown where you’d usually see the veterancy of a unit. You can not see the statistics of allied units, just your own. Works for observers (and casters).

    This is the start of a new era where we’ll be introducing statistics gradually. They help players with understanding the value of their actions - as an example, an engineer reclaiming trees on Seton’s Clutch can quickly become responsible for hundreds (if not thousands) of additional mass.

Performance

  • (#3932, #4011) Remove unused unit blueprint tables related to veterancy

    Reduces total amount of allocated memory

  • (#4003) Remove collision shape of the Cybran Build Bots

  • (#3995, #4000, #3995) Refactor effect utilities pt. 1, 3 and 4

  • (#4073, #4076, d86021) Optimize vision and range-ring shaders

    Includes an engine patch - significantly reduces the impact of vision and range rings on your FPS.

  • (#4064, 84f68f, 9fd987, 647bdfe) Reduce memory allocations for when bombers fire their projectiles

    Significantly reduces the amount of table allocations when we correct the trajectory of a bomber in Lua.

  • (#4111) Reduce memory impact of weapons

  • (#4141) Reduce number of pre-allocated trashbags for units

  • (#4140) Remove remainders of an experimental setup for caching data

  • (#4037) Implement alternative, less resource-hungry vision entities

    Used for example by the lobo - the tech 1 UEF mobile artillery

Annotation

  • (#3936) Annotate and refactor layouthelpers.lua

    Improves performance of UI functions that are used by almost every UI element

  • (#4009) Annotate campaign related functions pt. 2

  • (#4021) Cleanup annotation of engine documentation

  • (#3975, #4023, #4086) Add annotation support for blueprints

  • (#4049) Annotate /Engine/Sim.lua creation functions

  • (#4050) Annotate /engine/Sim damage functions

  • (#4057) Annotate engine/Sim.lua

  • (#4053, #4055, #4054, #4056) Annotate engine/Sim/

  • (#4041) Annotate categories

  • (#4047) Conform /Engine/Sim/ to Moho

  • (#4039) Annotate entity.lua

  • (#4034) Annotate engine/core.lua

  • (#4051) Annotate /engine/Sim army functions

  • (#4052) Annotate command functions

  • (#4065) Annotate scenario framework pt. 2

  • (#4106) Annotate inheritance of all remaining unit classes

  • (#4118) Add annotation to ignore some file specific non errors

  • (#4116) Annotate code of all scripts in the editor folder

  • (#4038) Annotate cAIBrain and AI related structures / functions

  • (#4126) Fix annotation for classes

  • (#4127, #4128, #4129, #4148) Annotate missing intermediate unit classes

  • (#4130) Annotate defaultunits.lua

Campaign

  • (32d97d, f555cb, 5d0802, 4ad7f8) Various small improvements to the campaign AI (base managers)

  • (439757) Fix the protect objective breaking when given dead units

  • (7f6a4e) Simplify base manager engineer patrol

    When the patrol path was generated, there was a logic to move instead of patrol if the reclaiming was disabled on the base. That got removed since just moving engineers around does nothing. So it’s either patrol or nothing.

  • (26bcee) Fix base manager rebuild counter

    Rebuild structure counter was decremented even for spawning units. Meaning that that AI would not rebuild at all, while it was suppose to be rebuilding once.

  • (fa1448) Update base manager rebuild data

    Used for counting how many times to rebuild stuff, based on difficulty. Some of the names were wrong and the list was kinda incomplete.

  • (8e167b) Fix base manager sometimes not upgrading factories

    Upgrade thread was checking for IdleState, but if the factory that was suppose to be upgraded was grabbed first to assist other factories in the base, it would never be idle.

  • (945df8) Simplify T3 mobile AA builder

    Uses faction convert instead of separate platoons, since the AA exists for all factions.

  • (f65240) Fix PlayerDeath cam unlocking input too early

    Input is always unlocked when the final popup to end the mission shows up.

  • (8793ef) Add game speed into objectives UI

    Next to time, just like normal score panel

  • (09a829) Improve TransportPool

    Adds MoveRoute and MoveChain to add more control over moving the transports

  • (#4092) Fix the guard return radius of naval units

    Prevents them from wandering off, taking on quests - finding loot and end up dying because they’re on their own chasing their dreams.

  • (#4155) Improve the balance of some of the adjusted mechanics

    Such as the tactical missile defense improvements and the tractor beams of the Galactic Colossus

Other changes

  • (#3952) Update AI-related categories for the Cybran experimentals

  • (#4032) Update AI-related categories of Obsidian

  • (#4030) Update AI-related antiair and antinavy categories of Aeon Experimentals

  • (#4029) Update AI-related antiair and antinavy categories of Seraphim Experimentals

  • (#4028) Update AI-related antiair and antinavy categories of UEF Experimentals

  • (#4036) Update AI-related categories of engineers

  • (#4035) Update AI-related categories of ACUs

  • (#4031) Update AI-related categories of navy

  • (#3851) Reduce amount of unfinished buildings for the AI

    This is a difficult one to tackle, but what happens is that buildings remain unfinished because there is a nearby threat to the ACU. The ACU attempts to defend, but then doesn’t always continue what he started previously

  • (#3971) Cleaning up of files

  • (7ff888) Fix name of operational AI (related to campaign)

  • (#4033) Reduce amount of trees on fire at the start of the game

  • (#4070, #4100) Add unit utilities Step-up work to make sacrifice work properly again

  • (#4117) Refactor # -> – for original performance testing scripts

  • (#4122) Fix duplicated functions and typo

  • (#3910) Refactor BuffAffectsUnit to be easier to mod

    Previously all the functions (that apply the buff) were scoped in another function.

  • (#3783) Improve code style of common UI elements

Contributors