November 13th 2019
What you are about to read is the latest information on the continuing development of Squadron 42 (SCI des: SQ42).
Operatives around the world collected the intel needed to provide you with this progress report. Intelligence suggests we’ve uncovered intel on animation improvements, phase two of asteroid sets, and the dangers of combining too many heads into a DNA system.
The information contained in this communication is extremely sensitive and it is of paramount importance that it does not fall into the wrong hands. Purge all records after reading.
UEE Naval High Command
On the behaviors side, they improved cover selection during combat by introducing new ways to weight cover locations based on target direction. NPCs can now choose between using a weapon’s predefined fire mode or actively selecting auto, burst, or single shot. They added more wild lines and flavor to the behaviors too, such as NPCs taunting a target before they start investigating.
Ship AI moved the first pass of their new 3D pathfinding functionality into the main game-development branch. This approach is based on a non-canonical A* implementation that uses the signed distance field (SDF) to incrementally compute a path in a 3D environment. Progress is currently being made on the first version of 3D ORCA implementation and is getting close to a first working version.
A new way for the designers to request that a ship follow a ‘spline’ (a tunnel that guides a ship’s movement rather than a prescriptive track) was exposed. At runtime, the calculation automatically adjusts the tunnel size based on the environment and the information reported by the SDF. They also added new nodes to monitor target distance and the vehicle’s relative state and make decisions according to the reported values.
Social AI optimized the ‘usable search’ function and are now able to cache the location of usables on the navmesh. This means they don’t have to constantly recalculate the time an object is static in one location. They also continued the unification of operator and generic seats so that behaviors can utilize them regardless of height.
Implementation of generic vendors continued, which employs usables that can ‘provide’ or ‘accept’ specific object types. This allows designers to create many different object types. For example, drinks bartenders can offer to patrons. They’re currently progressing on the patrol functionality that defines paths for AI to follow. This path will carry information on which types of logic to activate while hitting the different path nodes.
Regarding core services, the team now have navmesh support on planetary locations and are moving towards a more dynamic creation of navigation data on planet surfaces. They’re also working on different bug fixes and optimizations, including multithreading the AI audio component to enable them to process audio events quicker on the servers.
The new asteroid set mentioned in previous reports reached phase two. To complement the asteroid set, a kit of infrastructure parts left behind by previous operations/settlements is in development. Alongside being visually interesting, the kit gives the Flight Design Team interesting shapes and spaces to work with. Several new developments to lighting tech meant certain areas received improvements too.
Finally, gas clouds are progressing well, with new tech and lighting tools being made specifically for them.
With the hair pipeline finalized, hairstyles for certain key characters were updated. The Cinematics Team takes them and shows work-progress-renders of sequences to the Character Team so they can see how the new and higher-detailed hair looks in situ. They also prepared for work on a big EVA set-piece.
Actor Animation added environment-based procedural character overlays. For example, a character in a windy environment will lean depending on the direction and strength of the wind and cover their face.
The Actor Team made several small improvements to the close-combat system, including triggering reactions on both local and remote clients, adding camera shake on successful hits, blocking with knives, damage and stamina impact, and updated animations. They also evolved the temperature status system that allows clothing to have insulating properties, adding hypothermia and concussion statuses.
In Frankfurt, the team spent time on the physics proxy refactor, including stream integration support. They also continued work on character and cloth soft-body physics simulation and added physics-level support to planetary wind.
For the renderer, they continued to work on the new graphics pipeline and render interface (Gen12). This included adding: an improved render pass handling and pipeline state setup, support for compute, a pipeline teardown, improved DXC compatibility for shaders, simplified resource layout setup, improved support for pooled render targets and resolution changes, support for reflected shader constant arrays, and porting DOF to the render pass system. They global render state removal also began.
Planet-side, they refactored and extended multi-cascade support for terrain height maps so dependent effects can better incorporate it for their own purposes (such as terrain shadows), and worked on cascade debug visualization to allow artists to efficiently tweak important height map properties. Regarding planet terrain shadows, they added a simple code interface and shared shader code for the application on the client side, provided support for temporal anti-aliasing, and completed the initial code and logic support for multi cascades. Work on planetary ground fog continued too. This involved adjusting code to cope with very large objects, making exception handler improvements, and adding API to asynchronously create a core dump without affecting the calling process. This will be mainly used to take snapshots of the DGS process state in case of non-fatal errors for efficient debugging without interrupting its service and affecting clients (previously, it was forced to crash).
For Animation, the team created a new dual quaternion skinning/elastic blend wrap deformer for CPU and GPU skinning. They also completed tangent reconstruction – a pixel perfect version for software and compute skinning (both protos and original skins).
Several prop setups were finalized, including cups, utensils, datapads, mops, and buckets. Existing scenes were checked to make sure the new props worked as intended. They’re currently making sure they work seamlessly with the new console usable behavior.
Level Design (alongside Art and AI) continued with the FPS intensive chapters, focusing on defining the systemic behaviors needed for the AI to realistically traverse environments depending on their loadouts.
The space and dogfight teams also focused on systemic AI behaviors, with the take-off and landing systems receiving polish to get them closer to their final state. The Tech Team finalized some of the prototype level mechanics that were added to several FPS-heavy levels.
The Frankfurt-based team continued to work on gameplay effects and made improvements to the particle system. One of these improvements was proper depth-sorting for GPU particles. Previously, GPU particles were sorted with the newest spawned particle layered on top. This led to issues with how the particles moved in relation to the camera, making the effect appear inverted. Now the particles have proper depth sorting, this is no longer an issue.