TOP

LOG IN

DEVELOPER'S BLOG

Latest Performance Improvement Tests

By STAFF_Ines

Sep 13th, 2016

Greetings, Saviors!

Today we want to let you in on some tests we’ve been conducting to improve overall frame performance in Tree of Savior. We’ve compared the current performance in the game in ms with the values obtained after applying two improvement measures intended to minimize elements responsible for frame drop issues, as explained below.

Particle Instancing: Optimizes function call when identical particles (objects) are rendered on the screen to improve processing speed.

Quest Loop: Considers all existing quests but only updates when their status is changed to either ‘available for start’, ‘ongoing’ or ‘available for completion’, making for a more efficient processing of quests.

 


Blue represents the data obtained before the optimization measures, red represents the data registered after the measures were applied.

 

perf1 avg time: 31.6ms / max time: 137ms
perf2 
avg time: 25.5ms / max time 266.6ms
avg time difference: 6.1ms / max time difference: -129.6ms
avg time improved 0.8 times / max time improved 1.9 times

▲ MAINLOOP: Overall game performance time. The time required to render and show a frame in-game. FPS will increase as this number decreases.

 

perf1 avg time: 0.1ms / max time: 6.5ms
perf2 
avg time: 0.5ms / max time: 74.8ms
avg time difference: -0.4ms / max time difference: -68.3ms
avg time improved 4.5 times / max time improved 11.6 times

▲ UPDATE_QUEST_LOOP: The time required to check quests in-game. While most are checked server-side, some are being checked by the client. There will be less lag the less time this takes.

 

perf1 avg time: 0.1ms / max time: 2.2ms
perf2 
avg time: 0.8ms / max time: 3.3ms
avg time difference: -0.7ms / max time difference: -1.2ms
avg time improved 9.5 times / max time improved 1.5 times

▲ UpdateAnimation: The time required to show the game’s animations. It shows how much time is required to show a character’s movement per frame. The less time it takes, the less time is required to show a character’s animations.

 

perf1 avg time: 0.6ms / max time: 7.9ms
perf2 
avg time: 1.4ms / max time: 4.1ms
avg time difference: -0.8ms / max time difference: 3.8ms
avg time improved 2.3 times / max time improved 0.5 times

▲ RenderVertex: The time required to show game effects. It shows how much time is required to show the game’s effects. Game effects will appear to be smoother the lower the number is.

 


Looking at the results obtained from our internal tests, we expect these new measures to bring significant improvements to the performance of the game. We’ll be continuing to test the new measures more extensively to stabilize them, and we hope to bring these improvements to you as soon as they’re ready.