In dem folgenden Beitrag geben wir ihnen einen kurzen Überblick über die Performance des Source Engine Servers.

Performance Source Engine Servers

Was versteht man unter einer Tickrate?

Bei jedem Tick verarbeitet der Server eingehende Benutzerbefehle, führt einen phsikalischen Simulationsschritt aus, überprüft die Spielregeln und aktualisiert alle Objektzustände. Nach der Simulation eines Häkchens entscheidet der Server, ob ein Client ein World-Update benötigt und macht ggf. eine Momentaufnahme des aktuellen Wertzustandes. Eine höhere Tickrate erhöht die Genauigkeit der Simulation, erfordert aber auch mehr CPU-Leistung und verfügbare Bandbreite auf Server und Client.“

Quelle: Valve Developer Wiki.

Wie wirkt sich die Tickrate auf die Leistung aus?

Da die Erhöhung der Tickrate die Anzahl der Simulationen, die ein Server in einem bestimmten Zeitrahmen ausführt, erhöht, ermöglicht sie es dem Server, Client-Interaktionen mit der Welt mit einer höheren Rate zu verarbeiten. Das Ergebnis, die Spielerperspektive, ist eine reaktionsschnellere Welt, die wiederum zu einer besseren Registrierung führen kann.

Eine erhöhte Tickrate ist jedoch nicht ohne Probleme, da sie Fehler bei den Aspekten der Simulation verursachen kann, die Annahmen über die Tickrate treffen.

Bekannte Nebenwirkungen der erhöhten Tickrate über dem Standard sind:

  • Türen öffnen und schließen schneller als sie sollen.
  • Spieler stottern beim Auftreten auf den Boden.
  • Abschussmechanismen bestimmter Waffen, die nur schwer zu kontrollieren sind.

Aufgrund dieser Probleme hat Valve diese Option aus der Möglichkeit entfernt, die Tickrate im OrangeBox Engine Update zu ändern. Das bedeutet zwar, dass die damit verbundene Leistungssteigerung nicht mehr erreicht werden kann, aber wir sind sicher, dass jeder zustimmen wird, dass die Beseitigung dieser Fehler die richtige Entscheidung ist.

Was versteht man unter Server FPS?

Server FPS ist ähnlich wie die Tickrate, aber anstatt die Anzahl der Simulationen, die der Server pro Sekunde ausführt, zu ändern, beeinflusst es die Häufigkeit, mit der der Server prüft, ob er einen neuen Tick ausführen muss. Ein gängiges Missverständnis ist, dass man unter FPS versteht, wie oft pro Sekunde der Server die Simulation berechnet. Das ist aber in unserem Verständnis nicht der Fall, das ist die Tickrate.

Dies bedeutet, dass die Genauigkeit des Server-Ticks im Einklang mit dem Server-FPS erhöht wird, das Ergebnis ist ein glatteres und vorhersehbareres Gameplay, das für Server, die für Turnier- und Wettkampfspiele verwendet werden, entscheidend ist.

Server FPS Limits.

Standardmäßig ist die maximale FPS, die von der Source Engine unterstützt wird, durch die Betriebssystemfunktion begrenzt, die sie verwendet, um zwischen den Ticks zu „sleepen“. Diese Sleeps sind eigentlich eine feste Zeitspanne, was bedeutet, dass ein Server-FPS aufgrund der geringen Zeitunterschiede bei der Verarbeitung jedes Ticks schwankt, was zu einem Verlust an Glätte und damit zu einer verminderten Treffergenauigkeit führt.

Server-FPS verbessern.

Um die maximale FPS, die die Source Engine unterstützt, zu erhöhen, hat Multiplay ein Addon entwickelt, das die von der Engine verwendeten Timing-Berechnungen ersetzt, was die Genauigkeit der Engine-Ticks deutlich verbessert. Diese erhöhte maximale FPS gibt Multiplay Match Servern ein flüssigeres Gameplay und eine unübertroffene Hit-Registrierung.

Wie bei der Standard-Timing-Methode, variiert die Gesamtzeit zwischen den Ticks, was zu einer Instabilität der Framezeit führt. Diese Methode ist auch anfällig für Schlafstörungen aufgrund der verwendeten ungenauen Timing-Funktion, die den Gesamtfehler weiter erhöht.

Die Methode Multiplay eliminiert diese beiden Probleme erstens durch eine genauere Timing-Methode und zweitens durch die Umsetzung einer Tick-Berechnungszeitkorrektur. Sie sehen schon in diesem kleinen Vergleich, dass unsere Methode zu höheren und stabilerem FPS führt, was perfekt für den Matchserver ist.

Monitoring der Serverleistung.

Net_graph 4

Die neue Orangebox-Engine unterstützt einen zusätzlichen net_graph-Typ, der einige nützliche Informationen über die Serverleistung enthält.

