Ich lese gerade über Multiplayer-Spielarchitektur.
Bisher befassen sich die meisten Artikel, die ich gefunden habe, mit dem Client-Server-Modell.
Ich möchte wissen, wo die Einschränkungen für die Verwendung einer P2P-Architektur liegen. Welche "Klasse" von Spielen kann (oder häufiger) mit ihr implementiert werden? welche nicht? und im Allgemeinen, was sind die Hauptunterschiede und Einschränkungen gegenüber dem Client-Server-Modell.
Antworten:
Hier sind meine zwei Cent:
P2P :
Server-Client :
Ich würde P2P als eine gute Wahl betrachten, da die durchschnittliche Internetverbindung immer besser wird und die P2P-Latenz in Zukunft möglicherweise überhaupt kein Problem mehr darstellt. Auch viel über P2P hängt von der spezifischen Implementierung ab.
Es gibt auch einige Architekturen, die P2P mit Server-Client kombinieren.
quelle
Ein großes Risiko bei Peer-to-Peer-Spielen besteht darin, dass ohne eine zentrale Behörde in Form eines neutralen Servers kein Betrug verhindert werden kann. Jeder Kunde kann das Ergebnis des Spiels nach Belieben interpretieren. Einige Spiele erklären einen der Kunden zum Gastgeber und lassen ihn zum Richter, aber wenn dieser Kunde ein Betrüger ist, entscheiden sie über das Ergebnis des gesamten Spiels.
Bei Spielen, die eine geringe Latenz und eine hohe Bandbreite erfordern, wie bei jedem Spiel, bei dem die Spieler schnell reagieren müssen, besteht auch das Problem, dass der Host nur eine Internetverbindung für Endverbraucher verwendet und nicht in einem Rechenzentrum mit einem Hochleistungs-Backbone sitzt Verbindung. Das bedeutet, dass die Benutzererfahrung darunter leiden wird. Dies ist in strategieorientierteren, "langsameren" Spielen kein so großes Problem.
quelle
Die Implementierung von Peer-to-Peer-Multiplayer-Spielen ist nicht einfach und derzeit nicht anwendbar.
Das Problem besteht darin, dass keiner der Peers alle anderen Peers kennt, sodass Sie für jede Nachricht mehrere Hops haben, was zu einer höheren Latenz im Vergleich zu einem Client-Server-Modell führt. Weitere Informationen finden Sie in diesem Dokument.
Rundenbasierte Spiele könnten ein solches Protokoll leicht verwenden, da sie nicht so stark von der Latenz abhängen. Außerdem haben sie normalerweise nur wenige Hosts in einer Sitzung, so dass man jede Nachricht an alle anderen Spieler senden kann.
Andere Spiele, die Peer-to-Peer verwenden, wählen einfach einen der Peers dynamisch aus, um das Spiel zu hosten (dh CoD MW2), was zu Problemen wie der Host-Migration führt, wenn der Host die Verbindung trennt.
quelle