Tree of Savior Forum

Update on the Optimization Process

Greetings, Saviors!

This is TypeBPenguin, the programmer in charge of optimization for TOS.

Firstly, I would like to apologize for not giving you an update on how things have been going in a while, and for the delay in the optimization update.

We needed some time to reconsider the optimization process for there were certain stability issues. These issues have been dealt with since then and, with that success, different aspects of the optimization process have improved as a result.

In this quest for optimization, we set out one goal: make the game run without a hitch even with 100 players on the screen!

Now, as some of you might already know, this is not an easy task. But we set our goal high and we will dedicate our time and effort to realize it.

Also, we have set up a specialized test environment. As you can see from the screenshots below, 100 player characters are moving about, casting skills, jumping and doing all kinds of activities. This would be an ideal environment to test the optimization.



Optimization Process

The first and foremost thing to solve were the client stability issues from the previous optimization process.

During the numerous tests, certain side effects from the previous optimization process have been found and, regrettably, for the sake of stability, we had to forgo some improvements.

However, through other optimization processes, we were able to obtain both stability and improved performance.

Our resource management system has been improved by applying resource background loading and data pull. What we have achieved was a reduction in the time wasted on resource loading.

The graph below compares performances before and after the resource management system application.

The unit is ms/frame and the red graph indicates the before, while the purple graph indicates the after.

The test environment for both is the same as the one shown in the screenshots above. Please look at the number of spikes and duration.

Through the application of these measures, we were able to obtain the best of both worlds and have the benefits from the previous process along with the huge reduction from resource loading.

We created a separate thread to process articles, models and other ingame factors to reduce processing time.

Most of the total processing time is spent on updating models when 100 characters are on one screen.

When characters cast skills, naturally a number of particles are created. Consequently, more time is needed to process the particle effects.

Here, we thought of a way to process them in different threads.

We reduced rendering time and draw call numbers by improving the rendering pipeline.

We have improved the Character Depth MRT process and other unnecessary rendering processes that we weren’t able to do last time.

The graph above was obtained in a test environment and based on the results from replays where certain features were locked. There might be a margin of discrepancy in the actual gameplay environment.

Also, we must be prepared to deal with unexpected side effects like last time.

Therefore, we took some time testing and re-testing to find possible issues so that this optimization process will perform without major problems.

Likewise, we did have to sacrifice some performance to ensure better stability, but the ultimate goal was to provide our users with a safe and sound gameplay experience.

Ingame Test

The graph below is based not on replay scenarios but rather the actual ingame environment like the screenshots above.

The red graph indicates the before, the blue graph the after. The first graph is recorded when loading 100 characters doing various activities. The second graph is taken after the character loading and doing various activities.

We can clearly see certain significant improvements in the overall processing speed and reduction in frame drops.

Closing Words

Aside from the processes we have mentioned above, we are also working on improving inefficient algorithm structures and other tasks to reduce even 1ms for our users. We will keep on striving to improve the optimization process.

As always, thank you for playing and loving our game :smiley:

3 Likes

So, what I could understand with those graphics was: nothing

2 Likes

I’m pretty hyped. The communication is very welcomed. Thanks IMC, I can’t wait to see it in game.

3 Likes

I agree. I love that you told the community, in detail, what you guys are working on, regardless of whether or not people understand the infographic. It shows us that you’re working towards bettering the game, and it gives us the anticipation of a better future for the game, and whats to come

1 Like

This is better than silence.

Still, I have doubts on how this would translate into the live version that we have since we’re not really sure nor told that this “specialized test environment” is a true clone if iTOS. Perhaps of kTOS, maybe. It’s likely there are issues in our version that’s not present in such test environment.

IIRC ours is a somewhat frankensteined version where there are fixes applied to bugs that seem to only appear in our version, yet we also get the changes from kTOS. It has never been parallel.

I can no longer remember the time when Saalus manual entry was actually not mostly broken (even automatch bugs out every now and then) nor when we didn’t get randomly disconnected while inside dungeons or when a player casts a spell.

Now the “login error” when switching characters have become a “valve ban” error, either of which forcing you to close the game and re-open it. I wonder if the Koreans are experiencing these too. Perhaps it’s because we have Steam as middleman in our version.

I am still hopeful though that this is a step in the right direction for them. The game badly needs optimization to be rightfully called an MMO.

2 Likes

This post was flagged by the community and is temporarily hidden.

6 Likes

I will act as the Devil’s Advocate as usual until they SHOW results in-game, not on their lab tests.

Are these guys even taking their work seriously? Need time to consider something so important? Pft.

Watch this turn out like the “Old Scholl RPG” goal from last year. They will blame the engine and reduce the channels capacity to 50 or less.

By the way, the latter optimization got removed again, the game is in terrible performance after the last patch.


At least we got some communication, but i do believe they will stay silent for another 2 or 3 months again.

2 Likes

1 Like

Oh increse the number of channels already pls.

yey

good job imc~

hooray~

1 Like

what do you mean? :frowning:

To reach 60 frames per second, 15 ms of frametime is needed

This is gonna be another :sparkles: 7% :sparkles:

1 Like

Another channel reduction in fields and dungeons :sparkles:

2 Likes

I will take 7% again. just keep giving me 7% X to about 10 times or so. also please tell me you are going to utilize the graphics card… or just make tos utilize as many cores as we have then we can all go and buy a used server with 64 cores or something.

2 Likes

Well at least they managed to get rid of the spikes which is already a huge improvement.

This optimization is way to late if they think it will bring back players. The damage has already been done. All they can do now is please there 3k iToS audience(whales).

5 Likes

From what I could see on facebook, many players have quit the game due to the low optimization.
As it is indeed impossible to rescue ALL the players who quit up to now, if the update really does change anything, it will be a solid reason to come back.

1 Like

^yeah… that’s true :slight_smile:

This post was flagged by the community and is temporarily hidden.