1. Wild Assault
  2. News
  3. Wild Assault Dev Log: Dive into Performance Optimizations - A Case Study

Wild Assault Dev Log: Dive into Performance Optimizations - A Case Study

Hello, Wild Ones! We're excited to talk to you again in this episode!

First of all, we’re thrilled to see that so many players love our early concept designs for Akai Hime. The team is already discussing the possibility of making them cosmetics for Akai Hime in the future. We’ll definitely keep you updated on our progress!


Emote by Glitter

In this episode, we’d like to share a case study on how we continue to optimize Wild Assault’s graphics performance.

Handy Tools in the Gearbox


Combat Cat Studio is a small group of developers. To improve overall development efficiency for such a huge and complex project, we decided to utilize some of the most innovative tools available in the latest version of Unreal Engine 5, including Nanite, Lumen, and VSM, to achieve stunning visual effects like Dynamic Global Illumination.

[h3]Technical Terms[/h3]

💡 Nanite: A powerful system for rendering ultra-detailed geometry, enabling rich, immersive experiences without sacrificing performance.
💡 Lumen: A real-time global illumination and reflections system, delivering natural and dynamic lighting for immersive environments.
💡 VSM: A high-performance shadow-mapping system that delivers soft, stable, and detailed shadows for realistic visuals.

📖 Explore More from the Epic Games Dev Community:

1️⃣ Nanite Virtualized Geometry
2️⃣ Lumen Global Illumination and Reflections
3️⃣ Virtual Shadow Maps in Unreal Engine
4️⃣ Dynamic Global Illumination Methods

However, the new technologies offered in Unreal Engine 5 are relatively hardware intensive and could introduce performance issues in the game. We've been conducting all kinds of experiments to address these performance issues ever since the alpha test. Specifically, one of the most important questions we're trying to answer is: "How can we further optimize the loading and rendering process in a large, open world created using UE5?"

After months of exploration, we are finally making progress. We've tested the latest build of Wild Assault with the HIGH graphics preset on an RTX 3070 Ti GPU, and the average FPS has increased by 7.2% compared to a prior build without the new methods implemented.

"Let'em Cook!"


[h2]"NOT a Piece of Cake"[/h2]

Unreal Engine 5 offers a variety of efficiency driven tools that make it easier for developers to achieve their goals. Initially, we considered using the World Partition feature to automatically divide the open world into several grids, loading them only when needed. Additionally, we planned to utilize the HLOD (Hierarchical Level of Detail) system to render models at varying levels of detail.

By combining these two features, we could load only the necessary grids of the open world, render objects near the camera at a high level of detail, and display objects farther away with lower levels of detail. This approach can significantly reduce hardware demand (including GPU workload and VRAM usage) while ensuring a high and stable frame rate.

Problem solved, right? Or is it?

[h3]Demonstration[/h3]

Wild Assault Operation Mojave World Partition Demonstration

Wild Assault Operation Mojave HLOD Demonstration
The tower is rendered in high detail when the camera is near but in low detail when the camera is far.
[h3]Technical Terms[/h3]

💡 World Partition: A system that splits large game worlds into smaller grids and loads only what's needed, improving performance.
💡 HLOD: A feature that shows nearby objects in high detail and distant ones in lower detail to optimize rendering.

📖 Explore More from the Epic Games Dev Community:

1️⃣ World Partition in Unreal Engine
2️⃣ Hierarchical Level of Detail in Unreal Engine

Test runs reveal that the problem is more complicated than it initially seemed. World Partition's dynamic grid loading often causes significant frame rate stutter, an issue that’s unacceptable for a competitive, fast paced PVP shooter like Wild Assault.

What if we make the grids bigger? That could prevent the HLOD system from working effectively. It seems we’ll need to further develop a customized approach to implementing HLOD. 🤔

[h2]"We're Goin' Custom Shop!"[/h2]

By default, Unreal Engine manages the HLOD system automatically. To better control how the engine renders different levels of detail, we modified its source code to make the system more customizable. We also added various configuration parameters to fine-tune the process.

(Fellow indie devs, feel free to DM us if you want to learn the trick!)

[h3]Solving HLOD Visual Defects[/h3]

Some objects displayed noticeable visual defects after merging, indicating the need for rules to better manage how HLOD is applied to specific objects. We have further developed a set of rules for all relevant objects and applied HLOD accordingly. In addition, we have also modified the implementation of the HLOD layer to achieve a balance between visual quality and frame rate performance.

[h3]Demonstration[/h3]



Wild Assault Custom HLOD Demonstration
Original model, model with visual defects caused by auto HLOD, and model processed with custom HLOD.

[h3]Solving Performance Drops in Multiplayer Mode[/h3]

Wait that's not the end of it!

While our custom HLOD solution has significantly improved frame rate performance in singleplayer mode, it didn’t work as expected in multiplayer mode, even after we removed all dynamic components.
After a careful investigation, we discovered that the loading order of different levels of detail (LODs), along with a related VFX frequently applied to textures like terrain, roads, and vegetation, was negatively impacting frame rate performance.

We then developed specific solutions to address the issues we identified.

As a result of our custom HLOD R&D, we boosted FPS in our test build by approximately 7.2%. We hope this example provides a simple and transparent look at our performance optimization workflow. As our producer mentioned in the previous Q&A sessions, performance optimization is always an ongoing task for us. We’ll continue exploring new methods to improve Wild Assault's frame rate and deliver the best possible gaming experience.


Emote by Glitter

We hope you enjoyed this week’s geeky dev log, and we truly appreciate your support! We’ll keep striving to find better ways to discuss tech topics with both players and fellow indie devs. Let us know your thoughts!



Don't forget to add Wild Assault to your wishlist! 🫶

https://store.steampowered.com/app/2827230/Wild_Assault/



Combat Cat Studio

Follow us on social media:

Twitter/X https://twitter.com/WildAssaultGame

Bluesky https://bsky.app/profile/wildassault.com

Facebook https://www.facebook.com/WildAssault

YouTube https://www.youtube.com/@WildAssault

TikTok https://www.tiktok.com/@wildassault

Discord https://discord.gg/WildAssault