TOP

LOG IN

DEVELOPER'S BLOG

TOS Optimization Process

By STAFF_Bob

Dec 27th, 2018

Greetings Saviors!

Today, we would like to go over the issues the game has been facing with regards to optimization and the results of the various tests we have been conducting in order to solve the aforementioned issues in client stability.

 

Optimization of Performance

 

 

 

1. Server Optimization

 

Most of the critical calculations pertinent to the game are taken care of on the game’s server. Of the many calculations that take place, we have been specifically focusing on streamlining the combat calculations by processing combat calculations at source code layer instead of the script layer. As a result, we have managed to speed up the combat calculations by 10 times when tested offline, and by 3 times when tested on our internal test servers. 
This optimization process is currently in a near-ready state for application and we are currently undergoing further tests in order to ensure that it does not cause any complications when implemented on our live servers.

 

 

2. Client Optimization

 

Background Multi-threaded Loading

As you can see in the “before” section of the video above, players are faced with a large number of objects when entering a large city in-game. The current client is made so that all objects must be drawn before a new area is displayed. The advantage of this method is that all objects present in an area can be shown at once but at the same time it stops the game momentarily until all objects have been drawn, hence the stuttering.
What we are trying to apply to the game to resolve this issue is the drawing of objects in ‘real time’. This could mean that certain in-game objects, such as the Gender Switch player shop that appears around 8 seconds into the video, may take a longer time to load but it will bring about noticeable improvements in reducing the frequent stuttering that plagues our players while visiting the more populated areas of the game.

 

Distributed Packet Processing

Packets are units of information that are transferred between the server and the client. Distributed packet processing is when the client divides the many packets sent from the server for more efficient processing rather than processing them all at once for smoother gameplay.
The dev team has been testing this feature with custom clients in the current live settings. Although we have reached some progress in this aspect and have not found issues with the feature in its current state, we want to take the time to make sure that we have left no stone unturned as this would change a big part of how the game works internally.

 

 

That’s all for today but we will return again with more optimization news, which will include our attempts to enhance the PvP experience for our players by better syncing character positions between players in-game.

Thank you for reading!