Von kuschelnden Skeletten und fallenden TPS

Die letzten Tage hatten wir mit einigen Problemen in Sachen Performance zu kämpfen. Wie es dazu gekommen ist, was jeder von euch dagegen tun kann und was kuschelnde Skelette damit zu tun haben, solltet ihr hier unbedingt nachlesen!

Es ist wie ein Abend von vielen. Der einzige Unterschied: Es sind 24 Spieler auf dem Survival-Server unterwegs, das grenzt schon fast an Jahres-Rekord. Besorgt beobachte ich die Leistungsdaten des Servers. Die TPS fallen ab, zuerst sind es noch 18 Ticks in der Sekunde. Dann erreichen wir den Tiefstand: 15 TPS. Mobs starren leblos durch die Welt, Redstone-Schaltungen verlangsamen sich und Items wandern nur zögerlich durch Trichter.

Warum aber ist das passiert? Dieser Frage bin ich die letzten Tage nachgegangen und teile mit euch das Ergebnis. (Das bedeutet, ihr erfahrt, wie ihr euren Teil zu einer besseren Performance beitragen könnt 😉 Wer keinen Bock auf den ganzen Text hat sollte sich zumindest das Fazit durchlesen.)

Doch beginnen wir erst einmal mit etwas Grundlegendem.

Was sind Ticks per Second (TPS)?

Spiele basieren auf einem sogenannten Game-Loop. Eine Schleife, die ständig durchlaufen wird, um alle für den Spielablauf notwendigen Berechnungen abzuarbeiten. Hier werden Physik, KI, Spieler (Position, Interaktion), usw. berechnet.

Ein Durchlauf in Minecraft wird hierbei „Tick“ genannt und benötigt dabei im Idealfall 50 Millisekunden, also 1/20 Sekunde. Somit sind also 20 Ticks in der Sekunde (20 TPS) der Sollwert, den wir jederzeit anpeilen sollten.

Schafft es der Server nicht, alle Berechnungen innerhalb von 50ms durchzuführen, sinken die TPS ab. In der Praxis sollten sich die TPS zwischen 19 und 20 TPS einpendeln, um einen reibungslosen Spielablauf zu gewährleisten.

Und was ist mit den FPS?

PotatoPC 3000 – mit extra Stärke-Prozessor. Beliebtes Low-Budget-Modell.

Nun ja… wie soll ich es ausdrücken? Die sind uns vollkommen egal. FPS (Frames per Seconde, Bilder pro Sekunde) sind abhängig von eurem Computer und somit individuell für jeden von euch. Lagt es bei euch wegen den FPS, solltet ihr die Grafikeinstellungen niedriger stellen oder nicht auf einer Kartoffel spielen. Fazit: Lags sind oftmals auch gar nicht die Schuld des Servers, sondern die eures Computers.

1.13 ist schuld!

… zumindest in Teilen. Mit der Version 1.13 von Minecraft hat sich richtig viel getan, auch im Hintergrund! Leider hat dies zur Folge, dass die Leistung derzeit noch deutlich hinter der Vorgängerversion liegt. Und genau das hatten wir an dem verhängnisvollen Abend auch zu spüren bekommen. Glücklicherweise gibt es von unserer Serversoftware auch ein abgezweigtes Projekt, welches sich Performance auf die Fahne schreibt. Dort sind viele Kniffe eingearbeitet, die die Leistung wieder auf das Level der Version 1.12 hievt. Seit einigen Tagen nutzen wir nun die alternative Server-Software und sie bietet uns neben besserer Performance auch deutlich mehr Anpassungen und Analysetools, um den flüssigen Betrieb einfacher sicher zu stellen.

Doch dann kam Baftli…

Ein Screenshot der Statistik zu Baftlis Farm. Rot/Orange (TPS Loss) ist schlecht und sollte möglichst tief bleiben. Grün sind die TPS und die sollten möglichst weit oben liegen. Man sieht den Abfall der TPS deutlich, nachdem die Farm aktiviert wurde.

Am Sonntag versammelte sich das Team zur Teambesprechung. Mit auf der Agenda: Baftlis Skelett-Farm. Dieses Meisterwerk (völlig ironiefrei!) besteht aus insgesamt 18 Fallschächten, die nacheinander automatisiert verschlossen werden, sobald sich die maximale Anzahl an Skeletten in der 1×1 Block großen Kammer angesammelt haben (24 Stück, wenn mehr Mobs ineinander stecken, wird einer davon getötet). Wir aktivierten die Farm um uns das Spektakel anzusehen. Nach und nach plumpsen die knöchernen Gestalten in den ersten Schacht. Dann verschließt sich dieser und der nächste Schacht ist dran. Nebenher beobachtete ich die TPS und ACH DU MEINE GÜTE! VON 19,5 TPS SIND WIR SCHON AUF ETWAS 18 GESUNKEN! Als der dritte Schacht sich zu füllen begann, lagen wir bei unter 15 TPS – das ist nicht mehr hinzunehmen und mindert den Spielspaß!

Warum aber passiert das bei einer relativ geringen Anzahl von Mobs? So recht wissen wir das auch nicht, wir vermuten aber, dass es die Kollisionsabfragen und dazugehöriger Behandlung ( = abstoßende Kräfte) der ineinander steckenden Skelette sind, die den Gametick so gravierend verzögern.

Das Ergebnis dieser Untersuchung: Baftlis Farm musste zurückgebaut werden. (Sorry! Aber ganz großes <3 für deine Meisterleistung, immerhin sind wir dank dir eine Erfahrung reicher!)

Fazit

Auch übergroße Tierfarmen nagen an der Leistung. Hier ca. 800 Schafe.

Nun komme ich aber zum Schluss. Ich möchte hier jeden Spieler daran erinnern, dass, so spaßig Mobfarmen und Redstone auch sind, ihr mit anderen zusammen spielt. Wenn jeder seinen Drang zum Loot-Größenwahn völlig ausleben würde, wäre der Spielfluss ein völliger Rohrkrepierer. Denkt daran: Ihr seid nicht alleine.

Baftlis Farm konnte alleine schon 24 x 18 = 432 Skelette aktiv auf dem Server halten. Auf einem vollen Server haben wir etwa 5000 Entities, also Mobs und Tiere aktiv. Baftlis Farm hätte unter Vollast gute 8 Prozent der gesamten Entities ausgemacht! Stellt euch vor, jeder Spieler hätte eine solche Farm aktiv! Noch viel schlimmer ist es, dass die Farm mit nicht einmal 3 x 24 = 72 Skeletten den Server in die Knie gezwungen hat.

Daher die Bitte: Versucht so wenig Mobs und Tiere aktiv zu halten, wie möglich. Gebt ihnen möglichst viel Freiraum, um Kollisionen zu vermeiden. Besonders das „ineinander buggen“ sollte vermieden werden und vorzugsweise nur den Fallschächten von Mobfarmen vorbehalten sein. Wir appellieren hier an eure Vernunft, denn wenn die Problematik sich nicht von alleine löst, müssen wir unsere Regeln zugunsten der Performance anpassen. Und das will vermutlich auch niemand. 🙂

 

 


Kommentare

Es sind noch keine Kommentare vorhanden :(

Du bist angemeldet als {{name}}.

{{ error }}{{ statusmessage }}

Du brauchst einen richtigen Editor? Schreibe deinen Kommentar im Forum!

Bitte melde dich an um einen Kommentar zu verfassen.