Attualmente sto realizzando un gioco MMORPG a turni. Il client dovrebbe funzionare su Android. Ora, il mio amico sta facendo la grafica e io ho seguito le lezioni di gioco (giocatore, armi, ecc.). Ora, se la lotta è iniziata, le classi possono essere manipolate da interfacce (in realtà per il mio partner, è come lavorare con interfacce pure, non ha bisogno di alcun accesso alle classi di implementazione).
Ora dobbiamo introdurre un server di gioco per consentire a più giocatori. E sorgono alcune domande molto importanti:
1) Devo copiare completamente il modello di gioco sul server, senza lasciare classi sul client o è meglio avere 2 copie del modello - 1 sul server e 1 sul dispositivo e completare la sincronizzazione periodica tra quelle?
2) Quale metodo di connessione scegliere tra il client e il server (il client in vista è il telefono Android)? Per quanto riguarda il server, mi rivolgo a Java perché ho una certa esperienza con esso. Ma ora la domanda è: è meglio usare i socket per questa attività o posso usare i servizi REST, o è anche possibile collegarlo in qualche modo al server Java EE che è bello dal mio punto di vista perché rimuove molta programmazione complicazione? Anche se il gioco è multiplayer, è a turni, quindi non deve essere rinnovato molto spesso.
3) Che dire del threading? Ogni cliente dovrebbe avere il proprio thread (in caso di socket)?
4) Esistono libri sulla programmazione del gioco server REAL MMORPG là fuori ???