Troverse — Development Updates

Troverse
Troverse
Published in
11 min readJan 5, 2024
Welcome to our year-end dev updates, covering what we’ve built since August 2023.

Happy New Year, Tromies! 🎉🎇

We hope you all enjoyed the holiday season and are geared up for a spectacular 2024, where we plan to release more Troverse updates and the next playable builds to bring you the experience you’ve been waiting for!

Right before we hit the new year, we released our most recent dev updates in an X’s broadcast to show you what we have been working on since August and after releasing the Pre-Alpha build.

This blog post will review the updates and briefly explain each one that falls into one of these four main categories:

  1. Character Customization System
  2. Animation System Improvements
  3. Multiplayer Core Components
  4. More Foliage Assets

Character Customization System

We believe that by leveraging the true ownership of virtual cosmetic items in video games, we can push their potential beyond what has already been explored if delivered in a compelling, visually astonishing way and transcend through interoperability, where the items are part of an open Metaverse.

That’s why we have focused on building a character customization system based on the best practices that AAA titles have established and improved for years in the industry and be eventually able to build what we can call “virtual fashion” in Troverse.

Space Suits and Body Parts

The pipeline we designed is mainly inspired by games like Destiny 1 and 2, Anthem, and a few other games offering similar customization systems where players combine separate body parts to form their playable characters and apply different Shaders or paints on each part to build their own favorite fancy look. This way, we can maximize the variety with optimal efforts and game asset creation costs.

Let’s take a look at what these parts are:

  • Helmet
  • Chest
  • Arms
  • Legs
  • Backpack and Jetpack combined in one part
  • Players can also apply the same Shaders on weapons and vehicles.

We crafted multiple character parts and weapons to test the system we built and demonstrate how incredible it works!

You can see each part highlighted in this animated GIF:

Each playable character in Troverse is composed of five body parts, as shown above.

We can easily switch the parts with the second character set we built to see how it changes in run-time:

Parts can be swapped in real-time to build a different character set.

Now, let’s apply a different Shader (paint) that we made to alter the visual and materials of the same body parts:

By changing the Shaders, we can deliver a different look with the same 3D models.

Here’s how the second shader applies to the first character set:

All Shaders in Troverse can be applied on all body parts, weapons, and vehicles.

Sections

To ensure the compatibility between body parts and shaders, each part should be crafted in a special way; our artists will divide each part into six various sections, which are the segments composed by the Shader applied to them.

Check the visualization of these sections on the first character set:

Here, you can see how we separated the body parts into six sections to apply the Shaders.

Shader Creation

Now, let’s see how the Shaders, or generally material instances, are crafted and how quickly we can make a new one that looks much more different!

We can make a totally different material by changing parameters with no additional textures.

We have created several texture arrays that include detail textures, wear masks, noise patterns, iridescent lookups, and so on to keep the shader creation completely procedural without any additional resources per crafted shader.

And, here you can see how it applies to the second character set with no changes in the body parts meshes:

The new shader applies to the second set with no additional effort.

Now that we have two character sets with three shaders, it’s time to randomly combine them all in the game to pick the one we like:

We are rotating between two body part sets and three shaders to demo this in-game randomization test.

Optimization

We love how versatile this system works. However, high-fidelity always costs more, and we have to think of the possible performance issue that rendering multiple body parts could cause in run-time when we have tens or hundreds of skinned skeletal meshes wandering around, mostly impacted by high numbers of draw calls.

To reduce the draw calls, we need to merge the body parts that each player picked with all their textures to ensure only one material instance is applied and be able to render the entire character in one draw call.

UE5 offers a skeletal mesh merge plugin, but it doesn’t handle merging the textures, and that’s where our technical team achieved to make their magics work!

We can now generate texture atlases in run-time in the target resolution of our choice, which includes all textures of the selected body parts. And the greatest part of our texture merging plugin is the ability to generate textures from render targets and compress them in real-time in the middle of the game!

Here, you can see the moment that the game runs in the editor, and in a matter of seconds, the merging happens, and all parts and textures are combined. We set the target resolution to 2K atlases, and if you look closely, you may notice the minor changes when the merge occurs:

