Lag Compensation

Bei einem Online-Shooter wie CS:GO, bei dem es sehr auf Präzision ankommt, sind viele komplexe technische Mechanismen nötig, die das Spielgeschehen steuern und für alle Spieler faire Bedingungen schaffen. Einer dieser Mechanismen ist die Lag Compensation, die zwar bei vielen Spielern nicht gerade beliebt ist, aber trotzdem ihre Daseinsberechtigung hat. Was die Lag Compensation in CS:GO genau macht und warum sie unverzichtbar ist, wird in diesem Artikel näher erläutert.

Was ist Lag Compensation?

Wenn mehrere Spieler zusammen auf einem Server spielen, hat jeder eine unterschiedlich gute Verbindung. Sei es, weil die Distanz zum Server verschieden ist oder die Spieler unterschiedlich schnelle Internetverbindungen haben. Jeder hat einen anderen Ping. Das ist die Verzögerung, bis Daten vom Server beim Spieler ankommen.

Die verschiedenen Voraussetzungen würden normalerweise zu einem Ungleichgewicht führen, da Spieler mit einem schlechteren Ping einen deutlichen Nachteil hätten. Aber sogar Spieler mit einem relativ guten Ping würden unter einer fehlenden Lag Compensation leiden.

Um zu erklären, warum das so ist, stellen wir uns folgende Situation vor: Du siehst einen anderen Spieler, zielst auf ihn und drückst ab. Diese Information wird nun als Datenpaket an den Server geschickt: Fadenkreuz war auf Position xy und die Waffe wurde abgefeuert. Während das Paket auf dem Weg zum Server ist, simuliert dieser aber das Spielgeschehen weiter. In der Zwischenzeit hat sich der Gegenspieler schon weiter bewegt und befindet sich nun an einer ganz anderen Position.

Wenn der Server die Information über den abgegebenen Schuss bekommt und die Position des Fadenkreuzes mit der des Gegenspielers vergleicht, dann wird er den Treffer gar nicht anerkennen. Schließlich steht der Gegenspieler nicht mehr da, wo er war, als der Schuss abgegeben wurde. Und genau dieser Fehler wird von der serverseitigen Lag Compensation ausgeglichen.

Technische Veranschaulichung

Mit folgendem Bild aus Counter-Strike: Source kann man sich diesen Mechanismus visuell besser vorstellen. Die darauf gezeigte Situation wurde künstlich hergestellt, um den Effekt zu verdeutlichen.

Darauf siehst du eine Spielfigur und die dazugehörige Hitbox – eigentlich sogar zwei Hitboxes. Die rote Hitbox zeigt an, wo der Spieler die gegnerische Spielfigur auf seinem Monitor gesehen hat, als er abgedrückt hat. Der rote Punkt auf Höhe des Fadenkreuzes ist der Treffer, der später auch so gewertet wird. Bis die Information über den abgegebenen Schuss beim Server angekommen ist, befindet sich die gegnerische Spielfigur aber schon dort, wo sie auf dem Screenshot auch wirklich zu sehen ist.

Bei diesem Beispiel wurde künstlich eine Verzögerung von 200 Milisekunden hergestellt. Der Server, der nun die Information über den abgegebenen Schuss erhalten hat, geht also in der Zeit zurück (in diesem Fall 200ms) und stellt die serverseitige Position des gegnerischen Spielers zu diesem Zeitpunkt wieder her. Das ist die blaue Hitbox. Der Server erkennt, dass es ein Treffer war und kann diese Informationen nun auch an den gegnerischen Spieler ausliefern.

Zu welchem Zeitpunkt der Server das vom Spieler erhaltene Kommando ausführen muss, also wie weit er in der Zeit zurückgehen muss, errechnet er sich mit folgender Formel:

Command Execution Time = Current Server Time - Packet Latency - Client View Interpolation

Das bedeutet der Server addiert den Ping und die Interpolationszeit und geht um diesen Wert in der Zeit zurück, um die erhaltenen Informationen auszuwerten.

Nachteile durch Lag Compensation

Jetzt stellst du dir vielleicht die Frage, warum sich die Position der roten und der blauen Hitbox auf obigem Screenshot unterscheidet, obwohl sie doch eigentlich exakt gleich sein müsste!? Das sind leider kleine Präzisionsfehler in der Berechnung, mit denen man leben muss. Diese hängen hauptsächlich davon ab, mit welcher Tickrate der Server läuft und wie schnell sich Objekte in der Spielwelt bewegen. Die serverseitige Treffererkennung stößt dabei an ihre Grenzen und ist leider nicht auf den Pixel genau.

Dazu kommt ein zweiter Nachteil. Eine Erfahrung, die du sicher auch schon gemacht hast: Du bist eigentlich schon um die Ecke und in Sicherheit, aber trotzdem wirst du vom Gegner getroffen. Hat der Gegner etwa magische Kugeln, die um Ecken fliegen können? Nein, hat er nicht. Für dieses Szenario ist die Lag Compensation verantwortlich.

Zwar warst du auf dem eigenen Bildschirm bereits in Sicherheit, der Gegner erhält diese Information aber mit einer kleinen Verzögerung. Bei ihm warst du noch nicht um die Ecke und er hatte freie Schussbahn. Es war also trotzdem korrekt vom Spiel den Treffer zu werten, auch wenn man sich manchmal darüber aufregen könnte. Aber du profitierst natürlich selbst genauso von diesem Effekt, je nach Spielsituation eben.

Warum braucht CS:GO die Lag Compensation?

Trotz der damit einhergehenden Widersprüche und Paradoxa bleibt die Lag Compensation ein wichtiger Mechanismus, der seine Daseinsberechtigung in CS:GO hat. Diese Latenzkorrektur ermöglicht es, dass jeder Spieler auf seinem Bildschirm genau da hinzielen kann, wo er die Gegner sieht und dabei auch etwas trifft.

Jeder Spieler hat praktisch seine eigene Instanz des Spielgeschehens und trotzdem funktioniert das gemeinsame Spielen ohne Beeinträchtigung. Ohne diese Korrektur wäre das nicht möglich: Du würdest nicht treffen, wenn du auf den Gegner zielst. Stattdessen müsstest du immer vorauszielen, abhängig von der Latenz zum Server.

Aber könnte die Trefferekennung nicht auch clientseitig durchgeführt und dann eine entsprechende “Treffer-Information” an den Server schickt werden!? Theoretisch wäre das möglich, damit würde man aber Cheatern die Türe öffnen. Grundlegend gilt, dass der Server den Clienten bei solchen wichtigen Informationen nicht trauen kann. Die Datenpakete könnten über Umwege geleitet und dabei manipuliert werden – selbst VAC wäre dagegen machtlos.

Durch die Lag Compensation bekommt jeder Spieler ein stimmiges Spielgefühl. Zwar treten hin und wieder unlogische Spielmomente auf (z.B. wenn du scheinbar um die Ecke getroffen wurdest), aber alle Spieler profitieren davon und leiden darunter gleichermaßen. Insgesamt überwiegen die Vorteile deutlich die manchmal auftretenden Paradoxa.

Ob es einem gefällt oder nicht, die Lag Compensation wird in CS:GO also unbedingt gebraucht. Würde es sie nicht geben, dann hätten wir stattdessen andere absurde Szenarien im Spiel.