Wie machbar wäre ein völlig / Halb autonomes P2P-Netzwerk für Multiplayer-Spiele sein?

StackOverflow https://stackoverflow.com/questions/597303

  •  11-09-2019
  •  | 
  •  

Frage

Ich habe darüber nachgedacht, wie man über die Schaffung eines P2P-System gehen würde (wie BitTorrent ist für Dateien) für Multiplayer-Spiele zu spielen. Die Idee ist, den traditionellen Server aus der Multiplayer-Architektur zu entfernen. Ich verstehe, dass irgendeine Art von Server notwendig sein kann, um die Kommunikation zu initiieren und Senden Welt Updates usw., aber ich bin interessiert in, wie Sie die Last und Bandbreite Drücke auf dem Server reduzieren würden.

übrigens, dies gilt für jede Größe Spiel, von einem Zwei-Spieler-Dame-Spiel bis hin zu einem FPS mit 30 + Spielern.

Bin ich verrückt?

War es hilfreich?

Lösung

Ich habe über die gleiche Sache nachgedacht. Ich habe ein Vorurteil seit langer Zeit bekam die Systeme verteilt sein sollte verteilt , ohne die Notwendigkeit für eine zentrale Steuerung. Das Problem mit einem MMO oder ähnlichem Spiel ist, dass jeder Spieler in der Lage sein sollte, die gleiche „Welt“ zu sehen. Sie am Ende mit einem Problem ähnlich wie Einstein-ian Relativität und „Gleichzeitigkeit.“ - je weiter auseinander Sie sind, desto mehr Ihre Sicht der Welt unterscheidet

In der Regel ist die Lösung, dass Sie Informationen an andere Kunden in Ihrer unmittelbaren Nachbarschaft in der Lage sein zu verbreiten - in der in-Spieler Raum, die nicht unbedingt physischen Raum - schnell genug, dass Updates erscheinen gleichzeitig mit allen lokalen Spieler.

Ich vermute, die Antwort ist ein „Server“ oder Weltmodell pro Spieler zu haben, anstatt die Spieler als Vektoren in einem Welt-Server darstellt.

Andere Tipps

Das große Problem ist nicht bandiwdth oder Latenz oder Änderungen an den Spielzustand zu verteilen. Das große Problem ist Vertrauen.

Wenn ich sage Ihnen, ich ein Monster getötet, wie überprüfen Sie, dass ich es tatsächlich getan hat? Wie überprüfen Sie, dass ich tatsächlich 45 Ebene? Wie überprüfen Sie, ich bin nicht auf der ganzen Welt teleportieren? Denken Sie daran, Sie den Server nicht für jedes kleine Detail überprüfen können: das ist, was wir zu vermeiden, sind versucht,

Sie müssen die Spieler Spieler beobachten und selbst dann könnten sie zusammenarbeiten, um zu betrügen. Ich bezweifle wirklich jemand wird in Kürze einen vertrauenswürdigen p2p MMO jederzeit Ingenieur.

Es gibt viele Dinge in Frage zu berücksichtigen:

1) Verteilen Master - wer dann beginnt das Spiel? wo kann ich den ersten Knoten finden? was ist, wenn jeder entscheidet ihren P2P-Client zur gleichen Zeit zu schließen? hat die Welt?

2) distrubuted Regeln - wer diesen Spieler kann bestätigen, 77 von 102235 tötete ein Monster bei x, y, z? Ich sehe BIG Probleme in Hacking / Betrug mit einem "Chef im Befehl" ...

3) Latenz - wann ist ein Client alle Daten empfangen? was ist, wenn das Internet ausfällt? oder in einem LAN-Spiel, was ist, wenn die Festplatte stirbt - wird diese verrückt das Spiel für alle anderen

Ich glaube, dass die P2P-Gedanken interessant, aber wie in allen Wettbewerben, glaube ich, dass wir einen „Richter“ werden müssen, die die Regeln umgehen können, denn wenn man gegen die „anonyme Menschen“ konkurriert dann seinem „okay betrügen“viel denkt.

