Einschränkungen von P2P-Multiplayer-Spielen gegenüber Client-Server [geschlossen]

12

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.

spaceOwl
quelle
verwandte gamedev.stackexchange.com/questions/3887/…
Ciro Santilli 事件 改造 中心 法轮功 六四
Ein Beispiel für ein echtes P2P-Spiel finden Sie in Gunz: The Duel, das im Mehrspielermodus und beim Hacken große Probleme hat.
Fhyve

Antworten:

11

Hier sind meine zwei Cent:

P2P :

  • Vorteile:
    • Kein zentraler Server erforderlich : Dies macht ihn viel billiger und praktikabler für Low-Budget-Indie-Spiele.
    • Skaliert sehr gut (bis zu einem bestimmten Punkt, an dem der durchschnittliche Client die Bandbreite einfach nicht verarbeiten kann).
    • Sehr gut für die Datenverteilung : Geeignet für Spiele, bei denen vom Benutzer erstellte Inhalte dynamisch synchronisiert werden (z. B. Torrents).
    • Stabiler: Es kann niemals vorkommen, dass der Server Probleme hat und niemand spielen kann (implementierungsabhängig).
  • Nachteile:
    • Schwer zu implementieren : Es ist viel schwieriger, eine solide P2P-Architektur zu erstellen als ein Server-Client.
    • Es ist sehr schwer, Betrug in einem solchen System zu verhindern , es sei denn, Sie bestimmen einen autorisierenden Peer (was die Vorteile einer guten Skalierung von P2P behindert).
    • Sicherheit ist schwer zu erreichen.
    • Die Internetverbindung eines Kunden kann das Spiel auch für andere beeinflussen.
    • Die Latenz ist normalerweise viel größer (obwohl dies besser sein kann, wenn Sie beispielsweise mit mehreren Personen aus einem LAN-Netzwerk an einem Internetspiel teilnehmen).
    • Möglicherweise ist eine Portweiterleitung erforderlich : P2P über das Internet erfordert eine Portweiterleitung, und nicht jeder ist technisch dazu geneigt. Darüber hinaus kann der ISP die Weiterleitung von Ports verhindern und die Eintrittsbarriere erhöhen.

Server-Client :

  • Vorteile:
    • Einfach zu implementieren: Es ist so einfach wie es nur geht.
    • Wenn es gut implementiert ist, lässt es sich sehr gut skalieren (wenn die Arbeit auf mehrere Server verteilt werden kann).
    • Betrug kann leicht vermieden werden (im Vergleich zu P2P).
    • Geringere Latenz : Wenn der Server eine feste Verbindung hat, kann die Latenz extrem niedrig sein.
    • Die Internetverbindung eines Spielers wirkt sich niemals auf das Spiel eines anderen Spielers aus.
  • Nachteile:
    • Kostet Sie Geld, um die Server zu betreiben : definitiv nicht für ein kostenloses Spiel geeignet (es sei denn, Sie lassen die Spieler einen dedizierten Server einrichten, aber das könnte ein Sicherheitsproblem sein).
    • Wenn der Server Probleme hat, tut dies jeder.

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.

Akaltar
quelle
P2P Con: Matchmaking: Wenn es sich nicht um ein LAN-Spiel handelt, wissen Sie nicht, wie Sie Ihren Kollegen finden können. CS: Eine geringere Latenz tritt nicht auf, wenn ein Spieler beispielsweise in Deutschland und der andere in Australien ist. Es ist immer noch ein Problem 6 Jahre später. CS: Kostet dich wirklich nicht so viel Geld . Server werden ziemlich billig. Sie können das Spiel auch auf Ihrem eigenen PC hosten, indem Sie einen Web-Proxy verwenden, um darauf zu verweisen.
Badunius
2

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.

Philipp
quelle
Bei Verwendung eines Konsensmodells ist Betrug kein größeres Problem als bei einem Client-Server-Modell.
Jeroen
1

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.

Horstinator
quelle
3
Was meinst du mit "momentan nicht anwendbar"? Es gibt viele Spiele, die P2P für das Networking verwenden. Außerdem ist "keiner der Peers kennt alle anderen Peers" falsch formuliert. Während in der Praxis Relais unterstützt werden müssen, um die Robustheit zu verbessern, ist es durchaus möglich, eine perfekte Netzwerk-Topologie für alle Benutzer zu haben, insbesondere bei kleinen Peer-Zählungen oder in LANs, in denen keine NAT-Router stören.
Tapio
@Tapio Natürlich ist es möglich, ein P2P-Netzwerk für Spiele aufzubauen, aber es wäre in Bezug auf Latenz, Anzahl der Benutzer oder die Umgebung, in der es verwendet wird, begrenzt. Aus diesem Grund verwenden die meisten Spiele keinen P2P-Ansatz.
Horstinator
@Horstinator Ich kenne ein Spiel, das P2P für ein FPS-Spiel verwendet. Es unterstützt 50-100 Spieler ohne Latenzprobleme. (Es heißt Stickman Warfare für alle, die sich
darum kümmern.
@akaltar Ist es Open Source? Ich würde gerne sehen, wie sie es machen.
Horstinator
@ Horstinator Schade, aber soweit ich weiß ist es nicht. Sie können den Ersteller im Forum fragen (es ist ein sehr kleines Projekt, daher sollte jemand antworten).
Akaltar