Ich mache gerade ein MMORPG-Spiel, das rundenbasiert ist. Der Client soll auf Android laufen. Jetzt macht mein Freund die Grafik und ich habe die Spielklassen (Spieler, Waffen usw.) gemacht. Wenn der Kampf gestartet wird, können die Klassen durch Schnittstellen manipuliert werden (für meinen Partner ist es so, als würde er mit reinen Schnittstellen arbeiten, er benötigt keinen Zugriff auf die Implementierungsklassen).
Jetzt müssen wir einen Spieleserver einführen, um mehrere Spieler zuzulassen. Und einige sehr wichtige Fragen stellen sich:
1) Soll ich das Spielmodell vollständig auf den Server kopieren und keine Klassen auf dem Client belassen, oder ist es besser, 2 Kopien des Modells zu haben - 1 auf dem Server und 1 auf dem Gerät, und die regelmäßige Synchronisation zwischen diesen abzuschließen?
2) Welche Verbindungsmethode soll zwischen dem Client und dem Server gewählt werden (Client in Sichtweite ist Android Phone)? Was den Server betrifft - ich wende mich Java zu, weil ich einige Erfahrungen damit habe. Aber jetzt lautet die Frage: Ist es besser, Sockets für diese Aufgabe zu verwenden, oder kann ich REST-Services verwenden, oder es ist sogar möglich, sie irgendwie mit einem Java EE-Server zu verbinden, was aus meiner Sicht cool ist, da dadurch viel Programmieraufwand entfällt Komplikation? Obwohl das Spiel im Mehrspielermodus gespielt wird, ist es rundenbasiert, sodass es nicht sehr oft erneuert werden muss.
3) Was ist mit Einfädeln? Sollte jeder Kunde seinen eigenen Thread haben (bei Sockets)?
4) Gibt es Bücher über die Programmierung von REAL MMORPG-Serverspielen?