Everything from the vertex and skeleton to materials and textures are merged in the runtime, optimally.

Thanks to this system, we can switch the master material with a simplified version, removing all the customization for section masks, detail textures, wear and tear, and many other details that will be baked into the textures atlases after the merge.

Below, you can see that the pixel shader in the merged material is much more optimized.

This complexity visualization compares the pixel shader costs between the original and merged materials.

To do a stress test, we copied our test characters and made an army out of them with 400 characters in the scene! You can notice how the draw calls drop from more than 6K to less than 2K as soon as we run the game and the merge procedure works:

When merged, the draw call amount drops dramatically.

Later on, this will enable us to host many more playable characters in our region-less social hubs in the Citadel or Stations, replication permitting.

Interoperability

As a final twist to our character system, let’s see how they look beyond the realms of Troverse! We extended our plugin to export the characters we customized in Unreal Engine with the body parts and shaders of our choice in GLB format.

We can now import these GLB files in any WebGL or WebGPU renderer to have our characters in the browser! Imagine the possibilities and how we can play with our Troverse characters in other games or Metaverse projects that we partner with or simply support the UE5 Skeleton, paving the way to an open Metaverse, where players’ items are not limited to the boundary of a single game.

Both customized characters are exported in GLB format and imported into a Webgl engine like PlayCanvas.

Animation System Improvements

Of course, our gorgeous characters would not convey the AAA look and feel we desire without a state-of-the-art animation system that brings them to life! That’s why we iterated on our animation pipeline and improved it with many procedural features after releasing the first Pre-Alpha build we launched in Summer 2023.

Algorithms Animated!

We love modular systems, like what we achieved with the planets, and generating thousands of them procedurally in run-time with planetary systems like directional gravity. We decided to apply the same mindset to our animation pipeline and are excited to show you the results.

Locomotion System

We implemented a minimal and modular animation graph that enables us to edit the existing poses and movements in rapid iterations or even add more movement systems in the next updates, like crouching, swimming, sprinting, and so on, with much more ease without needing many animation clips that would be a burden for teams of our size to make or alter them more often.

Main character animation blueprint.
Minimal ground locomotion state machine with the run state showcased.

Overall, it’s clean, performant, and very manageable to extend and build upon.

Below, you can see how smoothly the directional strafing works with all the start and stop animations and no visible jumps with quick moves and direction changes, which annoys players in third-person shooters.

Directional locomotion system with start and stop animations.

It works great with gamepads when the speed changes gradually with a smooth blend between the walk and run cycles and works seamlessly in all directions. See it in action below:

It supports the gamepad with a gradual pace increase, smoothly blending from walking to running.

Although the locomotion system looks very well-crafted and polished, it would be more interesting to know that it only uses very few animation sequences to work for all directions and various player speeds, thanks to the Orientation and Stride Warping nodes.

Here are the animations used for the ground locomotion:

  • Idle | Run Fwd & Bwd | Walk Fwd & Bwd | Start & Stop - Fwd & Bwd

Even the horizontal aim offset is handled procedurally, and only two poses are deriving the vertical aim offset.

Only a few sequences are used in our animation pipeline to implement the ground locomotion system.

Jumping and Falling

After the Pre-Alpha build, we improved the jumping system and used different animation sequences for both jumping and falling. Check out how it looks with the new update:

Jumping and falling states are improved.

Turn in Place

This is the only system that we are switching back from a procedural method to actual animations because of some flaws we noticed in the Pre-Alpha build! Now, it works perfectly when the character passes a certain aim rotation threshold, and the hip rotation curve reduces the delta rotation when the animation is played.

We updated the turn-in-place system, now using two animations and their rotation curves.

Hands IK

Creating and using different animation sets for various weapon poses is a thing of the past! Initially, we were planning to implement weapon poses like Fortnite, where upper body movement data is applied on top of single-frame weapon poses as additive animations while the lower body is playing the actual locomotion animation set.

