This is a preview of work in progress and experiments for the next major update to PA with shields.
Also check the #dev, #balance and #modding channels in the official discord: https://discord.gg/pa
Technical Notes
TITANS Balance Changes
- Deep Space Radar returns as system wide planetary radar
- Omega orbital battleship kinetic bombardment
- Reclaim metal value based on metal cost (vs max health)
- Laser turret energy consumption
New Mechanics / Automation
- System wide planetary radar
- Shields
- Map units
- Map wreckage
- Commander capture of map units
Client Improvements
- Improved font handling with emoji support
- Improved default system loading
- Improved new game lobby
- Added drag and drop player move and swap for game creator
- Changed to no default random system
- Added asteroid option to random system generator
- TODO: Add multiple starting planets option to random system generator
- Added selected all orbital
- Added alt select to skip commander and scouts
Added new depth texture with updated water shader for shallows(115280)
Work in progress:
- Coherent GT
- Terrain horizon occlusion for icons, status, blips and features
- Visible wreckage reclaim progress
System Editor Improvements
- Data editor for terrain height adjustments
Client Fixes
- Fixed handling of Unicode surrogates eg 🔥
- Fixed defeated alliance vision
- Fixed skybox select list not reloading
- Fixed long select lists off screen or scrolling
Fixed icons not showing with one or more unit server mods (115280)
System Editor Fixes
- TBD
UI Frameworks Updates
- KnockoutJS 3.5.1
- bootstrap-select 1.13.14
Server / Sim Improvements
- Added players_ids and system info to replay info
- Reclaim wreckage value based on metal build cost
- Update height of reclaimed wreckage
Server / Sim Fixes
- Fixed incorrect initial and dead reclaim values
AI Improvements
- AI retraining with air and threat model changes
- AI proxy bases
AI Fixes
TBD
Galactic War Improvements
- TBD
Client / Server Improvements
- Improved message / proto / pipe / compression handling and memory allocation
Toolchain
Updated software development toolchain: https://en.wikipedia.org/wiki/Toolchain
- C++17 optimisations
- Visual Studio 2019 latest with 142 build tools / Windows 10 SDK latest
- Xcode 12 / macOS Big Sur 10.16
- Linux gcc 9.3 with LTO
- Clang / LLVM 11
- Steamworks SDK 150
- Windows libcurl 7.74.0 with nghttp2 1.42.0 for HTTP/2 and multiplexing
- Windows OpenSSL 1.1.1i
- breakpad latest
- lz4 1.9.3
- miniz 2.1.0
- v8 86
- stb_image 2.26
- Windows mimalloc 1.6.7
- AMD AOCC (Optimising C / C++ Compiler) vs Clang / LLVM 11 for dedicated servers
PAnet
- Linux servers
Modding
Skybox selector- Added wreckage_mesh_bounds for visible wreckage reclaim (defaults to mesh bounds)
- Added icon_vertical_offset for terrain horizon occlusion (defaults to top of mesh bounds)
Breaking Changes
- strategic icons for metal extractors will include a green metal spot for terrain horizon occlusion
- health and ammo bars will move to top for terrain horizon occlusion
- particle_icon.fs
- custom URL protocols will be changing:
- atlas:// > coui://atlas/
- spec:// > coui://spec/
- bundle:// > coui://bundle/
- uncached:// > coui://uncached/
Known Issues
- TODO: Fix Linux segfault in CoherentUI_Host (deferred to Coherent GT)
- TODO: Fix Linux mesa corruption (deferred to Coherent GT)
- TODO: Fix reclaim server crash
- TODO: Reproduce load game crash
Attack Task Fixes
The recent attack task fix to prevent mobile units charging to their death exposed some other issues with the attack task and multi-threaded updates.
The previous implementation of the attack task would accidentally require mobile units with ballistic weapons to move towards their target prior to setting a weapons target even if they were in weapons range.
This was most obvious with the commander ubercannon (d-gun) where the commander turns or moves towards the target.
Without a weapons target the weapons task could not iteratively calculate ballistic firing solutions for either high or low arcs.
Meanwhile the attack task would be waiting for a firing solution during the first tick which would never be calculated.
The second tick of the attack task would then create a move task even when in range assuming no ballistic firing solution could be calculated and the unit needed to move closer.
The third tick would be waiting for the move with the weapon firing no early then the fourth tick.
The original implementation would also create a move task with a target goal based on 50% of the existing move range causing units to charge to their death even when in range.
This was most obvious with grenadiers, hornets, etc.
A small move distance or failed move might also stall the task by not setting the weapon target.
This was most obvious with the commander ubercannon (d-gun) where the minimum commander movement was too small at close ranges.
The attack task now sets the weapon target as early as possible when in range to allow for parallel calculation of a firing solution and only moves units their minimum navigation distance when required to keep them at range.
TODO: Area attack fixes