Ein typisches RTS-Spiel wird mit dem Standardnetzwerkmodell implementiert: Peer-to-Peer-Lockstep.
Betrachten Sie Starcraft 2, da Battle.net vermutlich nichts über den Stand des Spiels weiß, da nur Kommunikation zwischen den beiden Spielern in einem Peer-to-Peer-Modell besteht. Woher weiß Battle.net, wer am Ende der Gewinner war? . Es ist naiv, sich darauf zu verlassen, dass die beiden Kollegen nicht versuchen, zu schummeln und genaue Ergebnisse zu melden.
networking
multiplayer
rts
user782220
quelle
quelle
Antworten:
Wenn ich mich richtig erinnere, ist SC2 eigentlich kein Peer-to-Peer. Es ist ein Client-Server mit Battle.net (allerdings immer noch deterministischer Lockstep), daher ist dies kein Problem. In der realen Welt ist es jedoch nachweislich unmöglich, alle Peers dazu zu bringen, sich auf einen Zustand oder das Ergebnis einer Operation zu einigen ("Gewinner" ist in diesem Punkt sicherlich ein gemeinsamer Zustand). Schauen Sie sich den formalen Beweis für das Problem der byzantinischen Generäle und auch das Fischer-Konsensproblem an. Dies ist ein anständiger Ausgangspunkt (siehe Zitate und lesen Sie diese): Konsens (Informatik)
quelle
Wenn alle Spieler einverstanden sind, ist das offensichtlich richtig. Andernfalls ist der Status des Spiels ungültig und niemand "hat gewonnen". Beachten Sie jedoch, dass Sie SSL verwenden können, um die Kommunikation zwischen BNet und dem Spieleclient zu verschlüsseln. Dies muss natürlich vorhanden sein. Wie können sonst Funktionen wie der Chat im Spiel vorhanden sein? Es gibt keinen Grund zu der Annahme, dass die Clients während eines Spiels nicht mit Battle.NET kommunizieren.
quelle