
With the introduction of the new backend we have experienced some unexpected problems with the game stability and performance. We have been asked how we do address such issues and how we deal with those to provide a flawless gaming experience to you. Let’s shed some light into it.
Since the introduction of the new backend we are using a different architecture than before. We do now work with real databases to be able to store data in a better way instead of using a simple CSV file. In addition, there are other new technologies that enable cool features in the game, but also affect performance. Now, we have a very modern server but it works completely different than with the old backend.
We undertook countless measures since the new backend release to improve server stability. Unfortunately, it is not enough to simply write code that is easy to understand. Our developers also have to make sure that the CPU can handle the code, that the internal as well as the external network traffic is not burdened by it, that it is not written too much into the memory, and that the hard disks are not being disabled with too many accesses. Thanks to our sysadmins, we have access to a very good monitoring which displays data in a telemetry tool. This enables us to detect anomalies relatively easy.
In addition to the telemetry tool, we use another tool which analyzes the source code from the server and breaks down understandably which classes and functions are called in which order - and how these affect the various hardware components. In a simplified way we can see which incoming requests take a long time, or are called too often - and where optimizations can be done. Unfortunately, the tool itself has not been in use that long, but it has already proven its worthiness and is now included in the quality assurance process.
With the help of this tool, we are currently revising each request in all constellations to check which ones may take too long. Those will be investigated further to see what can be improved. We do this step by step and the resulting performance optimizations will be deployed in several updates.
We have to admit that the old architecture was much faster and decently more stable because it relied on protocols that we cannot and do not want to use in the new game server anymore. The disadvantage was that we had a lot of servers in the old system and it had its technical limitations which for example did not allow us to implement specific new features. PHP also has its limits, but we know workarounds and – vice versa – how to get more out of it.
We have already achieved a lot of stability and performance improvements with the last updates, but we also see that we can still optimize in various areas and we will do so.