October 13th 2021
TO: SQUADRON 42 RECRUITS
SUBJ: DEVELOPMENT UPDATE 10:06:2021
REF: CIG UK, CIG DE, CIG LA, CIG TX
FAO Squadron 42 recruits.
Welcome to September’s Squadron 42 development report. Enclosed you’ll find details on the latest progress made across the campaign, including updates to vital backend services, AI behaviors, and cockpit communications.
Thank you for your continued support of Squadron 42.
September saw AI deliver the Aciedo usables using blockout animations, with motion-capture animations currently in the polishing stage. Search spot, railing lean, stare spot, and several others are now considered final and ready to be used throughout the level.
The hygiene behavior was updated and is now complete, with new animations added for the toilet and shower cubicle. This was rolled out, with bug fixing underway.
Work also began on a new gunner behavior. Currently, NPCs find and use ship turrets. The next step will allow them to rush to turrets if their ship is under attack.
Skin textures and hair were also updated to bring all characters (hero and background) to a next-gen quality level.
Additionally, terrain meshes are now flagged so that they can be exclusively raycast against along with allowing meshes to cluster with a single raycast. Moreover, kinematic parts are now used as valid moving ground colliders on actor entities.
For the renderer, work continued on the global draw packet cache. A mechanism was added to rebuild the cache when necessary. Its logic was also refined to prevent the unnecessary recreation of draw packets with identical arguments, which is important for brushes.
On a higher level, the Gen12 render interface is now used for stat OBJs and render proxies throughout the engine, which marks another step in the transition to the new render paradigm. The shader system saw several changes too – shader parser initialization was streamlined, and the user cache was moved to the ‘Window’s APPDATA folder’. This will be rolled out post Alpha 3.15 and should fix a long-standing issue for some users. There were also various changes to refactor and transition code to Gen12.
Regarding atmosphere and volumetric clouds, there have been various improvements to cloud shadows. The stepping code for local cloud shadows has been refined to be easier to control by artists as well as optimized so that it’s not evaluated unless necessary. Aside from self-shadowing, clouds now also cast their shadows onto the entire scene which has become important for proper scene integration as the team start to use them on planets as well. Additionally, work to improve the rendering of cloud edges has been completed, and parameters exposed to artists, to give them a more volumetric look. Research went into various topics: 1) a quick prototype for better rendering of rain clouds was implemented, 2) integration of cloud shadows into the atmosphere has been implemented (among other things will allow for light shafts from clouds), and 3) because of these shadows in the atmosphere a prototype for improved rendering of multi scattering in clouds and atmosphere was implemented. It acknowledges the presence of clouds in the atmosphere when it comes to indirect lighting and will help shading clouds (brighter, more natural white tones in shadows) as well as the ambiance of overcast skies on ground (less hazy and blueish – in case of earth like planets). These research items are still WIP and will hopefully mature enough to be shipped in the coming months with other improvements to rendering quality and performance.
On the core engine side, support for ‘APPDATA’ access was added to the P4K system. Aside from now storing the user shader cache folder there, the team plan to eventually move all temporary game-client files to this new location. The P4K file system was also improved to properly deal with Unicode paths.
Work on the performance regression system picked up again with numerous supporting changes, as it’s becoming important to daily progress and development stability.
The team also supported server meshing by decoupling code so that it can run as a standalone service. They started focusing more on optimization too, with certain game scenarios frequently analyzed, reported, and updated. This brought various improvements that will be rolled out post Alpha 3.15. For example, entity-component wakeup was improved by keeping components active for some time. Server Object Container Streaming code was heavily optimized, and memory allocation when using CigFunction (lambdas) was improved. There were various other amends too, such as moving runtime GPU buffer updates to background threads.
They also moved the character customizer (that previously used the PU frontend) into the campaign’s levels. The UI is currently being converted to the Building Blocks system, so a major part of the work involved untangling it from the frontend so it can be added to any object container in the game. It’s now fully working, albeit with blockout UI. The team is currently assessing where they want to take it in both appearance and usability.
“Having managed to solve the helmet problem, we then did a rapid sweep through all our scenes with helmets to update them accordingly. It’s been great to see so many scenes take a leap forward and to see our characters holding and interacting with their headwear in a realistic way in-game.” – Gameplay Story
Alongside this, they overhauled the ‘Graves walk and talk’ in chapter five.
Work also began on an emergency handle setup involving prop animation, a particle effect, mesh swapping, and entity setup. This is a particularly complicated task but the setup is nearing completion and appears to be highly accurate. Soon, the team will be able to finalize the scene with all separate elements correctly working together.
Alongside this, they improved the water shader. These changes allow shading to be based on available tiled-lighting data rather than the nearest environment probe to create more consistent lighting in scenes involving water volumes. They also changed water volume lighting to take into account volumetrics, such as clouds and fog, avoiding previous issues where water volumes would ignore local fog volumes when shading.
They also progressed on the render-to-texture refactor by implementing region copy for static RTTOs to reuse the existing content instead of re-rendering it. This will ultimately increase performance and save on scene pass usage. They also re-wrote the RTT atlas packing algorithm to support the new region copy feature, making it more robust and easier to maintain.
Finally, Graphics looked into validation errors and collated captured Vulkan analytical information for future extensions.
Level Design further fleshed out the FPS play spaces with additional details, while Social Design Team continued the significant task of implementing all in-game scenes for review and sign-off.
While working on the placeholder dialogue mentioned in last month’s report, the team outlined some tech solutions to remove potential roadblocks in the pipeline. This will be helpful as more requests come in, allowing both Narrative and Design to quickly iterate on dialogue by hearing it in situ.
They also planned a potential performance capture shoot for later in the quarter, with the aim to pick up content originally scheduled before lockdown. This will include a mixture of PU needs and new SQ42 scenes.
A new particle rig for distant vehicles was created, which allows Cinematics to easily animate a whole set of effects on low-poly (non-AI) vehicles. This was well received by the Cinematics Art team, who are looking forward to populating various locations with background action.