January 22nd 2020
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. Through their efforts, we’ve uncovered information on AI improvements, a hefty debrief on cinematics, and an as-needed UI display element.
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
“Flying on the surface of a planet is definitely different from open space; the expectation is that ships fly straight at a level altitude and bank when steering to different headings.” -Ship AI
The first iteration involved creating a flight path suitable for the terrain height and local slope. The information generated is used to correct the path to ensure ships always have a specified minimal clearance to the terrain below while steering according to the inclination of the terrain. For example, a ship will favor a flight path through a valley rather than over a ridge. Hand-placed and procedurally generated objects (rocks, buildings, etc.) are not part of the terrain elevation information and are obtained by a different query. In the next iteration, the team will integrate this information so spaceships can adapt their flight paths accordingly.
The same considerations apply to in-atmosphere dogfighting. The prototype of this was shown during the recent CitizenCon playthrough, with three security ships engaging the fugitive Carrack. The team also experimented with a stunt maneuver to add flair and personality to AI behavior.
Work was also completed on Collision Avoidance. This system runs in the background during AI flight and provides steering correction if a collision is likely to happen within a given time horizon. In the current development version, the system considers the collision resolution of all piloted vehicles, vehicles without a pilot (abandoned vehicles, derelicts), static obstacles, and procedurally generated asteroids.
Recently, the system was heavily reworked to minimize its impact on performance. This included ensuring all vehicles and obstacles were organized in memory according to their current host zone to make the search for the surrounding participants faster. It also makes sure the collision avoidance update never gets an exclusive lock on the cached information when creating and processing individual AI collision problems. This is a critical aspect, as the updates of all AI entities run concurrently, so having an exclusive lock can heavily impact performance.
Work also continued on the bartender, with the first iteration of mixing station tech added. This extends the character’s ability to not only pick up and serve items from the fridge, but to prepare new drinks at the mixing station. Several other small improvements were also made to make the overall experience smoother.
Finally for Social AI, the base idle system in the actor state machine was improved by moving all decision-making to the control state. This should make the whole system more robust and stable over the network, potentially avoiding the desync issues seen in the past as well as helping the team debug potential issues more efficiently. Further on the optimization, the usable caching has been updated to listen for tile-created events from navigation meshes.
They also made improvements to the system that generates cover location and usage to enable NPCs to choose to only partially cover themselves. Small optimizations were also made to AI hearing perception and specific designer movement requests.
Alongside the usual pipeline tasks, they worked on upcoming tech developments, specifically enabling players to interrupt certain scenes and NPC conversations. They kicked this off by marking-up scenes with a number of interrupt points to indicate where a scene could stop and resume and considered how it would do so if the player doesn’t ‘behave’. The goal is to do this with minimal (or no) additional animation fragments.
Cinematics also tested new animation code from Engineering that will allow performance-captured scenes to work from other directions than they were intially directed for. For example, if the actor representing the player character approached a bridge officer from the right, this code allows the performance of the bridge officer to mirror in real-time should the player approach from a different angle. Most games either use a locomotion solution (where the NPC constantly turns to face the player via a systemic set of motions) or use rigid performance capture data that only works from a specific direction. This solution bridges that gap as much as possible. Of course, there are limitations; the team are currently testing the restrictions, performance implications, and the authenticity vs. player agency trade-off.
Cinematics also worked with Character Art and Engineering to elevate character quality to the final production level. Character Art are finalizing the bridge officer, using Executive Officer Sofia Kelly as the testbed for the new skin and hair. This led to the prioritization of scenes and where the character and camera move around a lot to test the temporal anti-aliasing (TSAA) stability.
Since last year, the TSAA solution has advanced considerably and now creates a highly stable final image that intelligently smooths harsh white pixels, such as specular flicker. However, it was also smoothing out carefully crafted character eye-lights. So, Engineering delivered a solution to ensure eye-light reflections in character eyeballs are not smoothed out and the bright dots are kept alive, which is vital to giving characters an additional flicker of life. Currently, characters as lit as if on a movie set, with something similar to a virtual dedolight employed to cast eye-light.
Another area that received a quality push was comms calls. Squadron 42 features real-time render-to-texture comm feeds from NPCs. So, if the player has a comms call with Old Man, the wing leader will actually be in his cockpit and ‘filmed live’ when responding. The team wanted to determine a ‘gold standard’ for key video comms partners the player will interact with, including their wing leader, air traffic control, and an Idris captain.
These comms calls have several steps:
Regarding melee combat, the team moved onto body dragging, starting with interacting with the body, repositioning it, and basic player movement. For actor status, they finished the temperature system and moved onto hunger and thirst, setting up the initial stats.
Over in Frankfurt, Engineering spent time in December and January on game physics. This including exposing a linear air and water resistance scale, making damping linear (and not step dependent), using the box pruner to accelerate tri-mesh collisions, and general optimization. Regarding attachment support, they moved boundary brushes and entities to the object container entity and added the ability to query for the attached points during a previous attachment. They also exposed the surface area on geometries and optimized loading times and calculations while verifying parts.
The team continued with the new graphics pipeline and render interface (Gen12), made robust changes to the Vulkan layer to prepare for use with scene objects, added PSO and layout cache, improved API validation, and ported tiled shading light volume rasterization to the new pipeline. They also continued the parallel refactor of existing render code in support of the new graphics pipeline and APIs and worked on the global render state removal and device texture code refactor.
For planet terrain shadows, multi-cascade and blending support was added to improve detail and range. This will also eliminate various existing shadow artifacts. Development continued on volumetric terrain shadow support for fog, with the teaming coming up with a multi-scattered ambient lighting solution that ties into unified raymarching.
Multi-scattering improvements via a specialized sky irradiance LUT was made to improve unified raymarching. Updates were made to the jittered lookup and TSAA to vastly improve quality and reduce the number of raymarching steps. They also made lighting consistent so that planet atmosphere affects ground fog layers and vice versa, experimented with ozone layer support in-atmosphere, and added support for scattering queries (transparent objects).
Finally, work continued on planetary clouds, ocean rendering, frozen oceans, and wind bending for static brushes.
The Level Design Team are focused on the FPS-heavy sections of the game, working alonside the various feature teams to make sure AI behavior is realistic in all encounters. The pre-combat behaviors were also worked on, such as patrolling, investigation, and reactions to audio attenuation on differing materials.
The space and dogfight teams progressed with the AI behaviors of specific types of ship. Combat maneuvers are constantly being iterated on, while AI awareness of its own ship emissions, remaining ordinance, component damage, etc. is in progress. The team are also delivering level prototypes for some of the ‘exotic’ gameplay puzzles specific to Squadron 42 that rely on underlying core mechanics.