17545
16
April 9th 2020
Attention Recruits,
What you are about to read is the latest information on the continuing development of Squadron 42 (SCI des: SQ42).
Many operatives risked life and limb and came back with information regarding Vanduul weaponry, language, and upcoming work on Vanduul VFX.
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
Ship AI dedicated part of the month to addressing bugs and corner cases following the integration of the 3D collision avoidance system. Better collision avoidance enables additional combat maneuvers to be developed to add flare to the dogfighting AI. In particular, they focused on defensive maneuvers (retreat/flee) that tell AI ships to prioritize shaking off attackers to reduce their chances of being hit. Additional work was done to formation flying too. Preliminary design work began on capital ship behaviors and standard dogfight activity was streamlined to accommodate new maneuvers and cope with the growing number of combat requirements.
Social AI worked on new patrol features that can be used for both systemic patrol and environmental scripting. Environmental scripting creates story scene markups used dynamically by Subsumption behaviors to keep actor performances as intact as possible.
In Frankfurt, Engineering worked on physics threading and performance. They enabled up to 30 physics threads (defaulting to ¾ of logical cores available); added the option to limit the number of threads per thread task; improved the memory performance and footprint of command queues; defined local queues that can be processed in parallel; moved relevant game code to local physics command queues; created local queues based on the entities’ adam so they can process the joint/part updates in parallel; moved many reposition/recompute calls to queues; and made various other queue related optimizations.
They also added driven ragdoll support for body dragging, gravity adjustments to actor entity ground tracking, per-joint driven ragdoll stiffness, and impulse to the root of a tracking-driven ragdoll.
Regarding unused vertex optimization, all unused vertices in physics meshes are now pruned. Alongside saving 8GB of disk space, it provides better data cache locality on the CPU. Work also continued on part containers/compute bounding box optimization (formerly known as physics geometry instancing). Skinned foliage was found to be missing leaves, which was fixed before being given to the object-container-splitting physics voxel grids.
The Vulcan (G12) render mesh API was refactored for more streamlined and efficient creation and data upload. Unused legacy code was removed and a shader handle was added to the remaining legacy pipeline. For unified raymarching, the initial elements of the adaptive resolution were submitted, work continued on the upsampling of adaptive resolution results, and samples were placed via low discrepancy generators. They also determined screen bounds of planetary atmospheres to further guide sample placement and started R&D into ensuring adaptive resolution raymarching works well with ray jittering and TSAA. They also investigated performance issues with oceans caused by CPU readback and fixed HDR display and D3D debug runtime errors.
For general work, Engineering improved the ECUS update code by fixing a flaw in the update logic that caused unnecessary iterations of aggregate groups. They further improved the logic to reduce scans of entire connection lists and optimized threading.
A significant improvement was made to the large render batch management’s performance. Previously, Engineering had iterated on the list of potential batches, but it grew to over 1000 entries, making clean up computationally expensive (1.5ms). To solve this, they now maintain a list of rendered batches. Subsections of component update functions were added to their batch jobs to improve profiling, as were profiling subsections to batch jobs. For the Zone System, a new interface for updating local bounds was added.
The animation side of Engineering made a prototype of a new skin loader and added support for physical skin proxies. They also moved all relevant World Builder code into its own engine module for faster programming iteration time.
The team also investigated how to improve the legibility of holographic/transparent UI screens in extremely bright or dark environments. This involved using the average and maximum screen brightness, or a localized region of the screen, to determine the suitable UI brightness. Several color blending approaches were also investigated.
The team also helped implement animations to bring the new cast and crew to life. This has led to the creation of a new toolset to help visualize and apply flowgraph-style animation sets to the non-flowgraph sandbox animation tool suite.
Continued work with the Social AI Team identified the need for Tech Animation to further refine their rigging toolsets to support the vast number of upcoming props. They’re now robust enough and enable a streamlined approach to authoring new animation rigs. They also spring-cleaned their codebase, identifying new pipeline foundations and tools to refactor.
Specifically for SQ42, Tech Animation in Frankfurt created a placeholder entity for Vira Kelso to enable Cinematics to work on scenes she features in. They updated various character and Maya loadouts for the cinematic animators, enabling them to work with the same loadout the characters will use in-engine.
They also developed a tool to enable Character Art to add skeleton extensions from a preset before editing and exporting them to speed up the authoring process. They worked with the Weapons Team on bugs and requests, including rig updates, Mannequin setups, IK target updates, and export errors too.