But now we are using an even more simplified and modular system by applying location and rotation offset to the right-hand bone holding the weapon, adjusting the arm using IK nodes, and attaching the left hand bone to the spot of our choice to grab the barrel using another set of IK nodes that are also adjusting the location and rotation of left hand and arm.

This way, we can alter the weapon-holding pose by just inputting a few numbers instead of extra poses or deriving all the movement with additive animations and making redundant state machines.

It only needs a few nodes to work:

Hands IK setup that acts as the main tool to define variant weapon poses without extra animations.

Hand Stabilizer

This control rig controls how much movement is transferred to the right hand bone to control the weapon's stability in running, jumping, and other movements to reduce excessive shakes caused by the animation.

Below, you can compare the absence of it on the left side and how it removes most weapon’s movement when set to full weight on the right side:

Left: Hand Stabilizer with weight set to zero. | Right: Hand Stabilizer with weight set to one.

We also utilize this control rig to point the weapon toward the direction of our choice, like pointing to the center of the screen, or use it to create a different weapon holding pose that needs rotating the weapon with no animation authoring. Here, you can see how it turns into another pose similar to holding a grenade launcher by just inputting a rotation!

The hand stabilizer control rig also alters the weapon rotation to create new holding poses much more easily.

Let’s make a Relaxed (Rest) Pose with Numbers!

It’s time to test our hands IK setup. Let’s put our weapon into the rest pose without additional resources and just by inputting the right hand offset to bring it up and change its rotation to look downward to build a pose that previously needed extra steps and animation sequences to work.

Watch the magic below!

Making a weapon relaxed pose but tweaking two input vectors!

Procedural Recoil

Weapon recoil is our best friend to give the shooting much more oomph!

We are doing it with our recoil control rig, which makes it procedural using only two input variables that define the speed and intensity of the recoil to match what we need for rifles or Terra-Gun.

Procedural weapon recoil using a control rig and two input variables.

Multiplayer Core Components

This one is perhaps the most anticipated piece of update we have been working on! It also excites us the most!

There is no doubt that UE5 offers the best replication systems possible, the exact same system battle-tested in Fortnite. However, since we customized the linear z-vector gravity of the engine to be directional for the planets, we are using a customized version of the character movement component, resulting in somehow reinventing the wheels by redoing many of the replication logic that UE5 handled by default.

It takes longer to build the multiplayer gameplay on the planets, and we have just done the core components like the ground locomotion, jumping, and flying and are working on other parts to be ready by the end of Q1 2024 to start benchmarking and see how many players can play on each planet at the first stage.

We are thrilled to show you this footage of three of us joining a session to try it for the first time:

Watch the first-ever multiplayer footage, where we are testing the basic mechanics in an online session.

And the test didn’t end up peacefully, just like every other time we human beings held a gun!

Basic shooting mechanics with replication in an online session.

We just started working on the weapon component and its replication and expect to prepare its first playable demo in the next few months.

Foliage Assets

We have built many more foliage assets to populate our precious biomes with them and give all our 38 biomes the unique signature they deserve.

The design and 3D modeling still continue with the Scorched biomes recently started. We expect to wrap up most biomes with environmental details like liquids, clouds, atmospheres, and so on in Q2 2024.

World-building was the biggest chunk of Troverse development so far, from many technical and detailed systems to artistic aspects and assets involved to deliver the best results.

More foliage assets have been created in the past few months.

If you enjoyed the updates with the animated GIFs, you might also like to watch them in the original resolution uploaded on our YouTube channel:

Please make sure to subscribe to our channel for all the exciting updates that drop later this year, and don’t forget to share your thoughts in the comments!

We hope you liked the updates. We will continue working on the gameplay, weapon systems, and multiplayer parts to prepare the next playable build as soon as possible, hopefully launching with all completed planets in the next few months. From all of us on the Troverse team, thank you all wonderful Troversians for your endless support 💙💎

Join our community

Follow us on Twitter and Join our Discord. See you all in the Galaxy! 🌌

--

--

Troverse
Troverse

Troverse is a gaming Metaverse where players Own, Explore, Collect, Trade, and Compete in treasure-hunting adventures spanning a vast galaxy of 10,000 planets.