IE11 is no longer supported
We do not support Internet Explorer 11 and below. Please use a different web browser.
Roberts Space Industries ®






February 12th 2020

Squadron 42 Monthly Report: January 2020

Squadron 42 Monthly Report: January 2020

This is a cross-post of the report that was recently sent out via the monthly Squadron 42 newsletter. We’re publishing this a second time as a Comm-Link to make it easier for the community to reference back to.

Attention Recruits,

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 managed to unearth exciting information on tools improvements for the Cinematics team, a massive month of “interruptions” for the Gameplay Story team, and seeing hard work pay off with immersive experiences.

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


We start January’s report with Combat AI, who improved cover generation and the NPC cover-use mentioned last month. This involved voxelizing the area around the cover locator to better understand which locations have clearance and adequate protection. Behaviour-wise, feedback on shotgun tactics was implemented; now AI actors will find more tactically advantageous positions when shooting. The ability for NPCs to change between locomotion speeds while using a single path was also implemented. For example, NPCs relocating to a new cover location can slowly move and shoot before turning to run without recalculating their path.

The Ship AI Team finalized the last implementation of the new 3D navigation system. This uses a 3D pathfinder and collision avoidance system, with the goal to make AI pilots fully aware of their physical environments. Each environment offers a different challenge: In open space, pilots need to take into account asteroids, communication arrays, and space stations. When flying close to a planetary surface, pilots need to be aware of the local terrain elevation and physical structures that don’t belong to the procedurally generated surface, such as rocks, buildings, refineries, and towers. In order to obtain and effectively use this information, the AI systems need to query physics in an extremely detailed way and model the information in abstractions that can be processed by their algorithms.

Also, time was dedicated to the routine code clean-up that’s crucial to keeping the ever-growing code base efficient and readable. This clean-up focused mostly on flight-related Subsumption tasks with heavily repeated (or ‘boilerplate’) code that could be abstracted away to reduce the likelihood of errors when implementing new tasks.

The final days of January saw Ship AI prototyping a new AI system – Tactical Target Selection. Mission requirements are getting more sophisticated and the current selection system, based on filters, is not able to fulfill all requested scenarios.

The Social Team are currently focusing on a bar location, where players and NPCs can purchase bottled and draft drinks and ask the bartender to mix cocktails. Players will be able to drink at a table, booth, or the bar itself. They’re also populating various key locations, such as the Idris, which involves creating specific NPC behaviors for each area. Currently, they’re working on the hangar, where players will find mechanics who inspect and repair ships, and fuelers, who replenish them as required.

Art (Characters)

January saw the Character Team continue to update the hairstyles of SQ42. Development continued on the Vanduul race, with the team working closely with Tech Animation, who are developing their internal Rig Logic system. Squadron uniforms were brought up to the latest standard, including the Bridge Officer uniform that was updated courtesy of the new material library. Head update passes are currently underway as hairstyles are completed.


In Frankfurt, the Cinematic Team’s focus was on improving tools. As such, they now have the long-awaited thruster movements when they puppeteer ships via navsplines within cinematic sequences. This is made possible by IFCS calculating the positional/rotational movement and additive offset animation and firing the thrusters accordingly. Now, for example, if Old Man’s Gladius comes to a halt, the correct thrusters will fire.

The team recently gained the ability to play Entity effects on ships. In the past, it was difficult to replicate in-game effects accurately in cinematics, such as a ship exiting quantum travel. Previously, they had to utilize additional particle emitters – now they can play the exact effect when required. And, if they decide they need additional effects, they can override IFCS to further tweak the visuals manually.

Work was also done to improve accessibility to ships. The team now have a visual viewport selection of a ship’s itemports and can add them to sequences. This is a huge improvement over the previous long single list, particularly on huge ships with potentially thousands of itemports like the Bengal.


January saw the Engineering Team continue with physics threading and performance improvements. This involved increasing concurrency by adding an option to specify the number of worker threads to a maximum of 30. Currently, they overlap with the job system’s worker threads. However, job workers are optimized for latency, so there are always points within a frame where it isn’t entirely busy. Long term, they plan to move the in-thread physics workload to the job system directly, which will require further changes to negate the potential for frequent stalls.

The team also implemented concurrent/immediate queuing for physics, support for fences and barriers to synchronize physics actions/params, and added physics step data to the FPS heartbeat to monitor high-level load. The signed distance field (SDF) system was further developed to accelerate collision checks on complex geometry and increase precision. Support was also given to NPC death reaction animations regarding actor and ragdoll body dragging.

January’s engine work included optimizing the job manager, which is required for entity-component scheduler improvements, and modifying it to run all component updates in batches. The responsiveness of the batch worker was also improved by removing the polling behavior to find jobs done (using direct signals instead), replacing the signaling mechanism with WaitOnAddress functionality for more efficient wake-ups, introducing clusters to prevent unnecessary wakeup for small batches, and replacing work-stealing code with simple atomic decrements.