Um dies auf ihrem Client zu aktivieren, geben Sie „net_graph 4“ in die Konsole ein. Nach der Aktivierung zeigt ihr net_graph 4 sowohl die Server fps „sv“ als auch die Standardabweichung der Frametime „var“ des Servers an.

Grenzen von net_graph 4.

Die Verwendung von net_graph 4 eignet sich hervorragend für die Überwachung von Standard-FPS-Servern, leider ist die Berechnung für die Anzeige von Server fps „sv“ in net_graph 4 auf eine dreistelligen Zahl beschränkt. Dies bedeutet, dass dieser Wert bei Verwendung auf Hochleistungs-Match-Servern, die mit über ca. 990 fps laufen, bedeutungslos wird, da er einfach falsch angezeigt wird.

Der Grund dafür ist die Tatsache, dass der Client bei der Aktualisierung seiner internen Darstellung des Servers fps auf der Grundlage dessen, was er vom Server erhalten hat, folgenden Code verwendet:

Copy to Clipboard

Das Ergebnis dieses Codes ist im Wesentlichen, dass der Client den Wert für den letzten überwachten Server-Frame anzeigt, dessen Generierung mehr als 0,00101 Sekunden gedauert hat, was ca. 990fps entspricht.

Angesichts dieser Einschränkung ist es wahrscheinlich, dass ein wirklich leistungsstarker Server häufige Zufallswerte für den FPS-Server anzeigt, da er die meiste Zeit über diesem Schwellenwert verbringen wird und daher mehr Werte ignoriert werden. Dies erklärt auch, warum sich der Wert häufiger ändert, wenn der Server mehr Disk-Access verwendet, was leicht dazu führen kann, dass die Erzeugung eines Frames länger dauert.

Dieser tatsächliche Effekt dieser Berechnung/Anzeige variiert mit zunehmenden FPS. 1000 FPS-Server springen oft schnell umher, manchmal sogar wild mit 0 bis 20 fps. 2000 FPS-Server können auch gesehen werden, um herum zu springen, aber neigen dazu, bei Werten für längere Zeit zu bleiben. 10000+ FPS Server neigen dazu, mit weniger Änderungen auf einen Wert zu klemmen z.B. 15,980.4 oder 990.1.

Dies kann bestätigt werden, indem der Wert von „var“ überprüft wird, der die fps-Variation anzeigt und genau zu sein scheint, sowie die Ausgabe des Befehls „rcon stats“, der auch eine genaue Darstellung der Server fps ist.

Die folgenden Grafiken zeigen die Ergebnisse, die Sie bei verschiedenen FPS-Werten auf Hochleistungs-Servern erwarten würden. Wie man sieht, geht der „sv“-Wert nie über 999, aber „var“ bleibt konstant niedrig, was bedeutet, dass der erreichte FPS nicht sehr stark variiert, was sehr wichtig ist.

Eine Sache, auf die man achten sollte, sind Server, die einen hohen „var“-Wert haben, da dies entweder auf ein ungenaues Timing oder eine Überlastung der Engine hindeutet.

– grau –

Wichtige Hinweise.

Der von „sv“ in net_graph 4 angezeigte Wert scheint empfindlich auf Änderungen des Ventils zu reagieren, die Informationen in diesem Handbuch sind ab dem 16.07.2010 korrekt. Um die angezeigten „sv“-Werte zu wiederholen, handelt es sich um einen Fehler mit der Fähigkeit von net_graph 4, die FPS dieser Server korrekt zu berechnen / anzuzeigen und es hat keinen Einfluss auf die tatsächliche Leistung des Servers.

Rcon Statistik.

Der Befehl rcon „stats“ ist der primäre Weg, um die FPS ihres Servers zu überprüfen. Wenn Sie dies manuell verwenden, wenn Sie über ihren Client eingeloggt sind, ist es eine gute Möglichkeit, einen schnellen test durchzuführen, aber es ist auch nützlich, erweiterte Tests auf ihrem Server durchzuführen, um sicherzustellen, dass der FPS konstant hoch und stabil ist. Für Langzeittests ist der Einsatz eines externen Tools erforderlich, wie z.B. des Tools, das unter dem folgenden Link zu finden ist. Es ist einfach einzurichten und ermöglicht es ihnen, eine schöne Grafik ihrer Server FPS im Laufe der Zeit zu sehen.

Hinweis: Server erreichen nie eine Zeit von 100% bei dem angegebenen FPS, so dass es in Ordnung ist, kurze Tropfen in den Diagrammen zu sehen, die von Statistik-Überwachungstools erstellt wurden. Dies kann zu Map-Änderungen und Neustarts führen, die zu FPS-Verlusten und verpassten Werten führen. Das ist kein Grund zur Besorgnis und ist normal.

Vielen Dank für das Lesen dieses Leitfadens. Wir werden auch in Zukunft weiterhin über die Source Engine berichten.