Benötigen Sie Hilfe bei der Auswahl des richtigen Netzwerkansatzes / der richtigen Plattform für ein RTS?

7

Ich habe eine Weile darüber nachgedacht, ein 2D-RTS-ähnliches Online-Spiel zu erstellen. (2-6 Spieler in einem Match, bis zu 50-60 Einheiten, keine KI). Das Wichtigste dabei ist, dass das Spiel in einem Browser spielbar sein soll, also muss es entweder ein Flash- oder ein Java-Applet sein, beide mit TCP-Sockets. Anfangs habe ich mich wegen der höheren Marktdurchdringung und Zugänglichkeit ganz auf Flash konzentriert. Nachdem ich verschiedene Netzwerkansätze überprüft habe, kann ich jedoch keine Wahl treffen.

Ich mochte den Lock-Step-Simulationsansatz sehr, bei dem Server und jeder Client genau dieselbe Simulation ausführen, bis mir klar wurde, dass es höllisch schwierig (wenn nicht unmöglich) sein wird, genau dieselbe Logik in zwei verschiedenen Sprachen zu implementieren, eine davon Actionscript sein. Hier kommt Java ins Spiel. Mit Java können Client und Server simulationsbezogenen Code gemeinsam nutzen - dies kann auch die Entwicklungszeit halbieren.

Aber dann gibt es noch einen anderen Ansatz, bei dem Clients versuchen, den Spielstatus so lange wie möglich korrekt zu simulieren (oder vielmehr zu extrapolieren), aber sie müssen es nicht richtig machen - irgendwann erhalten sie den vollständigen Status-Snapshot an Dementsprechend anpassen. Flash scheint wieder eine praktikable Option zu sein, aber dennoch scheint die Lock-Step-Simulation so viel einfacher zu sein, da es keinen "Anpassungs" -Teil gibt.

Sind meine Annahmen also richtig? Was würdest du vorschlagen?

xmmm
quelle

Antworten:

5

Jedes mir bekannte RTS verwendet eine Lock-Step-Simulation für sein Netzwerkmodell, mehr oder weniger aus den gleichen Gründen:

Mit Lock-Step müssen Sie nur Eingaben austauschen, wodurch die erforderliche Bandbreite drastisch reduziert wird. Wenn Sie den Interpolations- / Extrapolationsansatz verwenden, an den 60 Einheiten x 6 Spieler im Wert von Status x 6 Spieler gesendet werden sollen - wer auch immer hostet, benötigt viel Upstream-Bandbreite.

Darüber hinaus garantieren Sie mit Lock-Step, dass jeder genau die gleichen Dinge sieht, was für ein RTS sehr wichtig ist, um sich fair und strategisch zu fühlen. Im Extrapolationsfall konnten Sie auf Ihrem Bildschirm sehen, dass Sie einen Kampf gewinnen, nur um zu erhalten, wenn Sie einen neuen Schnappschuss erhalten, den Sie tatsächlich verloren haben. Und der schlimmste Fall ist, dass Sie diesen Kampf hätten gewinnen können, wenn Sie nur gewusst hätten, dass Sie ihn verlieren würden.

Ein letzter Vorteil: Lock-Step erschwert das Betrügen, da alles, was Sie lokal tun, zu einer Desynchronisierung führt. Sie müssten die Simulation eines jeden betrügen, nicht nur Ihre eigene.

Andrew Wang
quelle
Super alte Frage, aber ich müsste nicht zustimmen mit "Lock-Step macht Betrug schwerer". Obwohl etwas wahr nach Ihrem Beispiel. Es eröffnet andere Möglichkeiten des Betrugs. Stellen Sie sich vor, Sie haben FOW, aber da Sie JEDE Eingabe vom Player benötigen (um mit anderen Spielern synchron zu bleiben), können Sie FOW leicht umgehen, da Sie technisch alle Informationen haben, die Sie benötigen. Dies gilt für jede Verschleierung von Informationen, nicht nur für FOW.
Storm Muller