Kann man ein Multiplayer-Spiel dezentralisieren?
Ich habe eine Idee für ein Projekt, indem ich ein Multiplayer-Spiel entwickle wo alle Spieler auf der gleichen Karte spielen. Ich habe zwei Umsetzungsideen dafür und die erste, wie im Titel steht, soll so funktionieren, dass die Karte in Quadranten geteilt ist und ein Spieler, der eine gute Leitung hat und vertrauenswürdig ist die Rolle des Servers in diesem Bereich übernimmt. Und die Quadranten überlappen ein wenig, sodass es einen nahtlosen Übergang gibt. Es gibt in diesem Modell einen öffentlichen Server, der durchgehend die Daten von allen Spielerserver sichert und Backups macht. Die Rolle des Servers wird weitergegeben, wenn sich ein Spieler ausloggt. Das Spiel soll relativ simpel sein, also denke ich, dass nicht extrem viel Traffic zu den Servern entsteht, von den Spielern.
Die andere Möglichkeit wäre, "einfach" Server zu benutzen, sowie jedes Andere Multiplayer Spiel, man könnte da ja das Quadrantensystem beibehalten.
Ich weiß dass das sehr ambitioniert ist, will aber einfach mal wissen inwiefern das möglich und sinnvoll ist und wenn ihr euch mit sowas auskennt, wie und mit welche Tools und Engins macht man sowas am besten?
Danke im Vorraus für alle Antworten!
2 Antworten
Es gibt gute Gründe dafür, bei dem bewährten, zentralisierten Modell zu bleiben:
- Du solltest die IP-Addresse von Spielern niemals anderen Spielern zugänglich machen
- Wenn ein lokaler Server eine manipulierte Version verwendet, leiden alle Spieler darunter und du hast nicht wirklich Chance, einzugreifen
- Womöglich erzeugst du eine riesige Sicherheitslücke auf den PCs der spieler, wenn sie unkontolliert Daten vom lokalen Server/anderen Spielern erhalten
- Das Ermitteln eines neuen lokalen Servers wird für unangenehme Unterbrechungen sorgen
- Was, wenn n Leute mit je einer Kartoffel + Bambusleitung miteinander spielen wollen?
Das ist nur das, was mir spontan eingefallen ist. Es gibt bestimmt noch wesentlich mehr Gründe gegen das dezentrale Modell.
Es gibt ja durchaus Spiele, die auf Community-Servern basieren. Aber da entscheidet man sich eben bewusst dazu, einen Server zu hosten (mit allen Risiken, die dazu gehören), und wenn niemand das macht, dann kann halt keiner spielen. Auch in dem Fall gibst du sehr viel Kontrolle ab und von Dingen wie Anticheat nach deinen Wünschen kannst du dich dann auch verabschieden.
Je nach Spielerzahl wirst du sowieso nicht alle Spieler auf einem einzigen Server unterbringen können und musst dir irgendwie überlegen, wie man sie verteilt. Du könntest auch einen Kern der Quadranten selbst hosten und Community-Server als optionale Quadranten die eben mal online sind und mal nicht mit dazu nehmen. Vorausgesetzt eben, dass dir Cheats egal sind.
Die Dezentralisierungsidee war vor allem deswegen, damit man keine Server mieten muss. Wie viel würde es denn kosten, Server zu mieten, sodass vielleicht 10000 Spieler gleichzeitig in einer Welt spielen könnten?
Du kannst nen System verwenden, dass Spieler ihren eigen Server erstellen können, kannst dir ja ne exe basteln dass das deine nutzer easy machen können... oder du baust es gleich in dein Spiel ein oder im besten Fall beides.
Wie z.b. von Minecraft umgesetzt. Habe bis jetzt aber auch nur Zentrale Server Lösungen genutzt, wäre aber mein Ansatz
Also denkst du, dass man sowas auf gar keinen Fall dezentralisieren sollte und kann? Weil so könnte man sich ja die Kosten sparen...
Wenn man das dann zentralisiert und auf Servern laufen lässt, könnte man dann dieses Quadrantensystem beibehalten und wie bei zb. 5 CS Servern, die dann vielleicht 1000 Lobbys hosten, halt die Quadranten auf die Server aufteilen?