Squadron 42 Monthly Report: June 2020
Undefined Undefined Monthly ReportsContent
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).
Due to the unwavering work of our agents in the field, we’ve managed to ascertain work done on Javelin interiors and unique turret assets, Vanduul Combat AI, and a deadly look at what a Vanduul kingship’s weapon could be capable of.
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 AI (Combat)
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.
AI (Social)
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 (General)
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.
Animation
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.
Art (Characters)
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.
Art (Environment)
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.”
Audio
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.
Cinematics
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.
Engineering
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
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.
Graphics
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.
Narrative
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
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.
Tech Animation
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.
VFX
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.” WE’LL SEE YOU NEXT MONTH…
Attention Recruits,
What you are about to read is the latest information on the continuing development of Squadron 42 (SCI des: SQ42).
Due to the unwavering work of our agents in the field, we’ve managed to ascertain work done on Javelin interiors and unique turret assets, Vanduul Combat AI, and a deadly look at what a Vanduul kingship’s weapon could be capable of.
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 AI (Combat)
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.
AI (Social)
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 (General)
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.
Animation
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.
Art (Characters)
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.
Art (Environment)
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.”
Audio
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.
Cinematics
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.
Engineering
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
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.
Graphics
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.
Narrative
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
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.
Tech Animation
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.
VFX
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.” WE’LL SEE YOU NEXT MONTH…
Dies ist ein Cross-Post des Berichts, der kürzlich über den monatlichen Squadron 42 Newsletter verschickt wurde. Wir veröffentlichen ihn ein zweites Mal als Comm-Link, um es für die Community einfacher zu machen, darauf zurückzugreifen.
Achtung Rekruten,
Was ihr gleich lesen werdet, sind die neuesten Informationen über die Weiterentwicklung von Squadron 42 (SCI des: SQ42).
Dank der unermüdlichen Arbeit unserer Agenten vor Ort ist es uns gelungen, die Arbeit an der Innenausstattung der Speere und an den einzigartigen Geschütztürmen, der Vanduul-Kampf-KI und einen tödlichen Blick darauf zu werfen, wozu die Waffe eines Vanduul-Königsschiffs in der Lage sein könnte.
Die in dieser Mitteilung enthaltenen Informationen sind äußerst sensibel und es ist von größter Wichtigkeit, dass sie nicht in die falschen Hände geraten. Säubere alle Aufzeichnungen nach dem Lesen.
UEE Marine-Oberkommando
KI (Kampf)
Wir beginnen den Juni-Bericht mit Character Combat, der sich auf das Verhalten von Vanduul konzentriert, insbesondere Nahkampfangriffe.
"Es ist wichtig, für alle KI-Charaktere einen Basis-Nahkampf-Level zu haben, mit der Idee, die Schauspielerfunktionalität zu einem großen Teil auf den gleichen Code wie der Spielercharakter anzuwenden. -Das Charakterkampf-Team
Diese Verwendung von allgemeinem Code (wo möglich) stellt sicher, dass sich die NSCs genauso verhalten können wie der Spieler. Für die Vanduul benötigt das Team jedoch spezifische Angriffsanimationen, die aneinander gekettet werden können, um Entfernungen zu verringern und Druck auf den Spieler/Gegenspieler auszuüben.
Außerdem haben sie verschiedene Aspekte des realistischen Schießens in Angriff genommen, einschließlich der Verbesserung der Code-Seite des Auslösens und Nachladens. Sie machten alle Anfragen ereignisbasiert und fügten korrekte Erfolgsbenachrichtigungen und unterschiedliche Aktionsergebnisse zwischen der Akteurszustandsmaschine und KI-Komponenten hinzu. Dies ermöglicht es der KI, konsistente Kenntnisse über die Ergebnisse der angeforderten Aktionen zu haben, was es ihnen erlaubt, Verhaltensweisen zu erstellen, die verschiedene Szenarien korrekt handhaben können. Wenn sich zum Beispiel ein NSC auf einen Feind zubewegt, möchte das Team vielleicht, dass er seine Waffe automatisch nachlädt. Wenn jedoch keine Munition verfügbar ist, wird das Verhalten gemeldet und eine neue Reaktion aktiviert. Dies kann NSCs passieren, die weniger geschickt sind, um ihre Fähigkeit, Munition zu verwalten, einzuschätzen, während die besser ausgebildeten NSCs sich dafür entscheiden können, diese Taktik nicht anzuwenden, wenn nicht genügend Munition verfügbar ist.
Sie haben auch damit begonnen, die nutzbaren Systemfunktionen des Barkeepers in einem Kampfszenario zu nutzen. Im sozialen Umfeld schufen sie das Konzept der Nutzbarkeit, die Gegenstände herstellen und annehmen kann:
"Eine Munitionskiste ist nichts anderes als ein Itemlieferant. Der Gegenstand selbst könnte Magazine produzieren oder er könnte Magazine enthalten, ähnlich wie ein Bierkühlschrank Bierflaschen enthalten kann, aber eine Mischstation kann die Getränke aus bestimmten Quellgegenständen herstellen. Dadurch können NSCs nach Orten in der Welt suchen, die ihnen Magazine eines bestimmten Typs liefern können, sich zu diesen Objekten begeben und ihre Ladung wieder auffüllen. Dies gibt dem Spieler die Möglichkeit und zwingt die NSCs dazu, die Umgebung zu bewerten, um zu entscheiden, ob und wann es angebracht ist, diese Nachfüllstellen zu benutzen".
Es wurde auch Zeit damit verbracht, Aufgaben für die Implementierung des Server-Mesh zu erledigen.
KI (sozial)
Letzten Monat konzentrierte sich die soziale KI auf den ersten Durchgang von zwei neuen Szenarien - das Verhalten der Brückenbesatzung und der Hangarbesatzungen von Großkampfschiffen:
Das Verhalten der Brückenbesatzung erlaubt es den NSCs, die erforderliche Arbeit eines Großkampfschiffes zu erledigen. Die Designer können in den NSC-Schedules angeben, welche Art von Rolle sie haben, was dem 'generischen' Verhalten hilft, die richtigen Plätze und Routinen auszuwählen, die sie ausführen müssen. Der Kapitän wird auch die Brücke durchstreifen und andere Crewmitglieder beaufsichtigen.
Das Verhalten der Hangarbesatzung stellt eine Reihe von Verhaltensweisen für alle NSCs dar, die in einem Hangar arbeiten, einschließlich Aufseher, Betanker, Geschütze, Mechaniker, Grunzer und Fluglotse. In diesem Fall ist das Schiff ein Beispiel für eine zusammengesetzte Benutzbarkeit - eine Benutzbarkeit, die die Funktionalität anderer einzelner Benutzbarkeiten enthalten kann.
Die erste Iteration des Verkäuferverhaltens steht ebenfalls kurz vor dem Abschluss. Im Juni kamen Gäste hinzu, die ein Getränk bestellen, es an einen Tisch bringen und dann an die Theke zurückbringen können.
AI (Allgemein)
Ai's globaler Fokus lag auf der Verbesserung der verschiedenen Systeme, die von allen Teammitgliedern benutzt werden. Es wurden Verbesserungen an der Debug-Zeichnung der Subsumptionslogik vorgenommen, die es den Subsumptionsfunktionen, der Benutzung von Kanälen und Konversationen erlaubt, den aktualisierten Wert ihrer lokalen Variablen anzuzeigen. Das Debugging des Entfernungs-Ereignisverteilers zeigt nun auf einfache Weise die Entfernung, Orientierung und mehr der überwachten Charaktere an. Das Team hat auch am Bewegungssystem gearbeitet, um zusätzliche Funktionen zur Validierung der Ausführung eines Plans bereitzustellen. Zum Beispiel, um die Bewegung entlang eines Pfades, der von einer Zwischensequenz oder einer Animation gesteuert wird, korrekt zu berücksichtigen, so dass der Charakter, sobald er fertig ist, seine Bewegung reibungslos fortsetzt. Die LookComponent wurde überarbeitet, um auch Anfragen mit unterschiedlichen Prioritäten korrekt zu behandeln.
Animation
Den ganzen Juni über hat das Team Animationen für verschiedene Features blockiert und ihre Fähigkeit verbessert, Bewegungen effizient einzufangen, auszuwählen und umzudrehen. Außerdem arbeiteten sie an Rückschlägen, Torkeln und Trefferreaktionen von Granaten und anderen geworfenen Gegenständen.
Das Team arbeitete mit der Kampf-KI an Waffennachladungen, Nachladen von Orten und der Vanduul-Bewegung. Für die soziale KI arbeiteten sie an Schließfächern, Rauchen, Kisten, dem Barkeeper und Barbesuchern und arbeiteten an einem Problem mit der Metrik der Sitzkonsole.
Speziell für SQ42 wurde die Arbeit an verschiedenen Szenen, Unterbrechungen und Charaktergesichtern fortgesetzt.
Kunst (Charaktere)
Das Charakter-Team arbeitete weiter an den Haaren, wobei blonde Haare Fortschritte machten. Sie haben auch den 'Brötchen'-Stil überarbeitet, der eine große Anzahl weiblicher Charaktere darstellt. Der Rest des Teams konzentrierte sich bei SQ42 auf die Verfeinerung des Vanduul.
"Unser Vanduul-Grundkörper musste optimiert und neu gehäutet werden, damit wir eine höhere Treue der Animationen erreichen konnten. Wir packen den Pass diese Woche ein und machen einen Update-Pass für alle Vanduul-Rüstungen." -Das Charakter-Team
Sobald die Vanduul-Charaktere fertiggestellt sind, wird ernsthaft mit der Arbeit an der Xi'an begonnen, die die Künstler kürzlich blockiert haben.
Kunst (Umwelt)
Die Umweltkunst hat sich mit mehreren Abschnitten des Speers weiterentwickelt, darunter neue, einzigartige Turm-Assets.
"Es handelt sich dabei um massive Geschütztürme mit mehreren Schussarten, die ein gewisses Maß an Wendigkeit erfordern und sich manchmal auch schwer und gewichtig anfühlen müssen. - Das Umweltkunst-Team
Im Juni gab es Fortschritte auf zwei Stationen innerhalb der Comms, die einen großen Teil des Gameplays in den ersten Teilen der Kampagne ausmachen. Beide benötigen Beleuchtungspolitur (die mit der Einführung neuer Beleuchtungsfunktionen fortgesetzt wird), sind aber ansonsten vollständig.
Die Arbeiten an der Außenseite einer der größeren Stationen der Kampagne, einer Raststätte, stehen ebenfalls kurz vor dem Abschluss.
"Wir haben die visuelle Qualität unserer größeren Megastrukturen nochmals verbessert. Das Aufregende daran ist, dass wir die besagten Strukturen nehmen können, um sie zu dekonstruieren und so mehr Weltraum-Infrastruktur zu schaffen, sei es, dass wir die neuen Anlagen zertrümmern oder Stücke nehmen und auseinandernehmen und sie altern lassen können, um den Weltraum mit interessanteren Anlagen als nur Asteroiden zu bevölkern (aber wir brauchen immer noch großartige Asteroiden!).
Die Hangars der Bergbaustationen wurden ebenfalls fertig gestellt und optimiert. Diese mehrschichtigen Bereiche sind die größten Hangars im Spiel und weitaus größer als alles, was im PU zu sehen ist.
Die Arbeit an zwei der Hauptorte der Helden, die während der Kampagne besucht wurden, wurde ebenfalls fortgesetzt.
"Über diese kann nicht viel gesagt werden, ohne zu viel zu verraten, aber wir können sagen, dass sie sich sehr einzigartig anfühlen und nur wenig von dem Stil oder der Ästhetik der restlichen Kampagne tragen. Wir tun auf jeden Fall unser Bestes, um sicherzustellen, dass sich so viele unserer Locations vielfältig anfühlen und ihre eigene Identität tragen.
Audio
Das Audio-Team konzentrierte sich auf das Idris und gab ihm einen aktualisierten Ambience-Pass. Sie haben auch einige der Waffen und Fahrzeuge, die einzigartig für SQ42 sind, neu ausbalanciert. Die Dialoge wurden bearbeitet und auch an andere Teams, wie z.B. Animation, weitergegeben.
Kinematographie
Neben der "Business-as-usual"-Arbeit an Szenen, Animationen und Kamerapässen hat Cinematics auch Forschung und Entwicklung neuer Technologien betrieben, die dazu beitragen werden, die internen Designtools und narrativen Szenen voranzutreiben.
Dies beinhaltete weitere Verbesserungen der Gespräche mit NPCs. Die Markup-Technologie ermöglicht es, Unterhaltungen an verschiedenen ausgewählten Punkten zu unterbrechen. Letzten Monat haben sie die Möglichkeit hinzugefügt, Danksagungen zu markieren. Das bedeutet, dass sie die Punkte auswählen können, an denen zwei NSCs zum Spieler hinüberblicken würden, wenn sie sich in der Nähe befinden. Das Ziel ist es, die Integrität von Szenen und mo-cap so weit wie möglich zu erhalten. Statt eines sofortigen "Roboter"-Blicks, sobald eine bestimmte Entfernung erreicht ist, haben die Designer eine Möglichkeit geschaffen, Variablen auszuwählen und die Szene intelligent zu markieren. Nicht alle Unterhaltungen zwischen NSCs verdienen die sofortige Aufmerksamkeit des Spielers; manchmal sind sie in tiefer Diskussion und werfen nur selten einen Blick auf den Spieler. Die Designer können dies mit absoluter Präzision einstellen und den Prozentsatz von Augen, Kopf, Hals und Körper unabhängig voneinander wählen, wenn sie wollen.
Eine weitere wichtige Technik war ein automatisch generiertes Lichtrigg, das den Charakteren ein optisch ansprechenderes Licht geben soll. Diese wird in Szenen verwendet, die nicht an einem festen Ort abgespielt werden (wo die Beleuchtung manuell platziert werden würde) und um kleinere Szenen zu verbessern, die keinen vollständigen manuellen Durchgang erfordern.
"In Spielen führt selbst die beste Umgebungsbeleuchtung oft dazu, dass die Gesichter der Charaktere nicht optimal oder 'filmisch' genug aussehen. Die Charaktere fühlen sich nicht wie im Film und fühlen sich oft flach an, nicht genug vom Hintergrund getrennt, oder die Schatten auf ihnen sind nicht großartig, da die Umgebungslichter zu weit weg sind. Wenn du dir ansiehst, wie eine DOP- und Beleuchtungscrew an einem Filmset arbeitet, wird sehr deutlich, warum das der Fall ist. Auf einem Filmset bekommen die Charaktere spezielle Beleuchtungsanlagen, die oft nur durch die Setbeleuchtung motiviert werden. Vielleicht ein Schlüssel, ein Aufhelllicht, ein Bounce von einem Schmetterling im Overhead-Diffusor-Rahmen, vielleicht ein Dedo-Licht, das genau richtig auf die Augen trifft und ein oder zwei Randlichter, um sie aus dem Hintergrund herauszuschneiden; manchmal bringt man die Licht-Crew dazu, mit der Figur zu laufen, um immer das perfekte Licht auf sie zu werfen, das der Regisseur für wichtig hält. Für statische Szenen oder Szenen, bei denen wir den Schauplatz kennen, machen wir bereits manuelle Lichtrigs wie oben, um das Beste aus den Gesichtern und ihren Darbietungen herauszuholen. Aber diese neue Technik ist der erste Schritt, um eine Lichtriggtechnik zu bauen, mit deren Hilfe die Charaktere automatisch beleuchtet werden können, ohne ein manuelles Rigg zu benutzen". -Das Cinematics-Team
Diese Tech funktioniert, indem sie die Umgebungslichter in der Zone um den fraglichen Charakter herum abfragt, das 'Schlüssel'-Licht identifiziert und dann seine Intensität und Farbe abtastet. Dies wird dann (mit Regeln) in der Nähe des Charakters angewendet. Dasselbe gilt für ein autogeneriertes Randlicht. Wenn sich der Spieler um den Charakter herum bewegt, passt sich das Lichtrigg automatisch an.
Technik
Letzten Monat hat Engineering an dem ISPC-Compiler für die WAF gearbeitet:
"Denke HLSL für CPUs, um CPU Target agnostische vektorisierte SSE Funktionen zu schreiben, die von C/C++ aus aufgerufen werden können. Dies erlaubt es uns, maßgeschneiderte, zur Laufzeit aufgerufene Codepfade für verschiedene CPU-Architekturen zu haben, um die bestmögliche Leistung für die Berechnung von schwerem Code zu erhalten. -Das Ingenieurteam
Außerdem begannen sie mit einem neuen Code-Build-System zu experimentieren, um die Lebensqualität der Entwickler zu verbessern. Dieses wird ein implementiertes Python-Skript enthalten, um ähnliche Threads beim Inspizieren von GDB-Crash-Dumps zu falten und einen VC 2019-Compilerübergang zu QA-Testanfragen hinzuzufügen.
Optimierungen wurden am Physik-Grid, den Physikinstanzen und den lokalen OBB-Algorithmen vorgenommen. Bei den Planetenentitäten wurde daran gearbeitet, die Zellgenerierung unter dem Terrain zu verhindern, während die Generierung von POD-Entitäten auf Terrain-Patches verbessert wurde, indem komplexe Konstruktoren aus engen Schleifen herausgelöst wurden. Sie entfernten verschiedene Methoden aus der Schnittstelle für physische Entitäten, um den Overhead virtueller Funktionen zu vermeiden, machten Optimierungen für das "box-pruning" und erhöhten die Genauigkeit der momentenbezogenen Variablen auf das Doppelte, so dass der Solver in Bezug auf große Massen numerisch stabiler ist.
Das Body-Dragging wurde weiter verfeinert und die Arbeit an physischen Schäden fortgesetzt, diesmal mit Schwerpunkt auf Deformationen. Die Ingenieure arbeiteten weiter an der Formel zur Integritätsreduzierung, die auf den Oberflächentypen der kollidierenden Teile basiert, während die Schiff-zu-Schiff-Kollisionserkennung optimiert wurde, um Stabilität und Leistung zu verbessern. Ragdoll-Experimente wurden ebenfalls durchgeführt und ein schneller Prototyp für die Querschnittsdatenstruktur wurde fertiggestellt.
Was den Aktualisierungsscheduler für die Entitätskomponenten betrifft, so arbeitete das Ingenieurteam daran, rekursive Verarbeitung zu glätten oder sogar zu entfernen, verbesserte die Komponentenverarbeitung innerhalb eines Aggregats und begann mit der Implementierung von Unterstützung für mehrere Komponentenrichtlinien pro Aktualisierungsdurchgang.
Zahlreiche Aufgaben wurden auch für den Gen12 Renderer erledigt. Für die Planetenatmosphäre wurde der geführte Filter vervollständigt, um das Rauschen zu entfernen und die Ergebnisse des Raymarching mit niedrigerer Auflösung für die Streuung und Übertragung hochzurechnen. Die Arbeit an der Neuprojektion der Raymarching-Ergebnisse wurde ebenfalls begonnen, um die Kosten pro Frame weiter zu reduzieren.
Gameplay-Geschichte
Gameplay Story unterstützte das Design weiterhin mit Abbrüchen und Unterbrechungen, diesmal bei Kapitel vier, und arbeitete neue Szenen aus dem späteren Spielverlauf durch. Derzeit liegt der Schwerpunkt auf der Umsetzung der verbleibenden 28 Szenen, was die Planung mit dem Design, die Ausarbeitung der Funktionsweise der Szenen und die Aufschlüsselung der Animationsanforderungen beinhaltet.
Grafiken
Letzten Monat hat das Grafikteam weiter an der Verbesserung der CPU-Leistung gearbeitet, wobei das erste Ziel darin bestand, teure Synchronisierungsereignisse zwischen CPU und GPU zu vermeiden, die unter bestimmten Szenarien und Hardware-Setups auftreten könnten. Nachdem sie entdeckt hatten, dass der UI-Code, der zum Skalieren und Tessellieren von Vektorgrafiken verwendet wird, sehr CPU-intensiv ist, fügten sie Code zum Quantisieren der UI-Bildschirmauflösungen hinzu. Dadurch werden Codepfad-Fälle vermieden, in denen der visuelle Unterschied sonst unbemerkbar oder extrem subtil wäre (z.B. wenn zwei identische UI-Bildschirme sich in der Größe nur um wenige Pixel unterscheiden). Eine weitere wichtige Optimierung war die Vermeidung von DirectX- und Grafiktreiber-CPU-Overhead durch Minimierung von Shader- und Textur-Swapping. Außerdem wurden Puffer zwischengespeichert, die unnötigerweise viele Male pro Frame gesetzt wurden, wodurch die Gesamtzahl der Funktionsaufrufe an DirectX um über 30% reduziert wurde.
Wie bei der Technik ging die Arbeit am Gen12-Renderer weiter, diesmal mit der neuen verzögerten Grafik-Pipeline, die schnelleren und einfacher zu erweiternden Code bietet.
"Nachdem nun einige der Grundlagen vorhanden sind, hoffen wir, die Anstrengungen zur Konvertierung der bestehenden Funktionen auf den Gen12-Renderer zu erhöhen, mit dem Ziel, in den nächsten Monaten eine frühe Version zu ermöglichen. - Das Grafik-Team
Das Kanten-Highlight/Silhouetten-Feature wurde verbessert, um eine sauberere Optik mit anpassbarer Linienstärke zu bieten, was vom Fahrzeugteam angefordert wurde, um das Erscheinungsbild verschiedener UI-Features zu verbessern.
Schließlich haben sie für die Grafik geändert, wie das Culling-System für Schiffe funktioniert, damit sie aus viel größerer Entfernung sichtbar sind, um das Gameplay zu erleichtern. Um die Auswirkungen der erhöhten Sichtdistanz auf die Leistung zu mildern, wurde ein automatisches Testsystem implementiert, das die Leistung jedes Schiffes aus jeder Sichtdistanz misst, um alle zu identifizieren, die einen Optimierungspass benötigen.
Erzählung
Letzten Monat hat das Team die erzählerische Erfahrung weiter verfeinert. Zusätzlich zu den laufenden Bemühungen, Bereiche zu identifizieren, in denen sie an der Spielerfahrung feilen oder Dialoge hinzufügen können, um das Spielerlebnis zu verbessern (wie im letzten Monat erwähnt), haben sie Details und Hintergrundgeschichten für verschiedene Firmen und Marken bereitgestellt, die in verschiedenen Umgebungen eingesetzt werden, um die Welten zu erweitern. Narrative hat sich auch mit Audio abgestimmt, um die Fortschritte der Vanduul-Stimmen zu überprüfen.
"Da sie von allzu menschlichen Schauspielern aufgenommen wurden, steckt viel Kunstfertigkeit in der Erschaffung ihres einzigartigen außerirdischen Sounds. - Das Erzählteam
QA
QA arbeitete weiterhin eng mit dem Filmregisseur und dem Rest des Teams zusammen, um einige Probleme innerhalb bestimmter Kapitel zu untersuchen. Zurzeit arbeiten sie auf einer Teststufe, um alle auftretenden Probleme besser untersuchen zu können und um es dem Tools Development Team zu ermöglichen, Probleme leichter zu debuggen. Die letzte Sprintaufgabe besteht darin, Aufnahmen von Szenen im Client zu erstellen, die schließlich von Cinematic Design and Animation überprüft werden, um Feedback zu geben und Aktionspunkte für Änderungen zu schaffen.
Technische Animation
Die Technische Animation machte Fortschritte mit Initiativen zur Überarbeitung des Skin-Dateiaufbaus und der Physik-Proxy-Refaktor zeigte erste Ergebnisse. Das Team befindet sich in der Endphase der UI- und Prozessverfeinerung und will die Pipeline bis zum Ende des Quartals liefern.
Benutzeroberfläche (UI)
Das UI-Team arbeitete eng mit dem Fahrzeugteam zusammen, um das neue Targeting- und Turm-UI zu implementieren. Die Künstler iterierten auch auf den Brücken der Aegis-Hauptstadtschiffe, einschließlich eines Warnbildschirms. Die Konzeptkünstler haben visuelle Zielvideos für das Gladius-HUDD erstellt und dabei auch herausgefunden, wie die kommende 3D-UI-Technologie umgesetzt werden kann, um sich von den standardmäßigen Flachbildschirmen zu lösen. Andere Konzeptarbeiten umfassten das Scannen und wie die Linse und das Visier beim Hochfahren aussehen.
VFX
Letzten Monat unterstützte VFX weiterhin Gaswolken neben den Kunst- und Design-Teams. Dies beinhaltete die Einführung von 'Themen', die es den Designern erlauben, eine einzelne Option auszuwählen, die verschiedene Einstellungen innerhalb einer Gaswolke verändert. Zum Beispiel 'sicher' oder 'gefährlich' zu machen, je nach den Anforderungen der Story. Außerdem forschten sie weiter an Zerstörungspipelines.
Das Team in Frankfurt hat den Vanduul-Tech-Stil und die Waffen-Visualisierung weiter ausgearbeitet.
"Wir erhielten einige erstaunliche VFX-Konzeptzeichnungen, die uns dabei helfen sollten. Hier ist ein Konzeptbild, um zu zeigen, wie die Hauptkanone auf dem Vanduul-Königsschiff aussehen könnte". WIR SEHEN EUCH NÄCHSTEN MONAT...
Achtung Rekruten,
Was ihr gleich lesen werdet, sind die neuesten Informationen über die Weiterentwicklung von Squadron 42 (SCI des: SQ42).
Dank der unermüdlichen Arbeit unserer Agenten vor Ort ist es uns gelungen, die Arbeit an der Innenausstattung der Speere und an den einzigartigen Geschütztürmen, der Vanduul-Kampf-KI und einen tödlichen Blick darauf zu werfen, wozu die Waffe eines Vanduul-Königsschiffs in der Lage sein könnte.
Die in dieser Mitteilung enthaltenen Informationen sind äußerst sensibel und es ist von größter Wichtigkeit, dass sie nicht in die falschen Hände geraten. Säubere alle Aufzeichnungen nach dem Lesen.
UEE Marine-Oberkommando
KI (Kampf)
Wir beginnen den Juni-Bericht mit Character Combat, der sich auf das Verhalten von Vanduul konzentriert, insbesondere Nahkampfangriffe.
"Es ist wichtig, für alle KI-Charaktere einen Basis-Nahkampf-Level zu haben, mit der Idee, die Schauspielerfunktionalität zu einem großen Teil auf den gleichen Code wie der Spielercharakter anzuwenden. -Das Charakterkampf-Team
Diese Verwendung von allgemeinem Code (wo möglich) stellt sicher, dass sich die NSCs genauso verhalten können wie der Spieler. Für die Vanduul benötigt das Team jedoch spezifische Angriffsanimationen, die aneinander gekettet werden können, um Entfernungen zu verringern und Druck auf den Spieler/Gegenspieler auszuüben.
Außerdem haben sie verschiedene Aspekte des realistischen Schießens in Angriff genommen, einschließlich der Verbesserung der Code-Seite des Auslösens und Nachladens. Sie machten alle Anfragen ereignisbasiert und fügten korrekte Erfolgsbenachrichtigungen und unterschiedliche Aktionsergebnisse zwischen der Akteurszustandsmaschine und KI-Komponenten hinzu. Dies ermöglicht es der KI, konsistente Kenntnisse über die Ergebnisse der angeforderten Aktionen zu haben, was es ihnen erlaubt, Verhaltensweisen zu erstellen, die verschiedene Szenarien korrekt handhaben können. Wenn sich zum Beispiel ein NSC auf einen Feind zubewegt, möchte das Team vielleicht, dass er seine Waffe automatisch nachlädt. Wenn jedoch keine Munition verfügbar ist, wird das Verhalten gemeldet und eine neue Reaktion aktiviert. Dies kann NSCs passieren, die weniger geschickt sind, um ihre Fähigkeit, Munition zu verwalten, einzuschätzen, während die besser ausgebildeten NSCs sich dafür entscheiden können, diese Taktik nicht anzuwenden, wenn nicht genügend Munition verfügbar ist.
Sie haben auch damit begonnen, die nutzbaren Systemfunktionen des Barkeepers in einem Kampfszenario zu nutzen. Im sozialen Umfeld schufen sie das Konzept der Nutzbarkeit, die Gegenstände herstellen und annehmen kann:
"Eine Munitionskiste ist nichts anderes als ein Itemlieferant. Der Gegenstand selbst könnte Magazine produzieren oder er könnte Magazine enthalten, ähnlich wie ein Bierkühlschrank Bierflaschen enthalten kann, aber eine Mischstation kann die Getränke aus bestimmten Quellgegenständen herstellen. Dadurch können NSCs nach Orten in der Welt suchen, die ihnen Magazine eines bestimmten Typs liefern können, sich zu diesen Objekten begeben und ihre Ladung wieder auffüllen. Dies gibt dem Spieler die Möglichkeit und zwingt die NSCs dazu, die Umgebung zu bewerten, um zu entscheiden, ob und wann es angebracht ist, diese Nachfüllstellen zu benutzen".
Es wurde auch Zeit damit verbracht, Aufgaben für die Implementierung des Server-Mesh zu erledigen.
KI (sozial)
Letzten Monat konzentrierte sich die soziale KI auf den ersten Durchgang von zwei neuen Szenarien - das Verhalten der Brückenbesatzung und der Hangarbesatzungen von Großkampfschiffen:
Das Verhalten der Brückenbesatzung erlaubt es den NSCs, die erforderliche Arbeit eines Großkampfschiffes zu erledigen. Die Designer können in den NSC-Schedules angeben, welche Art von Rolle sie haben, was dem 'generischen' Verhalten hilft, die richtigen Plätze und Routinen auszuwählen, die sie ausführen müssen. Der Kapitän wird auch die Brücke durchstreifen und andere Crewmitglieder beaufsichtigen.
Das Verhalten der Hangarbesatzung stellt eine Reihe von Verhaltensweisen für alle NSCs dar, die in einem Hangar arbeiten, einschließlich Aufseher, Betanker, Geschütze, Mechaniker, Grunzer und Fluglotse. In diesem Fall ist das Schiff ein Beispiel für eine zusammengesetzte Benutzbarkeit - eine Benutzbarkeit, die die Funktionalität anderer einzelner Benutzbarkeiten enthalten kann.
Die erste Iteration des Verkäuferverhaltens steht ebenfalls kurz vor dem Abschluss. Im Juni kamen Gäste hinzu, die ein Getränk bestellen, es an einen Tisch bringen und dann an die Theke zurückbringen können.
AI (Allgemein)
Ai's globaler Fokus lag auf der Verbesserung der verschiedenen Systeme, die von allen Teammitgliedern benutzt werden. Es wurden Verbesserungen an der Debug-Zeichnung der Subsumptionslogik vorgenommen, die es den Subsumptionsfunktionen, der Benutzung von Kanälen und Konversationen erlaubt, den aktualisierten Wert ihrer lokalen Variablen anzuzeigen. Das Debugging des Entfernungs-Ereignisverteilers zeigt nun auf einfache Weise die Entfernung, Orientierung und mehr der überwachten Charaktere an. Das Team hat auch am Bewegungssystem gearbeitet, um zusätzliche Funktionen zur Validierung der Ausführung eines Plans bereitzustellen. Zum Beispiel, um die Bewegung entlang eines Pfades, der von einer Zwischensequenz oder einer Animation gesteuert wird, korrekt zu berücksichtigen, so dass der Charakter, sobald er fertig ist, seine Bewegung reibungslos fortsetzt. Die LookComponent wurde überarbeitet, um auch Anfragen mit unterschiedlichen Prioritäten korrekt zu behandeln.
Animation
Den ganzen Juni über hat das Team Animationen für verschiedene Features blockiert und ihre Fähigkeit verbessert, Bewegungen effizient einzufangen, auszuwählen und umzudrehen. Außerdem arbeiteten sie an Rückschlägen, Torkeln und Trefferreaktionen von Granaten und anderen geworfenen Gegenständen.
Das Team arbeitete mit der Kampf-KI an Waffennachladungen, Nachladen von Orten und der Vanduul-Bewegung. Für die soziale KI arbeiteten sie an Schließfächern, Rauchen, Kisten, dem Barkeeper und Barbesuchern und arbeiteten an einem Problem mit der Metrik der Sitzkonsole.
Speziell für SQ42 wurde die Arbeit an verschiedenen Szenen, Unterbrechungen und Charaktergesichtern fortgesetzt.
Kunst (Charaktere)
Das Charakter-Team arbeitete weiter an den Haaren, wobei blonde Haare Fortschritte machten. Sie haben auch den 'Brötchen'-Stil überarbeitet, der eine große Anzahl weiblicher Charaktere darstellt. Der Rest des Teams konzentrierte sich bei SQ42 auf die Verfeinerung des Vanduul.
"Unser Vanduul-Grundkörper musste optimiert und neu gehäutet werden, damit wir eine höhere Treue der Animationen erreichen konnten. Wir packen den Pass diese Woche ein und machen einen Update-Pass für alle Vanduul-Rüstungen." -Das Charakter-Team
Sobald die Vanduul-Charaktere fertiggestellt sind, wird ernsthaft mit der Arbeit an der Xi'an begonnen, die die Künstler kürzlich blockiert haben.
Kunst (Umwelt)
Die Umweltkunst hat sich mit mehreren Abschnitten des Speers weiterentwickelt, darunter neue, einzigartige Turm-Assets.
"Es handelt sich dabei um massive Geschütztürme mit mehreren Schussarten, die ein gewisses Maß an Wendigkeit erfordern und sich manchmal auch schwer und gewichtig anfühlen müssen. - Das Umweltkunst-Team
Im Juni gab es Fortschritte auf zwei Stationen innerhalb der Comms, die einen großen Teil des Gameplays in den ersten Teilen der Kampagne ausmachen. Beide benötigen Beleuchtungspolitur (die mit der Einführung neuer Beleuchtungsfunktionen fortgesetzt wird), sind aber ansonsten vollständig.
Die Arbeiten an der Außenseite einer der größeren Stationen der Kampagne, einer Raststätte, stehen ebenfalls kurz vor dem Abschluss.
"Wir haben die visuelle Qualität unserer größeren Megastrukturen nochmals verbessert. Das Aufregende daran ist, dass wir die besagten Strukturen nehmen können, um sie zu dekonstruieren und so mehr Weltraum-Infrastruktur zu schaffen, sei es, dass wir die neuen Anlagen zertrümmern oder Stücke nehmen und auseinandernehmen und sie altern lassen können, um den Weltraum mit interessanteren Anlagen als nur Asteroiden zu bevölkern (aber wir brauchen immer noch großartige Asteroiden!).
Die Hangars der Bergbaustationen wurden ebenfalls fertig gestellt und optimiert. Diese mehrschichtigen Bereiche sind die größten Hangars im Spiel und weitaus größer als alles, was im PU zu sehen ist.
Die Arbeit an zwei der Hauptorte der Helden, die während der Kampagne besucht wurden, wurde ebenfalls fortgesetzt.
"Über diese kann nicht viel gesagt werden, ohne zu viel zu verraten, aber wir können sagen, dass sie sich sehr einzigartig anfühlen und nur wenig von dem Stil oder der Ästhetik der restlichen Kampagne tragen. Wir tun auf jeden Fall unser Bestes, um sicherzustellen, dass sich so viele unserer Locations vielfältig anfühlen und ihre eigene Identität tragen.
Audio
Das Audio-Team konzentrierte sich auf das Idris und gab ihm einen aktualisierten Ambience-Pass. Sie haben auch einige der Waffen und Fahrzeuge, die einzigartig für SQ42 sind, neu ausbalanciert. Die Dialoge wurden bearbeitet und auch an andere Teams, wie z.B. Animation, weitergegeben.
Kinematographie
Neben der "Business-as-usual"-Arbeit an Szenen, Animationen und Kamerapässen hat Cinematics auch Forschung und Entwicklung neuer Technologien betrieben, die dazu beitragen werden, die internen Designtools und narrativen Szenen voranzutreiben.
Dies beinhaltete weitere Verbesserungen der Gespräche mit NPCs. Die Markup-Technologie ermöglicht es, Unterhaltungen an verschiedenen ausgewählten Punkten zu unterbrechen. Letzten Monat haben sie die Möglichkeit hinzugefügt, Danksagungen zu markieren. Das bedeutet, dass sie die Punkte auswählen können, an denen zwei NSCs zum Spieler hinüberblicken würden, wenn sie sich in der Nähe befinden. Das Ziel ist es, die Integrität von Szenen und mo-cap so weit wie möglich zu erhalten. Statt eines sofortigen "Roboter"-Blicks, sobald eine bestimmte Entfernung erreicht ist, haben die Designer eine Möglichkeit geschaffen, Variablen auszuwählen und die Szene intelligent zu markieren. Nicht alle Unterhaltungen zwischen NSCs verdienen die sofortige Aufmerksamkeit des Spielers; manchmal sind sie in tiefer Diskussion und werfen nur selten einen Blick auf den Spieler. Die Designer können dies mit absoluter Präzision einstellen und den Prozentsatz von Augen, Kopf, Hals und Körper unabhängig voneinander wählen, wenn sie wollen.
Eine weitere wichtige Technik war ein automatisch generiertes Lichtrigg, das den Charakteren ein optisch ansprechenderes Licht geben soll. Diese wird in Szenen verwendet, die nicht an einem festen Ort abgespielt werden (wo die Beleuchtung manuell platziert werden würde) und um kleinere Szenen zu verbessern, die keinen vollständigen manuellen Durchgang erfordern.
"In Spielen führt selbst die beste Umgebungsbeleuchtung oft dazu, dass die Gesichter der Charaktere nicht optimal oder 'filmisch' genug aussehen. Die Charaktere fühlen sich nicht wie im Film und fühlen sich oft flach an, nicht genug vom Hintergrund getrennt, oder die Schatten auf ihnen sind nicht großartig, da die Umgebungslichter zu weit weg sind. Wenn du dir ansiehst, wie eine DOP- und Beleuchtungscrew an einem Filmset arbeitet, wird sehr deutlich, warum das der Fall ist. Auf einem Filmset bekommen die Charaktere spezielle Beleuchtungsanlagen, die oft nur durch die Setbeleuchtung motiviert werden. Vielleicht ein Schlüssel, ein Aufhelllicht, ein Bounce von einem Schmetterling im Overhead-Diffusor-Rahmen, vielleicht ein Dedo-Licht, das genau richtig auf die Augen trifft und ein oder zwei Randlichter, um sie aus dem Hintergrund herauszuschneiden; manchmal bringt man die Licht-Crew dazu, mit der Figur zu laufen, um immer das perfekte Licht auf sie zu werfen, das der Regisseur für wichtig hält. Für statische Szenen oder Szenen, bei denen wir den Schauplatz kennen, machen wir bereits manuelle Lichtrigs wie oben, um das Beste aus den Gesichtern und ihren Darbietungen herauszuholen. Aber diese neue Technik ist der erste Schritt, um eine Lichtriggtechnik zu bauen, mit deren Hilfe die Charaktere automatisch beleuchtet werden können, ohne ein manuelles Rigg zu benutzen". -Das Cinematics-Team
Diese Tech funktioniert, indem sie die Umgebungslichter in der Zone um den fraglichen Charakter herum abfragt, das 'Schlüssel'-Licht identifiziert und dann seine Intensität und Farbe abtastet. Dies wird dann (mit Regeln) in der Nähe des Charakters angewendet. Dasselbe gilt für ein autogeneriertes Randlicht. Wenn sich der Spieler um den Charakter herum bewegt, passt sich das Lichtrigg automatisch an.
Technik
Letzten Monat hat Engineering an dem ISPC-Compiler für die WAF gearbeitet:
"Denke HLSL für CPUs, um CPU Target agnostische vektorisierte SSE Funktionen zu schreiben, die von C/C++ aus aufgerufen werden können. Dies erlaubt es uns, maßgeschneiderte, zur Laufzeit aufgerufene Codepfade für verschiedene CPU-Architekturen zu haben, um die bestmögliche Leistung für die Berechnung von schwerem Code zu erhalten. -Das Ingenieurteam
Außerdem begannen sie mit einem neuen Code-Build-System zu experimentieren, um die Lebensqualität der Entwickler zu verbessern. Dieses wird ein implementiertes Python-Skript enthalten, um ähnliche Threads beim Inspizieren von GDB-Crash-Dumps zu falten und einen VC 2019-Compilerübergang zu QA-Testanfragen hinzuzufügen.
Optimierungen wurden am Physik-Grid, den Physikinstanzen und den lokalen OBB-Algorithmen vorgenommen. Bei den Planetenentitäten wurde daran gearbeitet, die Zellgenerierung unter dem Terrain zu verhindern, während die Generierung von POD-Entitäten auf Terrain-Patches verbessert wurde, indem komplexe Konstruktoren aus engen Schleifen herausgelöst wurden. Sie entfernten verschiedene Methoden aus der Schnittstelle für physische Entitäten, um den Overhead virtueller Funktionen zu vermeiden, machten Optimierungen für das "box-pruning" und erhöhten die Genauigkeit der momentenbezogenen Variablen auf das Doppelte, so dass der Solver in Bezug auf große Massen numerisch stabiler ist.
Das Body-Dragging wurde weiter verfeinert und die Arbeit an physischen Schäden fortgesetzt, diesmal mit Schwerpunkt auf Deformationen. Die Ingenieure arbeiteten weiter an der Formel zur Integritätsreduzierung, die auf den Oberflächentypen der kollidierenden Teile basiert, während die Schiff-zu-Schiff-Kollisionserkennung optimiert wurde, um Stabilität und Leistung zu verbessern. Ragdoll-Experimente wurden ebenfalls durchgeführt und ein schneller Prototyp für die Querschnittsdatenstruktur wurde fertiggestellt.
Was den Aktualisierungsscheduler für die Entitätskomponenten betrifft, so arbeitete das Ingenieurteam daran, rekursive Verarbeitung zu glätten oder sogar zu entfernen, verbesserte die Komponentenverarbeitung innerhalb eines Aggregats und begann mit der Implementierung von Unterstützung für mehrere Komponentenrichtlinien pro Aktualisierungsdurchgang.
Zahlreiche Aufgaben wurden auch für den Gen12 Renderer erledigt. Für die Planetenatmosphäre wurde der geführte Filter vervollständigt, um das Rauschen zu entfernen und die Ergebnisse des Raymarching mit niedrigerer Auflösung für die Streuung und Übertragung hochzurechnen. Die Arbeit an der Neuprojektion der Raymarching-Ergebnisse wurde ebenfalls begonnen, um die Kosten pro Frame weiter zu reduzieren.
Gameplay-Geschichte
Gameplay Story unterstützte das Design weiterhin mit Abbrüchen und Unterbrechungen, diesmal bei Kapitel vier, und arbeitete neue Szenen aus dem späteren Spielverlauf durch. Derzeit liegt der Schwerpunkt auf der Umsetzung der verbleibenden 28 Szenen, was die Planung mit dem Design, die Ausarbeitung der Funktionsweise der Szenen und die Aufschlüsselung der Animationsanforderungen beinhaltet.
Grafiken
Letzten Monat hat das Grafikteam weiter an der Verbesserung der CPU-Leistung gearbeitet, wobei das erste Ziel darin bestand, teure Synchronisierungsereignisse zwischen CPU und GPU zu vermeiden, die unter bestimmten Szenarien und Hardware-Setups auftreten könnten. Nachdem sie entdeckt hatten, dass der UI-Code, der zum Skalieren und Tessellieren von Vektorgrafiken verwendet wird, sehr CPU-intensiv ist, fügten sie Code zum Quantisieren der UI-Bildschirmauflösungen hinzu. Dadurch werden Codepfad-Fälle vermieden, in denen der visuelle Unterschied sonst unbemerkbar oder extrem subtil wäre (z.B. wenn zwei identische UI-Bildschirme sich in der Größe nur um wenige Pixel unterscheiden). Eine weitere wichtige Optimierung war die Vermeidung von DirectX- und Grafiktreiber-CPU-Overhead durch Minimierung von Shader- und Textur-Swapping. Außerdem wurden Puffer zwischengespeichert, die unnötigerweise viele Male pro Frame gesetzt wurden, wodurch die Gesamtzahl der Funktionsaufrufe an DirectX um über 30% reduziert wurde.
Wie bei der Technik ging die Arbeit am Gen12-Renderer weiter, diesmal mit der neuen verzögerten Grafik-Pipeline, die schnelleren und einfacher zu erweiternden Code bietet.
"Nachdem nun einige der Grundlagen vorhanden sind, hoffen wir, die Anstrengungen zur Konvertierung der bestehenden Funktionen auf den Gen12-Renderer zu erhöhen, mit dem Ziel, in den nächsten Monaten eine frühe Version zu ermöglichen. - Das Grafik-Team
Das Kanten-Highlight/Silhouetten-Feature wurde verbessert, um eine sauberere Optik mit anpassbarer Linienstärke zu bieten, was vom Fahrzeugteam angefordert wurde, um das Erscheinungsbild verschiedener UI-Features zu verbessern.
Schließlich haben sie für die Grafik geändert, wie das Culling-System für Schiffe funktioniert, damit sie aus viel größerer Entfernung sichtbar sind, um das Gameplay zu erleichtern. Um die Auswirkungen der erhöhten Sichtdistanz auf die Leistung zu mildern, wurde ein automatisches Testsystem implementiert, das die Leistung jedes Schiffes aus jeder Sichtdistanz misst, um alle zu identifizieren, die einen Optimierungspass benötigen.
Erzählung
Letzten Monat hat das Team die erzählerische Erfahrung weiter verfeinert. Zusätzlich zu den laufenden Bemühungen, Bereiche zu identifizieren, in denen sie an der Spielerfahrung feilen oder Dialoge hinzufügen können, um das Spielerlebnis zu verbessern (wie im letzten Monat erwähnt), haben sie Details und Hintergrundgeschichten für verschiedene Firmen und Marken bereitgestellt, die in verschiedenen Umgebungen eingesetzt werden, um die Welten zu erweitern. Narrative hat sich auch mit Audio abgestimmt, um die Fortschritte der Vanduul-Stimmen zu überprüfen.
"Da sie von allzu menschlichen Schauspielern aufgenommen wurden, steckt viel Kunstfertigkeit in der Erschaffung ihres einzigartigen außerirdischen Sounds. - Das Erzählteam
QA
QA arbeitete weiterhin eng mit dem Filmregisseur und dem Rest des Teams zusammen, um einige Probleme innerhalb bestimmter Kapitel zu untersuchen. Zurzeit arbeiten sie auf einer Teststufe, um alle auftretenden Probleme besser untersuchen zu können und um es dem Tools Development Team zu ermöglichen, Probleme leichter zu debuggen. Die letzte Sprintaufgabe besteht darin, Aufnahmen von Szenen im Client zu erstellen, die schließlich von Cinematic Design and Animation überprüft werden, um Feedback zu geben und Aktionspunkte für Änderungen zu schaffen.
Technische Animation
Die Technische Animation machte Fortschritte mit Initiativen zur Überarbeitung des Skin-Dateiaufbaus und der Physik-Proxy-Refaktor zeigte erste Ergebnisse. Das Team befindet sich in der Endphase der UI- und Prozessverfeinerung und will die Pipeline bis zum Ende des Quartals liefern.
Benutzeroberfläche (UI)
Das UI-Team arbeitete eng mit dem Fahrzeugteam zusammen, um das neue Targeting- und Turm-UI zu implementieren. Die Künstler iterierten auch auf den Brücken der Aegis-Hauptstadtschiffe, einschließlich eines Warnbildschirms. Die Konzeptkünstler haben visuelle Zielvideos für das Gladius-HUDD erstellt und dabei auch herausgefunden, wie die kommende 3D-UI-Technologie umgesetzt werden kann, um sich von den standardmäßigen Flachbildschirmen zu lösen. Andere Konzeptarbeiten umfassten das Scannen und wie die Linse und das Visier beim Hochfahren aussehen.
VFX
Letzten Monat unterstützte VFX weiterhin Gaswolken neben den Kunst- und Design-Teams. Dies beinhaltete die Einführung von 'Themen', die es den Designern erlauben, eine einzelne Option auszuwählen, die verschiedene Einstellungen innerhalb einer Gaswolke verändert. Zum Beispiel 'sicher' oder 'gefährlich' zu machen, je nach den Anforderungen der Story. Außerdem forschten sie weiter an Zerstörungspipelines.
Das Team in Frankfurt hat den Vanduul-Tech-Stil und die Waffen-Visualisierung weiter ausgearbeitet.
"Wir erhielten einige erstaunliche VFX-Konzeptzeichnungen, die uns dabei helfen sollten. Hier ist ein Konzeptbild, um zu zeigen, wie die Hauptkanone auf dem Vanduul-Königsschiff aussehen könnte". WIR SEHEN EUCH NÄCHSTEN MONAT...
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).
Due to the unwavering work of our agents in the field, we’ve managed to ascertain work done on Javelin interiors and unique turret assets, Vanduul Combat AI, and a deadly look at what a Vanduul kingship’s weapon could be capable of.
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 AI (Combat)
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.
AI (Social)
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 (General)
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.
Animation
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.
Art (Characters)
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.
Art (Environment)
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.”
Audio
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.
Cinematics
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.
Engineering
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
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.
Graphics
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.
Narrative
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
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.
Tech Animation
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.
VFX
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.” WE’LL SEE YOU NEXT MONTH…
Attention Recruits,
What you are about to read is the latest information on the continuing development of Squadron 42 (SCI des: SQ42).
Due to the unwavering work of our agents in the field, we’ve managed to ascertain work done on Javelin interiors and unique turret assets, Vanduul Combat AI, and a deadly look at what a Vanduul kingship’s weapon could be capable of.
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 AI (Combat)
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.
AI (Social)
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 (General)
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.
Animation
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.
Art (Characters)
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.
Art (Environment)
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.”
Audio
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.
Cinematics
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.
Engineering
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
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.
Graphics
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.
Narrative
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
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.
Tech Animation
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.
VFX
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.” WE’LL SEE YOU NEXT MONTH…
Links
No links available.
Images
12Metadata
- CIG ID
- 17673
- Channel
- Undefined
- Category
- Undefined
- Series
- Monthly Reports
- Comments
- 25
- Published
- 5 years ago (2020-07-08T00:00:00+00:00)