Originaltext von "The Right Hand" aka Kayd Hendricks: https://survivetheark.com/inde…technical-talk-about-why/
"Hey Leute, das war wirklich ein verrückter Tag, nicht wahr?
Kommen wir gleich zur Sache:
Das hier ist eine Profilingausgabe aus einem lustigen kleinen Tool, welches den Server analysiert und jeden Thread analysiert, der gerade läuft. Es tut viel mehr als das, aber das ist es, was ihr wissen müsst, um das Folgende zu verstehen:
Gesamtdauer 765.60 MS 1.31 FPS
StrukturTurretBasisBP_C: 7977 234.98 MS
StrukturTurretPlant_C: 9722 119.4 MS
Das sind die Turrets. BaseBP ist ein normaler Metallturret. Plant ist SpeciesX.
Nun, mit diesen Informationen, benötigt ihr noch andere Informationen:
Seit etwa Oktober bemerkten wir eine MASSIVE Spitze in der Größe der Abstürze und schlechten Performance auf unseren dedizierten Servern, aber nur einige von ihnen, die meisten davon auf den Ragnarok-Servern.
Wir untersuchten es und fanden heraus, dass sich eine interessante Veränderung in der Meta des Basenbaus vollzogen hatte: Die Leute bauten neue, superdichte Basen mit wahnsinnigen Anzahlen an Turrets, die weit über alles hinausgingen, was wir je zuvor gesehen hatten. Die Basen dieser Typen befanden sich auf allen unseren Servern, gehörten aber in erster Linie Alpha Tribes, die auf den Ragnarok-Servern Stützpunkte eingerichtet hatten. Ähnliche Setups verursachten in den seltenen Fällen, in denen wir sie gefunden haben, eine ebenso schlechte Performance auf den The Center- und The Island-Servern.
Ich möchte, dass ihr versteht, was uns das alles bedeutet. Ich werde mich kurz fassen.
Turrets wurden urplötzlich in einer Konfiguration verwendet, die atypisch war, da die bis zu 7-fache Menge verwendet wurde, die wir bisher auf jedem anderen Server gesehen hatten, selbst wenn es sich um einen stark bevölkerten, gut frequentierten Server handelte. Es gab definitiv andere Fälle von dicht bebauten Basen, aber das hier war um ein vielfaches höher.
Lasst mich nun betonen, dass uns die Turrets in den letzten zwei Jahren ziemlich auf die Nerven gegangen sind, wir aber nicht mit den Menschen konfrontiert worden sind, die solche Ungeheuerlichkeiten geschaffen haben. Jeder Alpha Tribe im Spiel kam gut damit klar und kam vor allem ohne diese wahnsinnig dicht bebauten, verrückten Basen aus.
Also haben wir uns angesehen, was wir dagegen tun können. Lasst mich dass alles zusammenfassen, denn diese Dinge, die ich hier zusammenfassen werde, sind Fakten:
Unsere Turrets sind in hohem Grade für das optimiert, was sie im Gameplay tun. Sie verwenden einen sehr schnellen bitmaskierten, überlappenden Octree, um alle spezifischen Arten von Kreaturen und Spielern in der AoE, zu verteidigen, und handeln dann entsprechend nach den Einstellungen, nach denen sie konfiguriert worden sind. Wir könnten das Gebiet, in dem sie suchen, kleiner machen, was schneller wäre, aber dann würden sie eine entsprechend kleinere Reichweite haben.
Wir könnten sie dazu bringen, in ihrer Überlappungsprüfung nach weniger Kreaturen und Spielern zu suchen, aber dann hätttet ihr Turrets , die nicht auf alles feuern würden.
Wir könnten sie dazu bringen, weniger häufig Ziele zu erfassen, aber dann wären sie viel weniger genau und würden in vielen Fällen Dinge wie Raketengeschosse, die zwischen den Scans in ihre Reichweite gelangen, nicht erfassen.
Wir könnten sie dazu bringen, in verschiedenen Bereichen nach verschiedenen Kreaturen und Spielern zu scannen, aber dann wäre ihre Funktionalität merkwürdig mehrdeutig und wofür würden wir den Scanbereich ohnehin reduzieren? Alles, worauf ein Turret schießen sollte, ist wichtig.
Zusätzlich zu all dem, würden sich die Per-Frame Kosten der Turrets nicht großartig verringeren (nur Bruchteile von Millisekunden) und 15k+ Turrets würden den Server nach wie vor lahm legen.
Eine andere Wahrheit ist, dass im schlimmsten Fall die Server mit nur noch 1 Frame pro Sekunde laufen würden. Das bedeutet, dass der Server, egal was du im Spiel siehst, mit nur 1 Bild pro Sekunde den gesamten Spielstand aktualisieren kann. Das ist das Schlimmste, was unseren Server wiederfahren kann, und macht sie so in völliger Hinsicht unspielbar.
Egal wer du bist, ich denke, dass du mir zustimmen wirst, dass es nicht angenehm ist das Spiel so zu spielen.
Als solche stehen wir mit folgendem Dillema da:
Wir können die Anzahl der Turrets, die Spieler platzieren können, reduzieren und versuchen, einen Teil des Leistungsverlustes, der durch sie verursacht wird, wiederzugewinnen, oder wir können nicht bzw. wir können versuchen, ein Medium zu finden, wo wir so viel Leistung wie möglich einzusparen, während wir den Spielern immer noch erlauben, sich selbst zu verteidigen.
Auf einem Server mit 70 Leuten, die darauf spielen, ist dass die neue Framerate auf dem Server, nachdem wir die Turretdichte reduziert haben:
Gesamtdauer 222.86 MS 4.5 FPS
Nun, das ist ein Worst-Case-Szenario, aber der Unterschied ist für uns eindeutig, und eines dürfen wir auf keinen Fall vergessen: Die Auswirkungen, die Server mit 1 FPS auf alle Spieler jener Server haben. 4-5 FPS ist im Grunde spielbar - es kann ein wenig holprig sein, aber es ist nicht unmöglich.
Okay, wenn du immer noch bei mir bist, dann verstehst du, was diese rohen Zahlen bedeuten, die gezeigt worden sind. Anbei noch eine Zusammenfassung für jene, die nicht alles gelesen haben:
Eine bestimmte Methode Basen mit Turrets zu errichten führte dazu, dass die FPS der Server auf einen historischen Tiefststand absackten. Der Täter sind unbestreitbar die Turrets: In einigen Fällen kosten sie 400 bis 500 ms pro Frame auf dem Server. Unsere Turrets sind bereits sehr gut optimiert, aber die Spieler platzieren Zehntausende von ihnen. Dass sind zu viele. Unsere Änderungen zeigten eine Veränderung von 1.1 auf 4.5 FPS. Deren Zahl zu reduzieren war nun keine Frage des "ob", sondern eher des "wie viele".
Nun, was machen wir eigentlich?
Wir versuchen es zu lösen. Und wir versuchen, darüber zu reden, wie wir es am besten lösen. Gibt es einige Randfälle, mit denen wir es zu tun haben? Sicher. Müssen wir vielleicht das Balancing einiger anderer Dinge korrigieren? Wahrscheinlich. Wir werden es euch einige Zeit im Voraus mitteilen. Damit ihr frühzeitig Entscheidungen treffen könnt. Schreit uns an, und lasst uns wissen, welche Dinge euch wichtig sind, an die wir vielleicht nicht denken... Hunderttausende von Menschen spielen dieses Spiel bei all den möglichen verschiedenen Möglichkeiten jeden Tag, können wir einfach nicht wissen, welche Wege und Varianten es gibt.
Jetzt kennt ihr die technischen Probleme, mit denen wir konfrontiert sind. Es gibt keine andere Möglichkeit, um 500ms Server-Zeit zu "sparen" und belassen die Turrets nun so wie sie sind. Es gibt keine Möglichkeit die Turrets auf sinnvollere Weise schneller zu machen, ohne die Turrets in ihrer Funktion grundlegend zu verändern.
Als eine weitere, wichtige Anmerkung möchte ich hinzufügen, dass diese Änderungen alle bereits vorhandenen Turrets nun viel genauer und zuverlässiger schießen lässt, was zuvor, aufgrund der niedrigen FPS, ebenfalls nicht der Fall war. Eine ziemlich kompliziertes Problem.
https://gyazo.com/e307c4f0324ee5fc239862ace0365c38
Das ist eine Grafik der Pingzeiten unserer schlechtesten Server, direkt aus unserem Backend. Eine Delta-Zeit von 500 bedeutet einfach, dass der Server mit 2.5 FPS läuft (er kann eigentlich noch langsamer laufen als der, aber dass ist das Niedrigste, was unser Programm aufzeichnet).
PC-Server sind weit, weitaus schlechter dran als Konsolenserver, wegen ihres wesentlichen höheren Caps bei allem, und jeder einzelne dieser Server leidet enorm unter dieser "turmverursachten" Verlangsamung. PvE kommt nicht mal annähernd an dieses Problem heran. Von den 150 langsamsten Servern, die wir haben, sind gerade einemal nur 15 davon PvE-Server. Es ist ein reines PvP Problem, und es ist wirklich schlimm. Die Behauptung, dass PvE-Server schlechter laufen, ist nicht wahr. Es ist ein Mythos.
Also, lasst uns darüber reden. Ich werde dass hier nun so posten, und dann werde ich mich hinsetzen und versuchen etwas zu Abend zu essen, und wenn ich vom Abendessen zurückkomme, werde ich mehr von dem lesen, was die Spieler zu sagen haben. Wir möchten, dass ihr immer noch in der Lage sein werdet, eure Basen und all die Dinge zu verteidigen, für die ihr so viel Zeit in Anspruch genommen habt. Wir möchten aber auch, dass ihr das Spiel mit mehr als 1 FPS spielen könnt.
- The Right Hand"