Multiplayer: Unterschied zwischen den Versionen

Aus Das Sopra Wiki
Greitschus (Diskussion | Beiträge)
Greitschus (Diskussion | Beiträge)
Zeile 17: Zeile 17:
* Mit Server Socket verbinden
* Mit Server Socket verbinden
* Daten gemäß einem definierten Protokoll transportieren
* Daten gemäß einem definierten Protokoll transportieren
==== Protokoll ====
Ein Netzwerkprotokoll legt fest, wie und in welcher Form Daten von einem Rechner in einem Netzwerk zu einem anderen Rechner übertragen werden. Bei der Definition eines (Netzwerk-)Protokolls muss auf sehr viele verschiedene Dinge geachtet werden. Eines der wichtigsten ist die zur Verfügung stehende [http://de.wikipedia.org/wiki/Datenübertragungsrate Datenübertragungsrate] des Netzwerks. Ein echtzeit-multiplayer Spiel muss seinen Spielzustand mit allen verbundenen Spielern zu jeder Zeit synchron halten. Das heißt, jede Änderung des Spielzustandes eines Spielers muss ebenfalls in den Spielzuständen aller anderen Spieler durchgenommen werden.
Eine Möglichkeit, dies zu lösen, ist, den gesamten Spielzustand z.B. einmal pro Sekunde zu übertragen. Allerdings kommt hier besagte maximale Datenübertragungsrate zum Tragen, denn ein Spielzustand, in dem sich 500 Spielobjekte befinden und ihre Attribute ändern, kann je nach Wahl der Architektur und des Protokolls so groß sein, dass eine 100 MBit/s Übertragungsrate nicht mehr ausreicht. Da die Datenübertragungsrate im Internet meist deutlich geringer als 100 MBit/s ist, ist Multiplayer über das Internet ist mit diesem "naiven" Protokoll fast immer undenkbar.
Wie die Übertragung von Spielzuständen möglichst effizient erreicht werden kann, das heißt, dass nur die wirklich notwendigen Daten übertragen werden, die für die Änderung des Spielzustands wichtig sind, ist eine "Kust für sich" und hängt stark von der Softwarearchitektur des Spiels ab.


== Multiplayer mit der [http://code.google.com/p/lidgren-network-gen3/ Lidgren] Bibliothek ==
== Multiplayer mit der [http://code.google.com/p/lidgren-network-gen3/ Lidgren] Bibliothek ==