1. Conqueror's Blade
  2. News
  3. Development Journal: Performance & Frame Rates

Development Journal: Performance & Frame Rates

Our goal with Conqueror's Blade is to create a world in which you can fulfill your dreams of conquering the lands as a warlord. To this end, we've created vast areas, walls that zigzag the land and battles where thousands of soldiers charge, clash, fire arrows and let lose artillery fire...

[h2]The Difficulty of Massive Battles[/h2]



Looking at it from the backend of things, huge maps, plentiful characters, items and special effects require an astonishing amount of calculations. Throughout the three years since we launched, we've continued to implement new content, units, bigger maps, as well as a series of graphical improvements. All of these put a strain on both software and hardware alike.

The interfaces for units, heroes and maps are all connected to highly complex systems. All of this working at once during the heat of battle puts a heavy strain on the CPU. To improve FPS, we've done plenty of work to enable as many algorithms as possible to process in parallel and get as much as possible out of multi-core CPUs. This combined has led to the game utilizing much of the CPU and straining the GPU's rendering capabilities. Add to that the sheer amount of high-quality textures that need to be processed, meaning that most players have little GPU memory to spare. On the other hand, as game interface, combat, scene effects and others are improved, GPUs face higher demands during rendering. Games that use a large number of high resolution textures also increase the demand for video memory. These factors lead to games requiring more GPU computing resources and video memory during operation. Therefore, in future game development, we will pay more attention to optimizing the GPU to ensure smooth gameplay experiences.
Furthermore, huge scenes and massive numbers of characters add significant pressure on memory usage. Often times we have to increase our memory consumption in favor of processing performance. However, we admit there are many shortcomings in our current management strategy for algorithm optimization with this being one of our key targets.

As we continue to create and add new content, we also receive more feedback regarding frame drops, lag and performance issues. We know full well how important performance is. Even so, in the end we must try to find the sweet spot where performance and graphics meet.
Further on, we'll go into more detail on what we've done to improve performance and share with us our plans for the future.

[h2]What We've Done in the [Eternal] Season[/h2]

Every action of every unit, be that moving, attacking or using skills, occupy system resources based on the quality of its special effects. When special effects are displayed, how much it strains the systems depends on how many particles it includes.Therefore, the number of particles is the most intuitive way to measure the performance impact of special effects. We will reduce the original overly high number of special effect particles to a reasonable range without compromising the overall game experience, thereby improving game performance.

[h3]Units & Combat[/h3]
For example, many players are experiencing frame drops when the Zykalian Militia throw their kerosene canisters. That's a result of their skill's special effect using too many particles.
To improve performance across the board while still ensuring good visual effects, we have with the [Eternal] season reduced the number of particles of many skills' effects, including kerosene canister. This has directly improved performance. The following are before and after particle counts for some skills.
  • Silahdars' Sideways Sweep - now 410 particles (was 1,200)
  • Silahdars' Deathstrike - now 890 particles (was 1,120)
  • Grayhair Garrison's Last Stand - now 420 particles (was 1,120)
  • Shenji Grenadiers' Throw Grenades - now 210 particles (was 580)
  • Zykalian Militia - now 118 particles (was 310)
  • Grapeshot Cannon (Rare) - now 2,700 particles (was 6,400)
  • Berserkers' Berserk state - now 370 particles (was 1,050)
  • Special effect of units affected by the Glaive's God of Battles - now 240 (was 410)

[h3]Weather & Objects[/h3]
The vast number of objects on each map adds to immersion and affects strategic choices too. Every wall, obstacle and vegetation breathes life into the map. Naturally, plentiful objects and large concentrations of units are demanding, which has resulted in low frame rates during many battles.
To remedy this, we've made improvements to the management of dynamic object performance for areas that are often home to large battles, greatly reducing rendering delay. This will lead to much more stable FPS in these circumstances.

[h2]Future Performance Optimizations[/h2]

We've already made performance improvements to many areas of the game which has led to a slight overall increase in FPS. Naturally, certain problematic areas still exist and many of these exist at key points, something that affects the gameplay experience adversely.
We are currently performing large tests in an effort to do more targeted optimizations, and we're planning on doing the following:

Optimize the underlying interface algorithms to avoid complex ones reducing performance and worsening memory usage. Some of these include the mini-map, skill bars and unit info.
Rendering fidelity affects how things appear in game, and in most cases, the rendering of different layers does not have to be on the same fidelity level. For example, while battling on the walls of A at Wall Fort, you don't need to have the perfect view of the base flag as that would lower performance. The current rendering fidelity does not cover all situations, however, so we will be adding more rendering layers based on distance to objects on the map. For example, we can give objects 100m away a rendering fidelity of 1, objects 50m away a fidelity of 2, objects 10m away a fidelity of 3 and objects 5m away a fidelity of 4. This will reduce rendering calculations and therefore GPU usage.
Re-create the code of cloth and physics simulations to optimize the performance of many smaller modules such as hair, spear tassels, robe hems, capes, etc.
Continue to reduce the number of special effect particles to better balance graphics and performance.
Create a better distribution of texture quality to find a balance between that and performance to further reduce memory usage.
Improve graphics settings by adding more options and configurations, while also better recognizing hardware to improve the default settings.

Each one of the aforementioned improvements is complex and will take a long time to complete. As we continue to add more content, we also add more unknown variables to the equation. Even so, we're happy to share and discuss these issues with you all. We've been battling these issues in silence for a long time and we want to show our answer with actions and concrete results. We know that battling performance issues will take time, but even so, we will continue to improve one issue at a time. We're in this for the long haul.
We also want to invite you all to work with us! We're thinking of testing the results of our optimizations via open, alpha and beta tests. We'll reveal more about how these will work in future notices! Oh, and we'll be adding info on how things are going with our performance optimizations to future update logs too!