April 7th, 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 pilot security behavior, Vanduul combat, and physicalization of planets.
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
March’s report starts with the AI Content Team, who spent part of the month working on the engineer NPC, including improving the usable split of Mannequin tags coming from the use channel and the objects they interact with.
On-foot security, tourist, and tour guide activities were further developed too. The bed bunks behavior progressed, with the team working towards a better abstraction of bed shutter usage and investigating how to support bed sheets when characters are sleeping. Kick-offs to define the medic, illegal goods dealer, deck crew, and janitor behaviors were done too.
March saw AI Features complete the first pass on subcomponent targeting. This is now integrated and used in the main game-dev branch and will initially improve the behavior used when smaller ships attack capital ships, allowing for more effective element targeting, complex attack patterns, tactics.
The pilot security behavior was also restructured and extended. This is used, among other things, when security spaceships validate illegal content inside ships. Alongside creating a better structured and more scalable activity, it allows the security pilot to request the target surrender and handle different player behaviors. The pilot will also continue to request that the player surrenders during combat, allowing players to end the conflict and be arrested. They also worked to allow AI pilots to correctly dock at any supported location. This functionality is similar to landing, as it allows ships to navigate close to the collar and then perform a docking maneuver.
The eat and drink behavior continued to be improved, particularly ‘chowline’ usage. In addition to cleaning up the chowline, eating, and drinking animations, they improved the drinking behavior to make taking a cup a separate action. Plus, exit animations are now split between taking the tray and exiting tables so that multiple actions can be performed from specific bounce poses.
The surrender and cowering behaviors used by both trained and untrained agents progressed. This is used in hostile scenarios when NPCs are unable to fight back, are overwhelmed, or don’t have the tools for combat and prioritize preserving their lives.
On the Subsumption-logic side, several new tasks were introduced, including:
HasAnyTagInTagSelection: Evaluates whether an object has tags under specific parent tags
BroadcastInMyActionAreas: Propagates an event in the action areas the agent is contained
MergeMannequinTags: Takes two Mannequin tag variables and merges them into one
They also supported the Alpha 3.13 release with bug fixes and optimization, including issues causing slow NPC reactions and pilot security to complete flight activity too early.
Throughout March, AI Tech progressed with EVA, creating tech to allow characters to calculate 3D paths and systemically transition out of ships into space.
Last year, code was introduced to allow a hierarchical structure of the Subsumption mastergraph, which allows the team to create a state machine that describes the mental state of an NPC that’s preserved across multiple activities. For example, surviving in a zero-g environment requires the NPC to have specific knowledge and handle requests differently from when on foot or piloting a ship. The team are utilizing this to allow a better structure for the mastergraph and handle all states with fewer transitions. This groundwork will ultimately provide a better systemic transition into and out of zero-g environments.
Improvements were also made to the navigation links that describe the external linkage of navigation mesh triangles (essentially, two disconnected triangles are connected and become traversable using animation, explicit locomotion linkage, etc.). In doing so, the NavigationLink component was simplified to allow the explicit instantiation of extensions that can use different types of data to create external links. They currently support the following scenarios:
Explicit offsets that can be used to customize enter/exit locations for doors
Animation-driven traversal, such as an animation used to vault over an object or jump up and down
The AI Team began extending the melee system to improve the definition of combo attacks. The goal was to avoid using explicit Mannequin transitions between states to reduce the complexity in the setup, since they know the exact flow allowed between melee attacks. To achieve this, they introduced an automatic way to calculate the Mannequin tag of the transitioning attack so that the structure can be more straightforward. This also makes it easier to test chaining animations, ensuring poses perfectly match and timing is easily adjusted.
For patrol tech, ‘hot reload’ was implemented. This means the Subsumption logic edits associated with a path are automatically reloaded in the editor, giving the designers immediate feedback on-screen that they can quickly iterate on. The logic will also be validated if data changes without the editor running. During level loading, the saved data attempts to match with the current updated logic too.
The team also spent time refactoring the usable code to better calculate usable-attached Mannequin tags related to items they want to manipulate. The code is now split to propagate tags associated with the usable and use channel, including the one coming from the tool. Once calculated, they’re merged and passed into the animation request to select the appropriate animation.
The unification of the flow for using usables and operator seats continued, which now only uses two blocks in the movement plan for the usable component. The actor state machine communicates the different states with the usable component, such as entering a seat or starting idle, which is then propagated and evaluated to understand when to consider entering or exiting the usable a success.
For the communication system, AI Content fixed the automatic creation of group channels based on the target of dialogue. This allows them to control who is allowed to talk to a specific target to avoid overlapping when the ‘Group’ channel type is specified. They also improved the system allowing communication context to override silence on a specific channel. This gives designers more granular control over the pacing of voice lines used by AI to communicate readability of their actions.
The team spent part of the month on the engineer, deck crew, and Vanduul combat animation behavior sets. Progress was also made on hurt conditional states, AI hygiene, emergency reaction exits in useable planning, zero-g traversal, dodging, shopkeepers, guarding behavior, players healing friends, looting, surrendering, mess halls, and eateries. A bug affecting wrist wobble that plagued the team for years was fixed, and the crossbow, cutter, and tractor beam progressed through the pipeline.
On the facial side, animations were polished for the next round of story characters. The Gameplay Story Team worked through a new chapter, and motion capture was solved for conditional deaths. Planning was done for Q2, which involved aligning with the needs of the PU and re-evaluating the processes to streamline animation-side development.
March saw the artists start a significant concepting pass for an enemy faction, which will also inform how character assets are approached for use in the Pyro in the PU.
“We’ve seen some exciting designs coming from the Concept Team and we can’t wait to get started on these!” -The Character Art Team
Elsewhere, work continued on Trejo’s head, hair, and her Basilisk Advocacy uniform. New shader tech was also developed for eyes and ears alongside the Graphics and Tech Animation teams.
Last month, the Audio Team continued to support work on chapter 4a, ensuring music logic and systemic SFX systems are well balanced.
Throughout March, the Cinematics Team made big pushes on ship-centric cutaways, polished more intricate character scenes, and welcomed new tools to support their efforts. For ships, they progressed well on several large-scale cutaways involving several varieties of alien ship, including a Xi’an cargo ship and its captain.
“For the longest time, the captain of said Xian vessel was realized as a crude stand-in blockout. We had put a Halloween-mask-style sculpt export of a Xian on top of a human body for our cutaway scene, so seeing this guy finally appear in our scene as a realized, almost-final creature was a refreshing sight for the eyes!” -The Cinematics Team
Another in-mission cutaway featured unique vessels built out of other ships. The Cinematics and Art teams synched extensively on these designs to ensure they look interesting and menacing while still delivering easy readability for the player.
In March, Engineering added physics support for multiple solar systems. A new grid type (GT_SOLARSYSTEM) that replicates the configuration of the current root grid was added along with the ability to skip the inside/outside checks to allow multiple instances of such grids to overlap without entities randomly transitioning between them. To ease debugging (which can be difficult without a visual representation of what’s going on in the physical world), a simple debug raytracing framework was added to visualize the results of ray world intersection (RWI) checks. This has been hugely useful already and allowed the team to fix various bugs quickly. The team will also be using this to optimize RWI in general as it accurately uncovers performance issues otherwise hidden in the game’s RWI queries.
March also saw various code optimizations, including the physicalization of planets, ray-bound intersections, and using octrees for ray-occlusion tracing. Furthermore, the velocity limit for explosions and shockwaves was removed, interior grids can now be saved as CGFs to allow proper instancing, and support for kinematic parts (animated parts that get proper velocity estimates) was added. The Physics Team also spent time bug fixing and supporting Alpha 3.13.
Work on the G12 renderer continued, with internal resolution scaling and native resolution rendering being reworked. The render graph that controls the scheduling of render passes and associated resource management was merged into the main development branch. Alongside this, more existing features were ported to Gen12, such as emissive lights and object motion blur, and the shader parser was refactored in parts to allow for faster processing (especially for code dependency tracking).
Engineering made great progress with volumetric clouds last month, with tint support being added to allow more flexibility on the art side when coloring clouds for exotic planets. The multi-scatter solution also received various subtle improvements, including taking an atmosphere’s optical depth along shadow rays into account. Cloud shaping was further improved to provide a better sense of local volume, while support for shadow refinement was added to further contribute to cloud detail. Alongside these visual improvements, initial optimizations were implemented to speed up the raymarching process, and the implementation of an efficient empty space skipping scheme has begun.
On the core-engine side, more work was done on performance analysis and regression. The in-engine profiler received various improvements, including the ability to group samples captured by their respective function. The team also started to look into replacing their current UI solution for postmortem performance analysis based on captured performance telemetry data. Python scripts were written to run performance tests and write corresponding reports. Additionally, the threading logic was refactored to further improve performance and the job system now utilizes specific APIs introduced with Windows 8.1 and Windows 10 (Windows 7 still works but won’t benefit) to allow for much-improved waking of jobs and preventing contention in the fiber system thread. This is particularly noticeable on CPUs with a significant number of cores and will be rolled out in Alpha 3.13. The entity component update scheduler received a profiler and GUI as well as various optimizations.
Finally, C++17 language support was enabled and a performance issue with code generation in MSVC with regards to thread local storage initialization behavior was addressed.
The SQ42 Feature Team began profiling the time taken when running TrackView sequences with productive results. They found some bottlenecks in a couple of the systems which, when optimized, will have a significant benefit and could help performance in general. The TrackView code is not multithreaded, so they’re looking at converting it.
A few tasks to help improve the transition from game mode to cinematic sequences were completed. Now, the team can specify whether the cameras fly from the player’s viewpoint into a sequence and back again rather than just cutting between them. They also supplied a new node that the team can use to get the player to automatically locomote short distances. This is used to get them into the correct position at the start of a sequence to smooth out the initial transition.
Work also began on formation flying, which features an indicator highlighting where the player should go and gives the option to continue flying manually or automatically stay in formation.
March saw Gameplay Story record a lot of new scratch audio for chapter 1 and ‘random-to-NPC’ scenes. Extra lockers were added to the main bathroom in the Idris, so several scenes were updated to match the new layout, and several gameplay animation sets were completed, enabling the team to begin updating scenes using the maintenance wall panel and mess hall tables.
Great progress was made on a pair of complicated scenes from chapter 11 that include player interaction, prop use, several different branches, and video comms from different characters and sources. Additional “wait function” animations for different characters were created too, and a complicated scene that uses a flexible cable was also updated.
Graphics & VFX Programming
The Graphics Team spend early March fixing bugs. For example, the render-to-texture (RTT) system didn’t have a fixed memory budget and was instead dependent on how it was used by the game. However, this could sometimes lead to out-of-memory issues, particularly when running at higher resolutions. Now, the memory reserve for RTT is linked to screen resolution, because higher-resolution outputs require higher-resolution intermediate textures. If the fixed budget is exceeded, they now dynamically down-res the RTTs until they fit, which ensures stability in extreme scenarios.
They also began planning for the transition to the Gen12 renderer to better understand when each milestone will be delivered to help determine the balance of staff working on the transition, features, and bugs.
The VFX Programming Team split time between bugs, fire, SDF shields, and particle lighting. The fire feature is a long-term task, with the current focus on fire spreading between rooms, light spawning, and repair. Particle lighting is a new model that gives higher quality and more consistent and physically plausible results.
The Social Design Team are on course for the game-wide rollout of all granular scene setups and usable interactions. The Level Design Team continued to work with the artists and FPS AI Team to add spaces that bring additional life to some of the bigger chapters in the game. The Space/Dogfight Team worked towards an internal milestone this quarter with the support of many other teams, with all chapters that include space flight benefiting from the initiative.
The in-depth reviews of the campaign continued in March, and along with it came some additional scripts to further polish the gameplay experience. In several instances, the Narrative Team began working with Audio and Design to record and implement placeholder versions of this dialogue with various team members serving as temporary voice actors. This allows for internal testing during playthroughs to see if the dialogue is achieving its intended purpose and tone. The team can also make additional revisions much faster with the placeholder assets than if they had been recorded with actual voiceover talent.
The team also worked with Character Art to provide additional details for a group of outlaws players will encounter, expanding on their unique look. The goal is to give them a real sense of history and personality while fitting in with the Star Citizen universe. Additionally, the Narrative Team provided write-ups on space-scaping for a sector explored early in the game, identifying billboards and signage that travelers will encounter.
Cinematics continued to rely on QA for recordings of each level for review, and new features and content were tested for the development teams. QA also began testing the AI side of the project.
Most of the Tech Animation Team spent time last month iterating on the in-house facial pipeline. They’re aiming for a faster and more intuitive approach to FACS expression authoring for the complicated facial systems, part of which incorporates the smooth skinning decomposition technology from last month’s R&D.
They maintained and triaged assets from many other departments to ensure the project structure, builds, and animation systems are kept in a stable state, and helped author and refine some head and body assets to enable the animation teams to work directly in Maya. Lastly, they completed the first round of rigging for the Xi’an character and are currently awaiting feedback and iteration from Animation.
The UI Team polished the user interface in support of the new radar gameplay for vehicles and first-person modes, which includes emissions, a scanning UI, and updated ping. Work also continued on the new HUD for the Aegis Gladius, with the team focusing on missiles and improved contact display.
Last month, the VFX Team continued to work on improvements to gas cloud interiors, specifically using vehicle SDFs to simulate the look of tiny dust particles flowing over the surface. This adds to the sense of motion when flying when combined with the collision effects mentioned last month. Several miscellaneous effects were also worked on, including some new water effects for the artists to place throughout a dank, grimy location, and some electrical effects.