March 10th 2021
What you are about to read is the latest information on the continuing development of Squadron 42 (SCI des: SQ42).
Thanks to the work of dedicated field agents and operatives, we’ve uncovered information on the Vanduul language, gas-cloud effects, and work continues on character EVA movement.
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
Secondly, they improved the low-level patrol tech code to support the customization of input parameters on the Subsumption logic for each patrol vertex. To achieve this, they extended the serialization code to allow multiple interfaces for variable serializations. So, from the editor code, they can automatically call through the right function for each variable type. Some variable types are plain old data (POD) and the system allows the registration of a global function associated with that type, such as integers and doubles. As with other custom types, the team can now allow calling class member functions to make the code more structured.
For usables, the team extended the crafting dictionary used to understand which items a usable can produce to handle multiple tags. This will enable them to understand which operations can produce multiple objects in one interaction. The routing verification in the query system was extended so that usables that provide or accept items can also be retrieved when slotted into other usables. They continued to improve the automatic testing setup for Subsumption, allowing the flowgraph UI to create a specific popup of only available functions instead of manually typing the function name.
For Character Combat, improvements were made to the fire cadence skill calculation. This was initially done using a global modifier but now uses skill formulas to ensure different character abilities influence the actual ability to use weapons.
Previously AI rate of fire was globally controlled by two cvar(s), basically two global values designers could tweak. We now have transformed this into a proper “formula” that takes into account the weapon proficiency to allow each character to have a different confidence of how many bullets to use, how quickly to press the trigger based on their traits (is the NPC confident, a showoff?) and on their actual ability with the specific weapon.
The team are currently progressing on the sub-component targeting, extending the targeting system to better filter entity sub-targets. This system will be shared across spaceships and characters. For example, NPCs on foot could target a ship engine with a rocket launcher the same way a ship could target the engine with missiles.
In this test environment you can see how ships are now able to fully focus on a specific subcomponent of another ship. In this case one of the trusters are blown away and then the next one is targeted.
In this test environment we setup a character to replenish his magazines. This is a test map to validate the setup of the ammo crates and make sure that the character can correctly find a crate that can provide magazines/ammos for the weapons he currently has and he can then use the usable correctly.
The team are currently extending the navigation system to give more context when in-game run-time regeneration requests are queued. The current system relies on physics events for regeneration, which makes it harder for the system to understand what entity type is causing a navigation mesh regeneration and what threshold can be tolerated. The new system utilizes an extension that enables the team to better understand ship states. For example, even if a ship is ‘awake’ in physics when landed, unless significant movements occur, they can accumulate modifications and only request a navmesh regeneration when the accumulated difference exceeds a certain threshold.
The team also progressed with porting the Subsumption editor into the game editor to better connect the editing interface with the runtime code. This involved adding a more advanced ‘find’ functionality that globally scans and finds references in Subsumption data.
The final motion-capture was shot for animations in the blockout phase, including plane directors, like-idles, work zones, and inspects. They also completed mo-cap for stim smoking, conditional deaths (freezing, acid, etc), and all required facial animations for interactable performances.
The team set up two assets to test the new vertex cloth simulation. Vcloth, as it’s known, was a major dependency for a long time and will significantly improve clothing and hair simulation. The team will soon move onto a full concept pass of the Screaming Galsons faction and the characters required for chapter four.
For cooperative locomotion, an inconsistency was fixed in the damping of engaged movables. Additional support was given to the Planet Tech Team who were looking to improve vegetation touch-bending on shorter asset varieties.
Time was spent improving wheeled-vehicle physics, with the team managing to get the lateral Pacejka tire model to work and further improving the longitudinal model. While they transition to this new model, a few improvements were provided for the legacy mode too. Contact handling for tanks was improved, while improvements were made to the engine and gearbox code. Prototyping started on the logic for polygon cutting, which is used on physics proxy meshes, and general-purpose work was started on the ISPC math library, with the first results being submitted. This will allow the team to port C++ code to ISPC more easily. A potential fix for ships becoming unresponsive after players leave the cockpit was submitted too.
For the renderer, work continued on the Gen12 transition, in particular finalizing the render graph. Support for the remaining secondary vertex streams, such as skinning attributes, velocity, and secondary UV streams, was added. Additionally, the gather-based depth-of-field implementation was optimized. The shaping of volumetric clouds was completed and a first draft is currently with the artists for prototyping and feedback. In the meantime, more improvements to cloud shading and shadowing were implemented. A believable multi-scatter approximation was also added. Cloud shading now includes atmosphere-based ambient light (reflected ground light will be added later), while cloud albedo was reduced at the edges to emphasize shape (it reveals subtle details) and light scattering in clouds is no longer monochromatic and now just as flexible as atmospheric scattering. To reduce aliasing when shaping clouds, proper texture LOD values are now computed at each raymarch step, while shadow rays are now jittered to reduce aliasing under motion. Research into the efficient skipping of empty space between clouds commenced.
The Engine Team continued working on the profiler, adding compatibility for hardware counters and a sampling profiler mode with dedicated Windows and Linux support. Memory tracking data can now be filtered so issues can be more easily delegated to their respective owners. Work and improvements on the entity component update scheduler continued. For the patcher libraries, time was spent investigating infrequent errors in data patching that resulted in corrupt p4k files; some improvements were implemented and more will be rolled out soon. Vis areas received further code updates and support for animated portals was implemented. Moving forward, the team will support work on the Vulkan backend.
The designers also received the ability to detect what the player is controlling in a ship, which will be used for the in-game tutorial. The distress beacon mechanic was further developed based on feedback during play reviews, so players can now use their scanners to detect weak distress signals.
A key focus throughout the month was the development of ‘play anywhere’ scenes, which involve AI characters approaching the player to initiate a conversation. These moments involve integrating scenes with AI locomotion to achieve a natural result. The first of these requires further polish but is currently looking very promising.
Gameplay Story were also heavily involved in animation tech, providing investigation and support into removable helmets, seat standardization, and character walk speeds.
On the Gen12-front, work continued to reach parity with the old shadow code-path so that it can be enabled by default. Testing of the Vulkan backend was rolled out further across the team to get wider visibility on the new API. Finally, to aid debugging, the font-rendering system was ported to Gen12.
Level Design worked closely with Art on several FPS spaces. These locations received a lot of polish from the FPS Design Team to ensure they’re fully realized and believable places.
The push for ‘gold-standard’ pirate AI behavior was continued by the Space/Dogfight Team, while the ‘buddy’ AI support was scoped out to determine its requirements.
They also provided feedback to the team’s Xenolinguist as progress continued with the Vanduul language.
“Developing the alien languages has been a very fruitful endeavor for the team because, beyond the language itself, the process has been great for creating cultural details and species behavior as languages often require an additional layer of specifics to be functional.” -The Narrative Team
Lastly, the team wrote the text for interactive props that will be used to dress some of the game environments.
The team also worked with external options for skinning decomposition and changed them into working solutions. This toolset forms the basis of the technology that will be used to refactor a portion of the asset-authoring pipeline to expedite the whole process.
They also dedicated time to the ongoing creation of Xi’an body and face rigs.