We start June’s report with Character Combat, who focused on Vanduul behaviors, specifically melee attacks.
“It’s important to have a base level of melee for all AI characters, with the idea being to employ the actor functionality to much of the same code as the player character.” -The Character Combat Team
This use of common code (where possible) ensures that NPCs are able to behave the same ways the player can. However, for the Vanduul, the team need specific attack animations that can be chained together to close distances and apply pressure to the player/adversary.
They also tackled several aspects of realistic firing, including improving the code-side of triggering and reloading. They made all requests event-based and added proper success notifications and different action results between the actor state machine and AI components. This allows the AI to have consistent knowledge of the results of the requested actions, allowing them to create behaviors that can handle different scenarios correctly. For example, if an NPC is pushing towards an enemy, the team may want them to automatically reload their weapon. However, if no ammunition is available, the behavior will be notified and a new reaction activated. This can happen to NPCs less skilled in evaluating their ability to manage ammunition, while those better skilled can choose not to use that tactic unless enough ammunition is available.
They also began leveraging the usable system functionalities of the bartender in a combat scenario. In the social environment, they created the concept of usables that can produce and accept items:
“An ammo box is nothing else than an item provider. The item itself could produce magazines or it might have magazines attached, similar to how a beer fridge can contain beer bottles, but a mixing station can create the drinks from specific source items. This allows NPCs to search for places in the world that can provide them with magazines of a specific type, relocate to those objects, and refill their loadout. This gives opportunity for the player and forces NPCs to evaluate the environment to decide if and when it’s appropriate to use those refill spots.”
Time was also spent completing tasks for server mesh implementation.
Last month, Social AI focused on the first pass of two new scenarios – bridge crew behaviors and capital ship hangar crews:
The bridge crew behavior allows NPCs to handle the required work of a capital ship. Designers can specify in the NPC schedules which type of role they have, which will help the ‘generic’ behavior select the right seats and routines they have to perform. The captain will also roam the bridge and supervise other members of the crew.
The hangar crew behavior represents a set of behaviors for all NPCs that work in a hangar, including overseer, fueler, ordnance, mechanic, grunt, and air-traffic controller. In this instance, the ship is an example of a compound usable – a usable that can contain the functionality of other single usables.
The first iteration of the vendor behavior is also nearing completion. June saw the addition of patrons that can order a drink, bring it to a table, and then return it to the counter.
Ai’s global focus was on improvements to the various systems used by all team members. Improvements were made to the debug draw of the Subsumption logic, allowing Subsumption functions, use channels, and conversations to display the updated value of their local variables. The range-event dispatcher debug now easily displays the monitored characters’ distance, orientation, and more. The team also worked on the movement system to provide additional functions to validate the execution of a plan. For example, to correctly consider the movement along a path driven by a cutscene or an animation so that, once finished, the character continues their movement smoothly. The LookComponent was refactored to correctly handle requests with different priorities too.
Throughout June, the team blocked out animations for various features and improved their ability to efficiently capture, select, and turn-around motion capture. They also worked on knockbacks, staggers, and hit reactions from grenades and other thrown objects.
The team worked with Combat AI on weapon reloads, reloading from locations, and Vanduul locomotion. For Social AI, they worked on lockers, smoking, crates, the bartender and bar patrons, and worked out an issue with the seated console metric.
Specifically for SQ42, work continued on various scenes, interrupts, and character faces.
The Character Team continued to work on hair, with blonde hair making progress. They also revisited the ‘bun’ style, which appears a large number of female characters. The rest of the team’s SQ42 focus was on refining the Vanduul.
“Our Vanduul base body needed to be tweaked and reskinned so that we could achieve higher fidelity animations. We’re wrapping the pass up this week and making an update pass on all Vanduul armors.” -The Character Team
Once the Vanduul characters are complete, work will begin on the Xi’an in earnest, which the artists recently blocked out.
Environment Art progressed with several sections of the Javelin, including new unique turret assets.
“These are massive turrets involving multiple firing modes that need to have a degree of nimbleness to them as well as, at times, feel heavy and weighty to use.” – The Environment Art Team
June saw the progress on two stations within the comms array that make up a large section of gameplay in early parts of the campaign. They both require lighting polish (which will continue as new lighting features come onboard) but are otherwise complete.
Work on the exterior on one of the campaign’s larger locations, a rest stop, is also close to completion.
“We have again upped the visual quality of our larger mega structures. What’s exciting about this is we can then take said structures and deconstruct them to create more space infrastructure, be it kit-bashing the new assets or taking pieces and tearing them apart and aging them to help populate space with more interesting assets than just asteroids (but we do still need great asteroids!).”
The mining station hangars were also finished and optimized. These multi-layered areas are the biggest hangars in the game and far bigger than anything seen in the PU.
Work also continued on two of the main hero locations visited throughout the campaign.
“Not much can be said about these without giving too much away, but we can say that they feel very unique, carrying little in the way of the style or aesthetic seen in the rest of the campaign. We’re certainly doing our best to make sure as many of our location feel diverse and carry their own identity.”
The Audio Team’s focus was on the Idris, giving it an updated ambience pass. They also rebalanced some of the weapons and vehicles unique to SQ42. Dialogue was edited and delivered to other teams, such as Animation, too.
Alongside business-as-usual work on scenes, animation, and camera passes, Cinematics undertook R&D into new tech that will help push the internal design tools and narrative scenes.
This included further improvements to conversations with NPCs. For conversations, markup tech enables them to be interruptible at various chosen points. Last month, they added the capability to markup acknowledgments. This means they can choose the points where two NPCs would glance over to the player if they’re in the vicinity. The goal is to maintain the integrity of scenes and mo-cap as much as possible, so instead of an immediate “robotic” glance whenever a certain distance is reached, the designers created a way to choose variables and mark-up the scene intelligently. Not all conversations between NPCs warrant immediate attention from the player; sometimes they’re in deep discussion and rarely glance over to the player. The designers can dial this in with absolute precision, choosing the percentage of eyes, head, neck, and body independently if they want to.
Other important tech was an auto-generated lighting rig designed to help shine a more visually appealing light on characters. This will be used in scenes not playing in a fixed location (where lighting would be manually placed) and to improve minor scenes that don’t require a full manual pass.
“In games, even the best environment lighting often results in character faces that aren’t optimal or ‘cinematic’ looking enough. Characters don’t feel like they are in a movie and often feel flat, not separated from the background enough, or shadowing on them is not great as the environmental lights are too far away. If you look at how a DOP and lighting crew operate on a movie set, it becomes very obvious why that is the case. On a film set, characters get special lighting rigs that are often only motivated by the set lighting. Maybe a key, a fill light, a bounce from a butterfly overhead diffusor frame, maybe a Dedo light hitting the eyes just right and one or two rim lights to cut them out from the background; sometimes you get the lighting crew running with the character to cast that perfect light on them at all times the director finds it important to do so. For static scenes or scenes where we know the location, we’re already doing manual lighting rigs as above to get the most out of the faces and their performances. But this new tech is the first step to building lighting rig tech that will help illuminate characters automatically without using a manual rig.” -The Cinematics Team
This tech works by querying the surrounding lights in the zone around the character in question, identifying ‘key’ light, and then sampling its intensity and color. This is then applied (with rules) close to the character. The same goes for an autogenerated rim light. When the player moves around the character, the light rig automatically adjusts as needed.
Last month, Engineering worked on the ISPC compiler for WAF:
“Think HLSL for CPUs to write CPU target agnostic vectorized SSE functions that can be invoked from C/C++. This allows us to have bespoke, run-time invoked code paths for different CPU architectures to get the best possible performance for computation of heavy code.” -The Engineering Team
They also began experimenting with a new code-build system to improve quality-of-life for developers. This will feature implemented Python script to fold similar threads when inspecting GDB crash dumps and add a VC 2019 compiler transition to QA test requests.
Optimizations were made to the physics grid, physics instances, and local OBB algorithms. For planet entities, work was done to prevent cell generation under terrain, while the generation of POD entities on terrain patches was improved by moving complex constructors out of tight loops. They removed various methods from the physical entity interface to avoid virtual-function overhead, made box-pruning optimizations, and promoted moment-related variables to double precision so that the solver is more numerically stable in terms of large masses.
Body-dragging was further polished and work continued on physical damage, this time focusing on deformations. Engineering continued tuning the integrity reduction formula based on the surface types of colliding parts, while ship-to-ship collision detection was tweaked to benefit stability and performance. Ragdoll experiments were also conducted and a quick prototype for cross-section data structure was completed.
Regarding the entity component update-scheduler, the Engineering Team worked on flattening or even removing recursive processing, made improvements to component processing inside an aggregate, and started implementing support for multiple component policies per-update-pass.
Numerous tasks were also completed for the Gen12 Renderer. For planetary atmospheres, they completed the guided filter to de-noise and up-sample lower resolution raymarching results for inscatter and transmittance. Work also began on re-projecting raymarching results to further reduce cost per-frame.
Gameplay Story continued to support Design with abandons and interrupts, this time on chapter four, and worked through new scenes from later in the game. Current focus is on implementing the remaining 28 scenes, which involves planning with Design, working out how scenes will function, and breaking down animation requirements.
Last month, the Graphics Team continued working on CPU performance improvements, the first being to avoid expensive synchronization events between the CPU and GPU that could occur under certain scenarios and hardware setups. After discovering that the UI code used to rescale and tesselate vector art was highly CPU intensive, they added code to quantize the UI screen resolutions. This avoids code-path cases where the visual difference would otherwise be unnoticeable or extremely subtle (e.g. if two identical UI screens differ in size by just a few pixels). Another major optimization was to avoid DirectX and graphics-driver CPU overhead by minimizing shader and texture swapping. They also cached buffers that were being needlessly set many times per frame, reducing the overall number of function calls to DirectX by over 30%.
As with Engineering, work on the Gen12 renderer continued, this time with the new deferred graphics pipeline that features faster and easier-to-extend code.
“With some of the fundamentals now falling into place, we hope to ramp up the efforts to convert existing features over to the Gen12 renderer, with an aim to enable an early version in the next few months.” – The Graphics Team
The edge-highlight/silhouette feature was upgraded to provide cleaner visuals with customizable line width, which was requested by the Vehicle Team to improve the appearance of various UI features.
Finally for Graphics, they changed how the culling system works for ships to allow them to be visible from much greater distances to aid gameplay. To help mitigate performance impact from the increased viewing distance, they implemented an automated testing system to measure the performance of every ship from every viewing distance to identify any requiring an optimization pass.
Last month, the team continued to refine the narrative experience. In addition to ongoing efforts to identify areas where they can tweak or add dialogue to improve the gameplay experience (as mentioned last month), they provided details and backstory for several companies and brands used across various environments to expand world-building. Narrative also coordinated with Audio to review progress on the Vanduul voices.
“Since they are recorded by all too Human actors, there is considerable artistry that goes into creating their unique alien sound.” – The Narrative Team
QA continued to work closely with the cinematic director and the rest of the team to investigate a few issues within certain chapters. They’re currently working on a test level to better investigate any issues that arise and to enable the Tools Development Team to more easily debug problems. The latest sprint task is to create recordings of scenes in the client that will eventually be reviewed by Cinematic Design and Animation to provide feedback and create action points for changes.
Techical Animation made progress with initiatives to overhaul the skin file setup and the physics proxy refactor began to show results. The team is in the final stages of UI and process refinement and aims to deliver the pipeline by the end of the quarter.
User Interface (UI)
The UI Team worked closely with the Vehicle Team to implement the new targeting and turrets UI. The artists also iterated on the bridges of the Aegis capital ships, including a warning screen. The concept artists created visual target videos for the Gladius HUD, including figuring out how to implement the upcoming 3D UI technology to break away from standard, flat screens. Other concept work included scanning and how the lens and visor look when they boot up.
Last month, VFX continued to support gas clouds alongside the Art and Design Teams. This involved introducing ‘themes’ that allow the designers to select a singular option that changes various settings within a gas cloud. For example, making it ‘safe’ or ‘dangerous’. depending on the story requirements. They also continued researching destruction pipelines.
The team in Frankfurt fleshed out the Vanduul tech style and weapon visuals.
“We received some amazing VFX concept art to help with this. Here’s a concept image to show what the main gun on the Vanduul kingship could look like.”