Alongside final optimizations for Alpha 3.9, the Social AI Team improved the performance of the Usable Cache Manager. They added the ability to time-slice the main update to make it easier to control the update usage of different jobs, and began using queued physical ray-casting to validate which usable enter/exit locations are available and not blocked by other objects.
Work started on compound usables, which can inherit functionalities from other usables and override data based on specific setups. For example, maintenance or inspection operations on a Gladius might use generic animations in most locations, but a more complex section of the ship may require specific Mannequin tags.
Functionality and visual quality were further developed for vendors such as the Bartender. Work went into potentially allowing designers to set up proc clips that stow/unstow objects from a specific inventory pocket. The team also extended the Communication system to allow designers to tag different options relating to the same contextual voice line. This will allow a generic behavior to automatically select the right option for a specific context. For example, a shop patron can use a generic ‘order’ communication line to pass the tag of the object they want to order, which will allow the selection of a relevant voice and animation. If one isn’t present, a generic option might be selected. This, combined with a pass on wildlines and secondary sub-activities for the vendor behavior, allowed the team to significantly improve the visual fidelity of the behaviors.
AI are currently integrating more functionalities into consumable objects to create an additional layer of customization to the flow, such as enabling AI to differentiate between open and closed bottles and act accordingly.
Focus was also given to improving several aspects of the patrol path tech. This involved moving some of the parallel functionalities trigger-logic to the movement system, which is a big change for several reasons: The team can now send simple requests related to a path to the movement system, making the subsumption task much simpler; they can using the same approach used for complex usables, such as closed doors, elevators, and the transit system; and the movement planner is now responsible for analyzing the data and creating a plan that can be as complex as needed.
Last month, Animation supported Social AI with ship hangar work, general inspection places, bar patron idles and actions, bridge control seats, and lockers. They also worked on reloading and malfunction animations for all weapon classes. Development of stumbles, knockdowns, body dragging, and what happens when a player is injured or incapacitated continued.
The Mo-Cap Team improved the motion builder skeleton, which will help the wider team create assets faster, and the ‘take selection’ tool, which will improve post-shoot turnaround. Tools were also created to enable quick data renaming and video conversion. Several team members are temporarily supporting other related areas of development due to the suspension of all mo-cap shoots.
Last month, the Environment Art Team progressed with Pyro I and II, which will make full use of Planet Tech v4. They’re currently creating new geology and vegetation packs and putting them together on the new planets. Look out for an unstable star, hostile landscapes, and dangerous plant life when it launches.
“After the frozen dangers of microTech and its moons, Pyro will definitely put the players in new and exciting surroundings filled with new challenges.” – Environment Art Team
In the UK, progress on the Crusader Hercules continued; the bulk of the exterior is now greybox-complete, while the thrusters and turrets are currently being worked on. Inside, the bridge is greybox-complete and the rest of the upper deck, including the hab area, is making great progress. The interior doors are complete and the large hold is starting to take shape. Work on an unannounced ship continued too.
In the US, the team kicked off the Crusader Mercury Star Runner, working through the cockpit greybox and cargo holds. Progress was made on the wings and turret exteriors too. The ongoing improvements to the Origin M50 entered the polish phase and the Cutlass Blue’s prisoner pods were tweaked after feedback.
In preparation for the feature work next quarter, the Weapons Team iterated on the Behring GP-33 grenade launcher to fix a few issues and bring it up to current standards. The Lighting Bolt Co. Atzkav sniper rifle and Yubarev pistol received final art and LOD passes and were handed over to the downstream teams. The Gemini C54 SMG was reviewed by Design, which led to its dimensions being significantly trimmed down to make it feel more like an SMG and less like an assault rifle.
April saw the team deal with a variety of bugs, including memory leaks that were discovered on some of the backend services. Work bagen on the new dynamic mission service and support was provided to Theaters of War. Entitlement processing, iCache Advanced Query, iCache/Login Flow, and GIM services development was also undertaken.
The Character Team fixed a handful of bugs, cleaned up documentation, and handled small material fixes. Characters were placed in landing zones and work went into the Hi-Tech hangars, cargo, and tweaks were made to the existing loadouts for prisons and New Babbage. The tech artists finished their Zone Cut tool, which allows the Art Team to cull hidden geometry under clothing. Art is currently being created for various carnivorous species and the Orison Tourist character.
The Community Team kicked off the month with Planet Tech V5: The Flattening
, which marks a significant step forward for both “technical innovation” and “scientific accuracy”.
Back in reality, another Spectrum AMA
answered the community’s most burning questions about the Quantum system first introduced at CitizenCon 2019
. When complete, it’ll give the devs complete control and visibility over Star Citizen’s system-spanning economy.
Alpha 3.9’s Pillar Talk
was released too. Chris Roberts was joined by Sean Tracy, Paul Reindell, and Eric Kieron Davis for a discussion on the unified friends list, persistence, quality of life improvements, the player interaction system, New Babbage, prison mechanics, and more.
Lastly, the Community Team would like to draw your attention to an important update on CitizenCon 2950
Engineering’s April involved working on AFT, adding rotation resistance to the driven articulated entity tracking joint (exposing tuning parameters), making body-dragging-driven ragdoll behavior less framerate dependent, and adding rotation damping for the dragging character (with exposed linear and angular damping factors). They also fixed animation pops, added force reactions, and made the head and neck joints of a drag-driven ragdolls ignore actor entity collisions.
Physics-wise, they made improvements to the load and spawn time for entities, reworked the processing of dead-marked entities, and optimized the CheckAreas function (which is now three-to-five times faster in new grid-OC-split regions). Basic ricochet behavior was added and made deterministic. They also looked into character physicalization issues for the Cinematics Team and integrated physics into the main development stream.
Engineering wrapped up the mesh refactor for the Gen12 renderer, moved shader item creation away from the render thread, relocated shader objects to resource containers (to improve material-streaming during OCS), and made headway into permanently enabling certain G12 effects. They added asynchronous shader compilation support to the Gen12 code and refactored the buffer management for the render mesh. This means they can now create buffers on any thread instead of deferring it to RT, use a VB stream wrapper object to maintain ref counts for writes and reads on render mesh streams, and run numerous API cleanups. They further cleaned the loading and refreshing of the shader system, ported texture sampler state code, and started porting brush rendering to the new pipeline.
Regarding the shader system, they fixed an issue in cache generation that caused certain combinations of hull, domain, geometry, and compute to not pre-cache. For hair, they created a new slider for creating a ‘salt and pepper’ look and improved scattering for blonde and bright hair.
Engineering bundled the processing of adaptive resolution samples so that lowering adaptive resolution will show GPU perf scaling as expected. They changed the way active sample indices are built to maintain the desired serialization order per sample block. Each sample block can now be processed as a bundle via the thread group to better utilize cache effects. They also looked into deep learning-based de-noising and up-sampling, and worked to implement a guided filter to de-noise and up-sample lower resolution raymarched inscatter and transmittance results. For the ongoing ocean work, the team upgraded buoyancy physics to make it functional with the new changes, fixed motion vectors on deferred oceans, and added sub-surface scattering to improve the appearance of crest waves.
General system worked involved enabling advanced CPU features for Linux DGS (in addition to already enabled Haswell-based code gen in Clang). Batch worker wakeup was improved and optimizations to the aggregate broad phase were made, such as replacing the sphere tree with an optimized radix tree and an optimized state update.
Finally for Engineering, the entity component update scheduler was further developed. To this end, they added a new component update policy based on entity rendering bounds with an optional view ratio and added support for view ratio in component updates. They also fixed a crash in a video driver caused by an incorrect use of the texture upload path taken for UI/Flash assets. Various frame times were added to important threads (MT, RT, network, physics), with one of the goals being to derive a VSync agnostic frame time. The exception handler and crash dump processing tools now support new cig-trace events and have unique folders to dump debug information into, which streamlines runtime error processing and analysis. The developers can now also mute FPEs until a given date.
Alongside polishing and bug-fixing for Alpha 3.9, the Gameplay Features Team worked to support initiatives for Arena Commander, Star Marine, Theaters of War, and Invictus Launch Week. They also began preliminary work on a new player trading app for mobiGlas. The first phase focuses on the ability to send currency between players, with later revisions extending to physical inventory items.
The Vehicle Features Team continue to rebuild the HUD using the new Building Blocks technology. Last month, targeting and missile-lock UI were worked on heavily. They’re currently improving how IFCS copes with an imbalance in ship thrusters. For example, when thrusters are damaged, the imbalance will cause undesirable power delivery and make controlling the ship more difficult. Progress on docking was also made, with the team figuring out how to connect ships while the physics engine reacts appropriately. They supported research and testing into improving ship combat too.
The Graphics Team continued their crucial work on the Gen12/Vulkan renderer, with the focus on getting a preliminary pipeline up and running. This is the first of several major milestones in the development of the new renderer and will allow them to deprecate much of the old post effect code. The organic shader used for vegetation and rocks is currently receiving a long-planned upgrade that will integrate into Planet Tech v4 and add many new features, such as better integration of assets into planetary terrain.
The long-awaited real-time environment probe feature was completed. This allows bounced lighting and reflections to be re-computed dynamically to account for the ever-changing lighting on rotating planets, orbiting space stations, lights being turned on/off, and destroyed interiors.
The final task of the month was the integration of the texture streaming system, which enables the team to intelligently manage when they update each probe and when to unload them to make way for other textures. This feature was included in various locations across Alpha 3.9, though the Art Team still need to ensure the assets in each location are optimized to keep the cost of the render pass to a minimum, so rollout will be a gradual process.
With the majority of New Babbage complete, most of the Level Design Team moved to continue work on Orison. They’re also making updates to Grim HEX, which involves finishing the internal racing kiosk, making structural changes to the asteroid, and finally adding hangars. They’re also working with the feature teams to ensure the new restricted areas and ATCs are working as they should.
With Alpha 3.9 work wrapped up, the Lighting Team looked at adding a day and night setup to Lorville, which will create different ambient moods depending on the time of day. They also replaced some cubemaps with the new runtime probes tech to help the lighting feel more grounded during the day and prevent areas from appearing too “glowy” or dark. Several team members looked into adding the same features to the exteriors of surface outposts and underground facility locations. Lastly, a new kiosk was added to the New Babbage spaceport and a number of minor legacy bugs in older locations were fixed.
The Props Team closed out the food and drink props last month, with minor bug fixes currently underway.
“There are plenty of plans for where we want to go next and some new techniques we would like to test in the future” – Props Team
New props were also created for the Mission Team to help them prototype future content and new tools were introduced to the animation workflow to speed up 3ds Max processes.
Last month, QA were assigned a new test request (QATR) for the restricted areas rework, which the locations-side of the team focused on testing. The QATR related to Lorville and Area18, with the tests ensuring the updated restricted areas worked as before and didn’t introduce any new issues. Engine-wise, they were involved in several instances of binary testing. Two sets were to fix various issues plaguing the Alpha 3.9 builds and help with performance and optimization. Others related to character textures and skinning.
QA continued testing the current tools in use across the whole development team, including Graphics Viewer Tester, StarWords, and Dataforge with the inclusion of TrackView. They also joined the weekly playtests that have been set up for the whole company to join in. This allows the team to play areas they’re not wholly familiar with and gives a fresh perspective on many of the features.
System Design started implementing the new Refining Station kiosk. This will be used by players to convert their raw materials into refined goods that can be sold for higher prices (and in the future used to craft items). When live, players will have to take their mixed materials to a station with refining capabilities and then start a refining job. Based on the type of refining process, the materials they want to refine or discard, and how busy the refinery is, the player will pay a price and the job will begin. Refining will then run, even if the player is not present in the station or logged on. Once finished, the player will receive a notification and will be able to return to the station to collect their goods.
Work continues on resource management and item control, with the team undertaking initial prototyping to ensure everything planned works correctly and will scale properly with future content.
Following last month’s report, Tech Animation continued to develop the internal toolsets in support of Tech Art and Animation. They worked with Social AI on new usables, including the bartender and a wide variety of new additions for hangar behavior. They also worked on a tool to allow animators to export their state machines straight from Visio to Mannequin, speeding up the implementation process. Work began on a proprietary tool that will eventually make the process even faster. Finally, they helped rig props for the animators to use in Maya to make interactions easier.
In April, Tech Art continued work on the RuntimeRig system, further enhancing it by adding functionality to allow the efficient sharing of RigComponents between several instances (typically characters). Certain RigComponent types (such as the BlendShapeComponents or the WrinkleMaskComponents) contain static data that never changes at runtime and is usually identical for all rigs of the same type and tier. In early versions, this data was duplicated for simplicity. However, this isn’t ideal, both maintenance and memory-wise. In the old RigLogic system, it had been fully hard-coded via static arrays in shared C++ header files, which led to a more optimal memory footprint but completely removed flexibility on the tech-art side.
The latest iteration gives resource sharing wherever possible and the artists full technical freedom to edit the data and quickly iterate on the deformation and shading-related rig outputs. As with all core systems designed to replace legacy versions, rigorous testing, tech-hardening, and optimization are needed before it can be rolled out across the board. As a first step, they’ll test it on the Maya-side only, using the new Vanduul face rigs. Eventually, it’ll be applied to all 130+ human head rigs in the DCC and, later, the engine too.
April saw the Vehicle Technical Team incorporate a new in-game system that will be revealed at an upcoming event. A new life-support item is in development that allows ships to re-pressurize after their internal atmospheres have been vented. It will also work in stations, outposts, and other room-based structures with airlocks. Finally, several Alpha 3.9 bugs were addressed, including debris-related issues that now make vehicle destruction much more visually satisfying. The mining feature was also expanded.
Turbulent supported the launch of the Esperia Tevarin Prowler and all the promotional pages for Alpha 3.9.
User Interface (UI)
Throughout the first quarter of 2020, the core UI Team progressed with adding 3D support to the Building Blocks UI tool. April’s work will make it easier for designers to add 3D vehicle or character icons to a screen without relying on a programmer. They also finished the first iteration of a new UI kit that makes it easier to set up pages by using ready-made components, which can be easily restyled for different manufacturers.
Currently, many of the UI Team are working closely with other teams: alongside the Vehicle Team, they worked on improvements to the targeting, missile lock, and landing UI. For the Actor Team, UI supported the creation of the new inventory system. The UI artists also worked on screens and branding for some upcoming environments.
April saw VFX’s work on the Atzkav sniper rifle and Yubarev pistol begin. These electron weapons require new functionality not seen in Star Citizen before, so extra time went into identifying missing features and communicating it to the Weapons Team. Alongside this, pre-production started on the S12 torpedoes and a reworked mass driver weapon.
The ship and environmental fire propagation system was further developed. This will spread fire based on various material parameters, such as fuel, surface type, and oxygen level. They also plan to make the fire interactive with environments and player interaction, such as wind blowing it around or it reacting to a player’s fire extinguisher. Fire hazards progressed well too, with a set of ‘look-dev’ videos being produced to help visualize goals and push conversations further.
Code work was done for new particle-system features, such as alpha erosion, angular rotation, child-ribbons, and emission size scaling. VFX Tech Art spent the month finalizing the fragment tool that’s used to save small sections of the Houdini network, which will be rolled out to the users shortly. This will be particularly useful for gas cloud authoring and procedural generation.