For the zone system, they implemented support for proximity volumes and moved SZoneHandle data from client objects into the zone system. They also supported the transition to Visual Studio 2019.
Engineering also supported the Gen12 renderer and Vulkan. This involved porting the buffer management code to the Gen12 renderer, generalizing texture views, creating support for LoadOp, changing Map API to make it more C++11-friendly using RAII, and ensuring the UpdateResourceBuffer legacy pipeline now correctly takes in byte offsets in the backend rather than per element-offset.

Work on new experimental hair features began, including a hair color model with base melanin and bleach/dye layers. Ocean rendering moved from a ‘forward’ to a ‘deferred’ pass to allow more consistent shading; shadow application is now free and cube map reflections were improved. The unified raymarcher continued development too.

For planet lighting and atmosphere, they added combined planet color LUT to evaluate the local ground albedo and take it into account during irradiance computations. They also applied scene irradiance computations and cloud shading, introduced new sky irradiance LUT for a better approximation of light scattering events within atmosphere, and added support for an alternative jitter method that works alongside TSAA.

Regarding ground fog, they implemented a strictly compute-based method to build the ground height map. This means they’ll be able to ditch fog volume proxy mesh generations which, after a lot of improvements, were still subject to artifacts. This move will save on memory resources as well. They also removed the peel buffer (in preparation to drop the proxy mesh) and fog bounds are now evaluated analytically.

The Feature Team continued to work with Gameplay Story and the designers to improve the interrupt and join tech. It now uses Subsumption static variables to simplify the logic setup and provide additional triggers, such as area volume.

Gameplay Story

‘Interrupts’ were a key focus for the Gameplay Story Team during January, who managed to complete 975 interrupt, busy, and conversation rejoin lines in Mannequin. They were also involved in testing, documenting, and providing feedback. They also began incorporating the new player facial animation. This involves ensuring that the animation triggers and synchronizes correctly. One particularly complex scene that involves six characters preparing for battle made great progress, with animation and weapon handling flowing seamlessly.

We have plenty more background elements and post-scene animations to complete, but I’m certain this scene will become a highlight for our team’s work on Squadron 42.
- The Gameplay Story Team


The Graphics Team’s SQ42 focus was on the Gen12/Vulkan renderer that will continue for several months. This major project will improve renderer performance, achieve higher frame-rates, and open the door to various new GPU technologies. They also converted the first few post effects over to the new system and made improvements to the core system as new use-cases were encountered.

Level Design

The Social Team continued with the long process of narrative interaction. The technology for breaking away from, abandoning, and re-joining conversations is complicated when applied to specific actor performances, with each scene considered on merit. However, it’s a worthwhile endeavor as the team are already seeing a level of immersion not seen in other narrative-driven games. Level Design are pushing on with AI behaviors, level mark-up, and moving some of the less-detailed greybox block-outs to their final states. The Dogfight Team are still building out the core AI movesets and behaviors to deliver believable and scalable AI for all scenarios.


Cinematics testing continues on a daily basis, with an embedded tester working closely with the Cinematics Team themselves. This involved creating client scene-captures of individual chapters and investigating issues that hinder the cinematic workflow.

Tech Animation

Tech Animation supported Cinematics with various loadout and character-related fixes and fixed multiple small bugs in the animation pipeline. They reworked the PlayBlast animation tool in Maya to make reviewing clips more efficient. They also supported Social AI with Mannequin tasks, implementing animations for the bartender, railings, and bar patron.

Tech Art

Tech Art continued to flesh out the runtime Rig Logic tools for Maya. The previously monolithic code and related data structures were broken down into generic building blocks known as rig components. These components can be chained together almost arbitrarily to provide the functionality required by specific rigs, such as a human body or space whale. BlendShape, linear joint offset, PSD, wrinkle map, and more are currently viable. In the future, support will be extended to RBF, look IK, and other more complex variants. This will allow the team to better develop new runtime rigs, which they’ll need when they start creating the complex rigs for alien races and fauna.

Another important goal is to transition human body rigs from a fully-baked form (where the movement of joints and bones is exported into the game engine from Maya) to a workflow that only bakes and exports the primary joints. This will use a custom body runtime rig logic to determine the translation and rotation of all deformation helper joints. These joints ensure that, regardless of what clothing a character wears or how they pose, attachments always deform correctly without artifacts. By driving them via a runtime rig logic, the memory footprint of the thousands of body animation clips will become much smaller. Also, procedural animation of the primary joints via physicalized ragdolls, runtime IK, and others will not break deformation as the rig logic will adjust the deformation joints according to the final pose.

User Interface (UI)

Throughout January, the UI Team put the finishing touches to the Actor Status display first seen at CitizenCon. This is the first element of the player’s HUD to be built using the recent building blocks tech. They also finalized the design of the SQ42-specific helmet UI.

The UI Tech Team started work on 3D building blocks, which will support multi-layered screens and make it easier to add 3D icons. They also expanded reusability and restyling, which will help implement the new vehicle UI.


VFX began the year examining the GPU particle system and prioritizing features required for SQ42. They continued their push towards replacing older CPU particles with the GPU system, including a more robust method for spawning parent/child setups with deeper levels of interaction than before.



End Transmission

Part of

Monthly Reports

More in this series



Loading Additional Feedback