Was ist der aktuelle Stand der Technik, um Echtzeit-Strategiespiele zu vernetzen?
Ich erinnere mich, dass einige AAA-Titel vor einigen Jahren nur die Spielereingaben übertragen haben (Starcraft 1, Age of Empires). Da dies erfordert, dass Sie alles andere völlig deterministisch halten, ist dies immer noch eine praktikable Option? Das Synchronisieren von Zufallszahlengeneratoren scheint machbar, aber was ist mit subtilen Unterschieden bei FPU-Implementierungen usw.?
Oder verwenden Strategiespiele etwas, das dem Action-Game-Networking näher kommt, bei dem stattdessen einzelne Entitäten übertragen werden (mit irgendeiner Form von Vorhersage und (Delta) -Komprimierung)?
Wenn ja, wie werden flüchtige Gegenstände wie Projektile behandelt?
Was ist mit Client / Server im Vergleich zu Peer-to-Peer? Ich vermute, dass all dies stark miteinander zusammenhängt.
Vielen Dank für Ihre Zeit!
quelle
Antworten:
http://www.gamasutra.com/view/feature/3094/1500_archers_on_a_288_network_.php So wird das Networking in RTS-Spielen immer noch durchgeführt. P2P ist auch die normale Art, Verbindungen herzustellen. Die Verwendung eines Sperrzeitschrittmodells führt jedoch zu einem irritierenden Fall von Desynchronisierung und Betrugsbehandlung. Es gibt eine gute Möglichkeit, sich zu erholen, wenn eine Desynchronisierung stattfindet und alle RTS-Spiele einfach "Beenden Sie das Spiel" sagen. Desync-Fehler bei der Fehlerverfolgung sind ebenfalls ein Albtraum.
quelle
Nicht für RTS, aber jedes schnelle Spiel benötigt Interpolation und Vorhersage
http://developer.valvesoftware.com/wiki/Source_Multiplayer_Networking
quelle
Dies ist eine großartige Lektüre und wird viele Ihrer Fragen beantworten:
http://udn.epicgames.com/Three/NetworkingOverview.html
In meinem Strategie- / Tower-Defense-Spiel verwende ich ein Client / Server-Modell und kann bisher alles deterministisch halten. Der Client sendet nur die Server - Anfragen Dinge zu tun (aber nicht immer tatsächlich tut nichts), und der Server sendet Aktualisierungen, Kreationen und Löschungen bis hinunter zu den Kunden , wenn die Dinge ändern. Obwohl mein Spiel derzeit deterministisch ist, vertraue ich meinen Kunden nie, dass sie etwas richtig machen. Der Server ist der Boss und hat die volle Kontrolle über das Spiel. Der Client ist nur ein dummes Terminal.
Um alles wirklich einfach zu machen, verwende ich eine Kombination aus Reflection und Eventing, um meine Entitäten über die Netzwerkseite der Dinge völlig im Dunkeln zu halten. Ich benutze auch das Konzept eines Schauspielers und einer "Macht" (im Gegensatz zu einem Schauspieler und einem Bauern in einem FPS wie Unreal). Dies ermöglicht eine wirklich schöne Kapselung und einen Ort, an dem das Geld und die Sachen der Macht aufbewahrt werden können.
quelle