Ich denke, dass irgendeine Art von Grid-Computing könnte die Art und Weise, es zu tun, aber wieder, wenn einige im Netz fallen aus oder sind zu langsam für die Welt Rendering und Ergebnisse zurückschicken .. dann haben wir das ganze Spiel „nachlauf “... = schrecklich Spiel für jedermann ... das ist schon in vielen FPS-Spielen mit einem Master-Server gesehen. Wenn die Netzwerkprotokoll doesnt Griff Verzögerung zu gut, sein immer schwieriger, eine Person am Laufen zu schlagen oder sie erscheinen aus dem Nichts Sie im Gesicht zu schießen.

Eine teure Lösung sein könnte „Subserver“ zu haben (Proxy-Spiel-Server), wo Sie einige der Daten mehr nah an den Player. Das glaube ich würden Sie benötigt Zugriff auf eine Vielzahl von Serverfarmen auf der ganzen Welt haben (wie Blizzard hat mit WOW), oder Sie werden irgendeine Art von intelligenter „P2P Host“ erfinden müssen, dass selbst ein Upgrade wird auf „Subservers“, wenn dann die Bandbreite groß genug und genug Spieler sind in der Nähe in proxsamity davon (immer die Verzögerung aus seiner Sicht Überprüfung ...) ... kann jetzt sagen, dass war möglich .. was ist, wenn die Linie global zwischen diesen Subservers und das Haupt gameloop gebrochen wieder?

LOL ... so weitergehen könnte ... es klingt mehr und mehr wie die allgemeinen Probleme mit dem Internet: -)

Happy-Codierung ...!

Ich bin sicher kein Experte, aber es klingt für mich ein bisschen verrückt. Nach meiner Erfahrung, müssen Sie spezielle Game-Server wegen Bandbreite und Leistung. Mit P2P würden Sie diese beiden Dinge verlieren. Meiner Meinung nach, ist P2P gut für ein paar Dinge. Verteilen von Dateien und Forschung sind unter ihnen. Allerdings müssen diese zwei Dinge nicht von Echtzeitdaten. Wenn Sie irgendeine Art von Massively Multiplayer Spielwelt haben, dann könnte man wahrscheinlich P2P verwenden, um Spiel-Dateien zu verteilen, und vielleicht sogar Offload Zahlknirschens.

Ich würde sagen, es gibt Möglichkeiten, aber die Anzahl von ihnen scheint begrenzt, obwohl potenziell leistungsfähig.

Ich denke, dies in der Theorie wohl möglich ist, aber es ist noch ein langer Weg.

Wie in den anderen Beiträgen erwähnt, könnte die Latenz gering gehalten werden, indem nur Updates für andere Spieler zu gewährleisten, die in der Nähe sind. Dies ist seit vielen Jahren in verteilten Spielen geschehen.

Ein Datenverlust auf einem tolerierbaren Niveau gehalten werden kann, indem man mehrere Knoten für jedes Stück von Daten verantwortlich.

In Bezug auf das Vertrauen Problem, wäre es möglich, ein Protokoll zu haben, wo ein Spieler könnte „Herausforderung“ ein anderer Spieler Betrug aufzudecken. D. h der Herausforderer würde einen Teil der anderen Spieler Berechnung duplizieren und stellt die Ergebnisse zu vergleichen. Es gibt bereits kryptographische Protokolle, die diese Art der Sache zu tun, aber ich weiß nicht, die Details, oder ob sie in der Praxis möglich.

Das eigentliche Problem, wie ich es sehe, ist, dass es wenig Grund, als System zu entwickeln, so ist. Die Kosten wären hoch und Komplexität, aber das Spielerlebnis (das Produkt) nicht wesentlich verbessert werden. Ein Geld sparende Tätigkeit muss mehr Geld sparen, als es um Kosten rentabel zu sein.

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top