Special: Counter-Strike (Shooter)

von Joerg



Entwickler:
Publisher: Vivendi Universal
Release:
kein Termin
Spielinfo Bilder  
Basis Netzwerk

Der Server emuliert das Spiel in separaten Zeitschritten, genannt "ticks". Der Standard sind 66 ticks pro Sekunde, diese kann aber bei Modifikationen selbst spezifiziert werden. Zum Beispiel benutzt Counter Strike:Source eine niedrigere tickrate von 33 ticks pro Sekunde, um die CPU-Auslastung des Servers zu vermindern. Bei jedem tick bearbeitet der Server ankommende Client-Kommandos, lässt diese physisch simulieren, überprüft die Spielregeln und bringt alle Objektdaten auf den neuesten Stand. Nach der Simulation entscheidet der Server welcher Client ein Update der Weltdaten benötigt und macht falls nötig eine Momentaufnahme der aktuellen Weltdaten. Eine höhere tickrate erhöht die Präzision der Simulation, braucht aber wesentlich mehr CPU-Leistung und Bandbreite von Server und Client. Der Server-Administrator kann die tickrate mit dem Parameter -tickrate xx verändern. Diese Änderung wird aber nicht empfohlen, da hierduch die Modifikation nicht mehr so wie vorgesehen arbeiten kann.

Üblicherweise haben Clients eine limitierte Bandbreite. Im schlimmsten Falle kann ein Client mit einer Modemverbindung nicht mehr als 5-7 KB/Sek empfangen. Wenn der Server jetzt versuchen würde die Updates in einer höheren Datenrate zu versenden, wäre ein Datenverlust unvermeidlich. Deswegen muß der Client dem Server seine verfügbare Bandbreite mit der Variablen "rate" in bytes pro Sekunde angeben. Dies ist die wichtigste Netzwerk-Variable für Clients und muß für einen optimalen Datenfluss korrekt gesetzt werden. Der Client kann eine bestimmte Menge von Momentaufnahmen durch Änderung der Variablen "cl_updaterate" anfordern (Standard 20). Der Server wird aber niemals mehr Updates senden als simulierte ticks. Auch wenn durch die Höhe der Anforderung das Limit der Client rate überschritten wird, werden die Daten nicht gesendet. Server-Administratoren können das Datenvolumen mit den Variablen "sv_minrate" und "sv_maxrate" (in bytes pro Sekunde) limitieren. Auch die rate der Momentaufnahmen kann mit "sv_minupdaterate" und "sv_maxupdaterate" (jeweils in snapshots pro Sekunde) festgelegt werden.

Der Client erzeugt User Kommandos durch das Abfragen der Eingabegeräte mit der gleichen tickrate auf der der Server läuft. Grundsätzlich ist ein User Kommando eine Momentaufnahme (snapshot) des derzeitigen Statutes von Tatstatur und Maus. Aber statt bei jedem Kommando ein neues Paket zu senden, sendet der Client eine bestimmte Anzahl von Paketen pro Sekunde (Standard 30). Das bedeutet das 2 oder mehr User Kommandos im gleichen Paket versendet werden. Clients können die Kommandorate mit der Variablen "cl_cmdrate" erhöhen. Dies verbessert die Ansprechempfindlichkeit, benötigt aber auch eine höhere Bandbreite zum versenden.

Die Spieledaten werden per Delta Kompression verkleinert um die Netzwerkauslastung zu verringern. Das bedeutet, dass der Server nicht jedes Mal eine komplette Momentaufnahme der Welt versendet, sondern stattdessen nur die Daten, die sich seit dem letzten Snapshot verändert haben (einen sogenannten delta snapshot). Mit jedem Paket-Versand zwischen Client und Server werden die Datenpakete numerisch quittiert, um einen zeitlich korrekten Ablauf zu gewährleisten. Komplette (non-delta) Momentaufnahmen werden nur beim Spielstart versendet, oder wenn bei einem Client ein großer Paketverlust für mehrere Sekunden auftritt. Clients können eine komplette Momentaufnahme mit der Variablen "cl_fullupdate" anfordern.

Ansprechempfindlichkeit oder die Zeit zwischen User-Eingabe und der sichtbaren Aktion in der Spielwelt, werden von vielen Faktoren beeinflusst. Inklusive der Server/Client CPU-Auslastung, der Simulationstickrate, der Datenrate und den snapshot Einstellungen, aber am meisten von der Transferzeit der Datenpakete (Ping). Die Zeit die zwischen dem Versand eines Userkommandos vergeht bis dieses vom Server empfangen wird, nennt man Latenz, Ping oder round trip time. Niedrige Latenz ist ein maßgeblicher Vorteil in einem Online-Multiplayer-Spiel. Techniken wie Vorausberechnung (prediction), oder Lagkompensierung versuchen diesen Vorteil zu minimieren, um einen fairen Spielablauf für Spieler mit schlechteren Netzwerkanbindungen zu gewährleisten. Ein optimieren der Netzwerkeinstellungen kann ein besseres spielen möglich machen, wenn die erforderliche CPU-Leistung und Bandbreite vorhanden sind. Wir empfehlen die Standard Einstellungen, da Änderungen auch durchaus negative Effekte haben können.


 
Übersicht
Objekt Interpolation
Eingabe Voraussage
Lag Kompensation
Net Graph

       

          

Kommentare

Es gibt noch keine Kommentare zu diesem Thema!
schrieb am