Community

Shop

Statistics

Blog

03.02.2023
Producer's Note #9 Producer's Note #9

Mit der Einführung des neuen Backends sind wir auf unerwartete Probleme gestoßen, die sich negativ auf die Spielstabilität und -performance ausgewirkt haben. Wir wurden gefragt, wie wir solche Probleme angehen und wie wir sicherstellen wollen, ein möglichst flüssiges Spielerlebnis zu garantieren. Lasst uns ein wenig Licht ins Dunkle bringen.

Seit der Einführung des neuen Backends nutzen wir eine andere Architektur als zuvor. Wir arbeiten nun mit echten Datenbanken anstelle einer simplen CSV-Datei, um Daten besser abzuspeichern. Zusätzlich nutzen wir neue Technologien, die es uns erlauben, coole Features ins Spiel zu bringen, allerdings die Performance beeinflussen. Wir haben nun einen sehr modernen Server, der aber ganz anders funktioniert als mit dem alten Backend.

Es wurden bereits unzählige Maßnahmen getroffen, um die Serverstabilität zu verbessern, seit wir das neue Backend nutzen. Leider ist es nicht genug, einfach nur Code zu schreiben, der leicht zu verstehen ist. Unsere Entwickler müssen gleichzeitig sicherstellen, dass die CPU mit dem Code umgehen kann, dass der interne als auch der externe Netzwerkverkehr dadurch nicht überfordert wird und, dass die Festplatten aufgrund von zu vielen Anfragen nicht abstürzen. Dank unserer Systemadministratoren haben wir Zugriff auf ein sehr gutes Monitoring, welches Daten in einem Telemetrie-Tool anzeigt. Dies ermöglicht uns, Anomalien relativ einfach zu erkennen.

Zusätzlich zu dem Telemetrie-Tool benutzen wir ein anderes Tool, welches unseren Quellcode analysiert und detailliert darstellt, welche Klassen und Funktionen in welcher Reihenfolge ausgeführt werden – und wie sich dies auf die unterschiedlichen Hardwarekomponenten auswirkt. Einfach gesagt, können wir nun sehen, wie lange ankommende Anfragen brauchen oder zu oft abgefragt werden – und welche Optimierungen unternommen werden können. Leider ist das Tool noch nicht allzu lange im Einsatz, dennoch hat es sich schon ausgezahlt und ist fester Bestandteil der Qualitätskontrolle.

Mit der Hilfe dieses Tools überprüfen wir aktuell alle Anfragen in allen möglichen Konstellationen, um herauszufinden, welche davon zu lange brauchen. Diese werden weiter untersucht, um zu sehen, wo wir Verbesserungen durchführen können. Dies passiert Schritt für Schritt und die daraus resultierenden Performance-Verbesserungen werden in einzelnen Updates ausgerollt.

Wir müssen zugeben, dass die alte Architektur wesentlich schneller und deutlich stabiler war, da es auf Protokollen basierte, die wir allerdings mit dem neuen Server nicht mehr nutzen können und wollen. Der Nachteil war, dass wir sehr viele Server im alten System benötigten und wir auf technische Einschränkungen gestoßen sind, aufgrund derer wir beispielsweise keine neuen Features implementieren konnten. PHP hat auch seine Einschränkungen, jedoch kennen wir dafür Workarounds und – umgekehrt – wie wir mehr aus der Technologie rausholen können.

Mit den letzten Updates wurden bereits viele Stabilitäts und Performanceverbesserungen erreicht, wir sehen aber noch in vielen Bereichen Möglichkeiten, weitere Verbesserungen umzusetzen und das werden wir auch tun.

Psst...!

Filter/Search