Vernetzung in Echtzeit-Strategiespielen


10

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!


Duplikat des RTS-Spielprotokolls - ja, so wird es immer noch gemacht. Informationen zu unterschiedlichen FPU-Implementierungen finden Sie hier und hier .
BlueRaja - Danny Pflughoeft

Antworten:


5

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.


1
Ein weiterer guter Artikel über gesperrte Zeitschritt-Netzwerkspiele: altdevblogaday.com/2011/07/09/…
tenpn


1

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.

Durch die Nutzung unserer Website bestätigen Sie, dass Sie unsere Cookie-Richtlinie und Datenschutzrichtlinie gelesen und verstanden haben.
Licensed under cc by-sa 3.0 with attribution required.