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?
quelle