Welcome to the first PU Monthly Report of 2022! We always start the year off looking back on the last couple of months of development, so the reports below highlight work undertaken throughout November and December, 2021. We’ll also publish January’s report at the usual time early next month, so keep an eye out soon for the next installment!
The AI team as a whole closed out the year creating feature testmaps for AI behaviors and usables.
Feature testmaps are new autonomous testing processes that run each day and print out reports, which are hugely beneficial to the team as they enable them to identify bugs significantly quicker than before.
“A significant challenge we always had on the team was understanding when an issue was specific to a certain feature or if an external change from another team caused the problem. Patterns identified by the feature tests will solve this problem.” AI Team
Currently, the team are testing approximately 50 usables and 20 AI behaviors that can be interacted with by the player. Typically, a usable has between three and six directions characters can approach them from and the same number they exit from, each playing a different animation. With such a high number of permutations, automating the process was essential. The team will soon move to more advanced feature tests for the more complicated behaviors, such as the bartender, engineer, and security guard.
AI Content continued to improve the bartenders and patrons for Alpha 3.16 and added more drink options, including Cuba Libres and Mai Tais. ‘Busy work’ animations were also devised to increase variety when the bartender isn’t serving patrons. There are now 10 different animations, including stretching, glass cleaning, and shelf organizing. Idle facial expressions were also added to the patron and bartender.
AI Content also began implementing animation assets for the vending and arcade machines, and started closing out the coffee shop usables.
AI Features worked on feature test levels, setting up tests to repeat with different starting conditions, such as equipping AI with different weapons. Alongside identifying and fixing bugs before they become an issue, the feature test levels are useful for showing other teams existing functionality and how to use it. As they become more familiar with the technology, they’ll begin to cover existing functionality to maintain quality across the board.
The team also investigated and fixed issues with the bartender behavior, including ‘popping’ issues when moving between different areas of the bar.
AI finished their work on the initial version of planetary navigation, which contains all the base elements required for it to be used in-game. Once implemented, navigation mesh will be created on planetary surfaces around actors and NPCs, who are able to use it to find paths and move along them. Improvements were added for both generation processes and the pathfinder to work with this new tech too.
The team continued to refactor the AI weapon controller used by ship AI, this time focusing on improving missile turrets and accuracy. New collision avoidance tech (the AI navigation obstacle) was also added for use in narrow areas and spaces with complex concave objects. This involved adding simplified primitive shapes (like spheres and boxes) that can be used by the collision avoidance system.
The team also went back to the AI trolley push/pull feature to help the designers begin using it, which involved adjusting the path follower and creating a feature test map.AI Tech continued to refine the path follower tech, specifically the social AI element, improving functionality by setting usables linked to a path. NPCs will be able to follow the path and stop to use the linked usables. Alongside this, they investigated and fixed several issues with NPC aiming, looking, and locomotion; most of which involved synchronization issues between the servers and clients.
Progress was made on the Subsumption editor tool. The team now have all the base elements in place so the designers and programmers can start using it to create missions and NPC behaviors.
Throughout November and December, Animation worked on the Kahix missile launcher and weapon select/deselect, improved the player crouch motion, idle animations, and drunk locomotion, and further developed mining gadgets.
For AI, the team worked on the cowering, surrender, mess hall, and patron animation sets. Tasks were completed for vendors and bartenders, the multi-tool work zone set, security blocking and directing players, vent searching, vandalizing objects, and medical behavior. They also blocked out NPCs reacting to dead bodies.
On the facial-animation side, they progressed with general security lines, animations for idles and workers, vendors, and medical behaviors. The Motion Capture team continued to solve data for transversals and ill or injured AI, and worked with Marketing on various videos and promotions.
The Character Art team wrapped up a visual update to the DNA head archetypes, which should see improvements to heads and eyes in Alpha 3.17.
Some of the team focused on the frontier-style outfits for Pyro, while others worked on a series of generic Stanton outfits from the backlog that will begin to appear in-game shortly.
The Tech team worked with Graphics on the second version of the ‘layerblend’ shader to improve wear and dirt tech.
In the UK, the Ship Team progressed well with the MISC Hull A, bringing most of the interior to the final art stage. The landing gear and extending cargo mechanism (along with LODs) were completed and are now ready to hand over to Tech Art.
The Hull C moved through the pipeline too and is currently approaching its greybox review. Work throughout December included converting materials to hard-surface shaders, adding control panels throughout the ship, and refining the pilot seat for optimal visibility.
Throughout November, the RSI Scorpius moved through the whitebox phase before greybox work commenced in December. Most of the exterior was completed by the end of the year, including the wings, thrusters, landing gear, and canopy.
An all-new vehicle progressed through whitebox, while the Banu Merchantman progressed towards greybox.
Tints and holo-viewers were worked on too, along with polish and bug fixing for the Alpha 3.16 release.
In the US, the Drake Vulture’s interior reached final art, with just a lighting pass remaining. The exterior colors and wear were worked on, as were LODs for the landing gear, while the internal damage pass began.
The Drake Corsair moved into greybox, and art was finalized for the cockpit and mess hall.
Audio’s main focus was on IAE, with early November seeing them wrap up sound effects for various vehicles and weapons. Specifically, the Crusader Ares, Aegis Redeemer, and Argo Raft each received ambiances, animation, and thruster SFX passes.
After the event, Area18’s hospital was given a sound pass and a PA system to enhance the medical feel of the environment. Effects were added to the Drake Cutlass Steel and the final VO was added to character breathing.
The Audio Code team continued to work towards the first release of Claudius.
The Community team kicked off November supporting the Alpha 3.15 release with a comm-link detailing the new hospitals, medical gameplay, and updated healing system. They also hosted a Server Meshing & Persistent Streaming Q&A as a follow-up to the CitizenCon 2951 panel, with a lot of additional information and answers to the community’s most up-voted questions.
To celebrate the launch of IAE 2951, the team published the Free Fly schedule, FAQ, and infographic to help players get to and enjoy the event. During IAE, they compiled several Q&As for ship reveals, including the Anvil Spartan, Argo RAFT, and MISC Odyssey. The IAE’s Best in Show days also saw the finalists of the 2951 Ship Showdown take home their exclusive liveries and leather jackets.
In December, Community supported the launch of Alpha 3.16 and kicked off the Luminalia celebration. Outside the ‘verse, they provided daily gifts via the Luminalia Calendar and hosted two Luminalia themed contests.
They also published a Patch Watch spotlighting some of Alpha 3.16’s new features that don’t appear on the Public Roadmap.
During the last two months of 2021, the Physics team worked on a variety of topics. Quantum grids were changed to use one per solar system. They also received support for box queries. Grid overlap checks were unified for planets and other entities, and grid transitions were improved to allow a natural transition into grids that aren’t a direct parent/child of the current grid to transition from. Moreover, physics constraints received support for limiting the gravity tilt angle and work began to support structural joints on CGAs. Also, a quantum step function for spaceships was implemented and entities tied to a rope are no longer unnecessarily woken up when the rope becomes slack.
For optimizations, physics post-step notifications and networked rigids are now processed in parallel. Similarly, vehicle hit processing was moved to allow parallelization. Cross-grid collision detection was optimized to avoid expensive geometry checks as much as possible, and asteroid fields now use the faster hash function and cache physics proxies of their occupants to prevent redundant component lookups. Lastly, physics events are now more efficiently deleted after being processed.
On the renderer, further work was done on the transition to Gen12. Progress included improvements to instance buffers (indirections on GPU removed, support for offset-based buffer binding, support for different buffer layouts) after they had previously been optimized in October. Furthermore, shadow support for lightweight render nodes was added. Lightweight render node decals were also ported to Gen12 and projected decals were fixed. A G buffer copy pass was implemented, unnecessary GPU updates were fixed, and shader stage visibility was improved to compile and bind fewer stages. Render passes are now always submitted via render graph and support a fallback pass in case any required PSO isn’t compiled. Fog volumes and skybox rendering were ported, clip volume rendering migrated, render proxy shadow enabled, and color grading refactored for Gen12. Lastly, the sorting of PSOs was tweaked, resulting in significantly fewer API calls during rendering.
Regarding atmosphere and cloud rendering, R&D on the reprojection of frame data without the need for motion vectors was completed but didn’t yield satisfactory results. Therefore, the implementation will stick with the current reprojection scheme for the time being. To improve image quality nonetheless, research started on noise reduction of the original raymarch results that are fed into the filter chain to produce final full-resolution images. Results look promising and will hopefully be shared in a coming PU release. Additionally, irradiance computation for atmospheric lighting was improved; it now better integrates ground albedo and reflected sunlight. Lodding and fade out of ground albedo was also improved, which is important for large objects in high orbit. In general, code was unified in various areas and prepared for integration upstream into the main development branch as preparation for the coming transition of all atmosphere and cloud render code to Gen12.
On the core engine side, the team submitted the first draft of entity-centric component update scheduling, which is already showing promising performance results. The scheduler now also catches and reports invalid dependencies and provides options for various update processing scenarios (client/server only, etc). The commonly used performance stats (r_displayinfo) are being reworked. PageHeap (our heap to track memory corruptions) now supports dev team filters so issues can be more easily assigned to the owners of related code. Vis area culling received additional improvements and now better handles invalid shapes. Additionally, care was taken to ensure the engine’s exception is correctly invoked in case of stack corruptions reported by specially prepared game binaries (typically for debugging certain issues during PTU). The localization manager’s loading code was optimized, and the engine now collects GPU timings as part of its profiler telemetry data that can be consumed for analysis by the external profiling tool. Lastly, investigations regarding EASTL integration continued.
The teams also looked into compile-time optimizations. Some of the changes consist of the removal of unnecessary headers included in common header files used throughout the project, a cleanup of platform headers, removal of various boost cruft and removal/replacement of expensive unnecessary macros, reimplementation of a recursive helper template by an equivalent constexpr, and the externalization of huge if-else chains. Moreover, compile times were re-analyzed via clang and code file was redistributed to uber files accordingly.
FEATURES (CHARACTERS & WEAPONS)
Throughout November and December, the Feature team focused on the final patch release of the year, with a lot of work going into fixing bugs frequently raised in player feedback reports. The team also added some of the player inventory and actor status features that didn’t make the first release. For the inventory, this included features to make interactions with the client more robust, with better failure handling and improved feedback. For actor status, an important addition was the ‘corpse marker,’ which helps players locate and recover their equipment. The team also worked on the injury system to make medical gameplay more impactful.
In late November, the team moved on to salvaging. The initial focus was on the technical aspect of visually removing material from an object and ensuring its state can be reliably stored and recreated, both across the network and when the object streams back in again. This is currently being prototyped using the damage map system.
Throughout the year, work on the hacking minigame continued. It has gone through multiple iterations, with each prototype being playtested internally using a simplified 2D in-game representation. It has since evolved to be more competitive, tying into some of the in-world gameplay mechanics like scanning. As the core layout of the minigame has remained fairly stable throughout the multiple prototypes, work began on bringing the visuals online. The concepts for this saw multiple iterations, with it currently looking like the player is executing scripts to programmatically attack the target system. The interface, as it currently stands, will offer the user different options to input the various commands.
Gameplay Feature’s work for November and December focused heavily on tasks for releases in 2022. Significant progress was made in enabling item selling, with the kiosk UI approaching completion and backend code trending towards completion in Q1.
The cargo rework is ongoing but intermittent as supporting work from other teams comes online. The team are using the time between these jumps to work on small quality-of-life fixes where possible. The team also worked on (and released) Jumptown 2.0.
Towards the end of 2022, Vehicle Features focused on the grav-lev rework. In November, they wrapped up the base implementation and tuned the available bikes for improved stability and handling. In December, players got a hold of the feature and flagged bugs, issues, and instabilities for fixing. This led to massive improvements throughout the Evocati and PTU patches.
“We’re incredibly pleased with how the community helped us hone in the feature for release. There are still some issues we need to fix up in 2022, but we’re generally quite happy with how the rework turned out.” Vehicle Features
Towards the end of the year, some team members looked to the future with technical reworks being planned and started for the transit networks and restricted areas. While these won’t result in significant changes to the player experience (particularly in the case of transit), they will result in far fewer bugs and much better general stability. These sorts of reworks are necessary because, longer-term, they free the team up to focus on either new features or improve other aspects of the game.
The last major focus was on jump points, which are progressing well. The team are currently working on ‘abnormal exits,’ which are situations where the player might exit a jump point prematurely or not in a usual, safe way. For example, a player falling out the back of their ship, the powering down of the jump point, or a jump drive failing.
“Dealing with all the possible cases in a sensible and consistent way is a tricky problem, but the result is a feature that has a genuine sense of risk and danger to its use, so it’s important we get it right.”
GRAPHICS & VFX PROGRAMMING
The Graphics team completed a significant amount of work on shaders and materials towards the end of last year, with one of the main focuses being updating volumetric water lighting so it works in a similar way to the volumetric fog model. There were also several bug fixes for water volumes in general. The hair shader also received attention due to updates to the hair clip volume interaction and efforts to prevent artists from having to rework assets through emulating the old visuals with the latest shading model. They completed the shader conversion from the old DX9 style and kicked off work on the opaque ice/crystal shader to solve quality and rendering issues with previous attempts using GlassPBR. As it’s opaque, the shader will be cheap to use extensively. For example, in scattered planetary rocks and the Banu Merchantman’s floors and walls.
For Gen12, the team implemented a fallback rendering system called ‘pass group fallbacks’ for use when the shaders are compiling. For Vulkan, they continued with the GPU marker refactor, adding API versioning and fixing issues with arrays of resources on Vulkan. They also spent time investigating issues with the Overwolf implicit layer (DLL injection) that were impacting players in Alpha 3.15.1.
Development of the fire hazard feature continued, with the VFX Programming team moving heat and temperature to the physics proxy, working on IR emission, and fixing various bugs with the temperature component and look-at debug camera.
Salvage-wise, an investigation was made into the networking of damage-map data as well as implementing placeholder interfaces to unblock the game coders. The main damage-map features are being worked on in Q1.
Numerous updates were made to particles, including new controls for the mesh particle offset position and min/max pixels, a new option to pick ‘attached zones’ of particle entities, particle texture aspect-ratio support. There were also bug fixes for flashing/black particles, emitter bounds calculations, entity placement on planet OCs, and shock diamonds.
Finally, a number of performance improvements and optimizations were made to emitter memory consumption, material glow lock contention from entity effects, and gas cloud zone contention on destruction and impact MFX.
November and December saw the Lighting team wrap up support for IAE, which involved a fresh and interesting new lighting style for the existing convention halls.
“At this stage, it’s all about ensuring each ship has a light rig on it that shows it off as best as possible while maintaining render budgets to keep the experience smooth.” Lighting Team
With that done, the team moved on to providing support to the Ship team, which involved looking at various older ships and optimizing their lighting setups alongside another layer of polish. This task was mostly successful, though existing tech issues and bugs with some ships need to be ironed out before further progress can be made.
To wrap up the year, the team moved back to working on Pyro’s space stations, this time exploring more look-development and visual benchmarks, and supported the Jumptown 2.0 locations with updated visuals.
Before the release of Alpha 3.16, Narrative worked closely with Design to write and capture the voice content for Ruto and the other security reps in preparation for Jumptown 2.0 (which was teased earlier in an installment of Data Cache).
Narrative met with Mission Features to start work on additional mission content, determining what kind of lines would be needed, and discussed content for future Dynamic Events. They worked alongside Character Art on the upcoming frontier-style clothing, which will be most common on the fringes of society, such as less-hospitable planets or areas without much commerce. It was decided that while it will be influenced by Earth and Terra fashion, it will have its own unique overall aesthetic.
The team provided names and descriptions for various items and components, and completed documentation on fictional elements of the overall universe.
As usual, there were several Spectrum dispatches too: The team answered some of the biggest questions from the Ask a Dev forum in Loremaker’s Community Questions, the Galactapedia received another update, and the latest installment of Something Every Tuesday delved into the annual tradition of Traveler’s Day.
The Props team continued to work on Pyro station. This included refining the new trash assets, creating a modular set for the improvised marketplace counters, heating and lighting props, and other dressing/flavor elements such as generators and fuseboxes.
They also closed out support on additional underground facility mission props for the Mission Feature team and polished several hospital props alongside the team in Montreal.
Finally, initial whitebox work was done for the upcoming lockable/lootable crates and cargo for the ongoing cargo refactor.
QA’s primary publishing focus was getting Alpha 3.15.1 and 3.16 to the PTU and LIVE servers. However, Alpha 3.16 wasn’t stable enough, so it was decided to use Alpha 3.15.x and piecemeal specific features in. This worked well, so the internal branch ID of 3.15.2 (externally called 3.16.0) was pushed to the PTU and LIVE with several 3.16 features in a much more stable build. Time was also spent hiring additional team members as the department expands.
SYSTEMIC SERVICES & TOOLS
In November and December, Systemic Services & Tools wrapped up work on the Economy, Tools, and AI Simulation optimizations and tools polish. New functionality will be added to these tools in Q1, some of which will be detailed in January’s report.
Work began to wrap up implementation of the new selling gameplay system. This required an under-the-hood rework of the existing shop system, which will act as the foundation for the initial implementation that’s planned for release shortly.
The whole team helped stabilize services and ensure one of the most stable patch releases yet, which was achieved by addressing various edge cases found with the new Super pCache and other backend services and systems.
To close the year out, the Tech Animation team set a mandate to finish upgrading all head assets to the new pipeline in preparation for the full DNA system refactor. This is a long-standing initiative that will hopefully conclude in early 2022.
“To get us there, we need to recreate every single head asset in the game and check it’s still working as we intend. All hands are on deck for this one, with the whole team pushing to reach the finish line.” Tech Animation
Alongside this, the team began cleaning up the animation databases, which involved triaging several hundred old animation asset references from the databases. Tech Animation also continued to support the various feature teams with embedded staff.
Towards the end of the year, the UI Feature and Tech teams supported the Alpha 3.15 and 3.16 releases by addressing bugs, crashes, and performance issues related to the ASOP terminals, rental kiosks, vehicle management app, and inventory system. They supported other teams with their UI-related issues too.
They continued to update features for persistent streaming and supported the visual implementation of the refueling HUD.
Progress was made on the core tech and feature set of the new Starmap. For example, they added display controls to modify relative distance, orientation and scale, and the ability to frame selected objects appropriately.
UI Tech continued work on the core technology for hacking, adding the ability to select and edit text in the UI.
The new Building Blocks editor entered pre-production towards the end of the year, which will make working on UIs more efficient and developer-friendly. Additionally, more Building Blocks features were added.
On the art side, the team created a variety of new concepts for the mobiGlas, AR markers, Starmap, Aegis HUD modes, and Origin HUD. Updated icons for the law system were concepted too.
Towards the end of the year, the VFX team worked on a full effects suite for the Aegis Redeemer, including its unique ‘nutcracker’ thrusters. They also created effects for a Size 3 bomb for a future release.
“It’s not quite as destructive as the Size 10, but it’s powerful enough to cause a stir!” VFX Team
Work was also completed on Arena Commander’s Dying Star map, including a spectacular new version of the star itself.
Elsewhere, further tweaks were made to the planetary storm effects to help them pick up the lighting more naturally. Finally, R&D for salvage commenced.