Verzögerungen in Online-Spielen durch Client-Side Prediction kompensieren

Seite 5: Fazit

Inhaltsverzeichnis

Die Client-Side Prediction mindert das Problem von Latenz in Multiplayer-Spielen, indem es dem Spieler das Gefühl vermittelt, dass seine Eingaben direkt die Spielfigur beeinflussen. Durch das direkte Feedback kann er seine Figur einfacher steuern.

Der Server hat dabei allerdings weiterhin die Autorität über den Weltzustand, wodurch sich Cheatern keine weiteren Zugriffspunkte präsentieren, um sich einen unfairen Vorteil zu verschaffen. Die verschiedenen Zustände auf den Clients und dem Server haben aber eine Reihe von Konsequenzen, die bei der Umsetzung zu beachten sind. Das größte Problem stellt die Korrektur auf den Clients dar, die nötig ist, sobald der Zustand der Figur von dem auf dem Server hinterlegten abweicht. Hier besteht die Herausforderung darin, eine Korrektur vorzunehmen, ohne dass es der Spieler merkt.

Bei Kartuga, einem Multi-Player-Action-Spiel bei dem der Spieler ein Schiff steuert, wurde erfolgreich lineare Interpolation zwischen dem Client- und dem berechneten Serverzustand eingesetzt, um die Korrektur so subtil wie möglich vorzunehmen.

Daneben haben die unterschiedlichen Zustände auf den Clients durchaus geringe spielerische Auswirkungen, wie ein Vergleich in Call of Duty Black Ops aus der Sicht des Spielers und der des Zuschauers zeigt. So ärgerlich derartige Auswirkungen sind, wenn sie zum Beispiel zu einem verpassten Treffer auf einen Gegner führen, muss man sich immer die Alternative vor Augen halten. Eine verzögerte Ausführung der Eingaben auf der eigenen Spielfigur würde zu einem wesentlich schlechterem Spielerlebnis führen.

Daher ist Client-Side Prediction seit langem De-facto-Standard in aktionsreichen Multiplayer-Spielen. Auch wenn die Steuerung der Figuren das Kernproblem darstellt, so lassen sich die Methoden ebenfalls in anderen Bereichen einsetzen. So können Projektile beim Feuern einer Waffe bereits beim Abdrücken losfliegen; Einheiten in einem Echtzeitstrategiespiel direkt loslaufen; eine Kampfanimation lässt sich abspielen, bevor die Bestätigung der Aktion erhalten wurde, und so weiter.

Sehr gute englische Artikel zu den Grundlagen der genannten Techniken finden sich auch im Internet (z.B. Gabriel Gambettas Client-Side Prediction and Server Reconciliation und Glen Fiedlers What every programmer needs to know about game-networking). Außerdem steht der Autor bei weiteren Fragen gerne zur Verfügung.

Christian Oeing
hat sich
nach seinen Stationen bei Spellbound (ArcaniA - Gothic 4) und Ticking Bomb Games (Kartuga) mit Slash Games selbstständig gemacht. Dort entwickelt er gemeinsam mit Nick Prühs eigene und beauftragte Browser- und Mobile Games. (jul)