I am currently making a MMORPG game, which is turn-based. The client is supposed to run on Android. Now, my friend is doing the graphics, and I have been doing the game classes (player, weaponry, etc.). Now, if the fight is started, the classes can be manipulated by interfaces (actually for my partner, it is like working with pure interfaces, he does not need any access to the implementaton classes).
Now we need to introduce a game server to allow for multiple players. And a few very important questions arise:
1) Shall I copy the game model to the server completely, leaving no classes on the client or is it better to have 2 copies of the model - 1 on the server and 1 on the device and to complete periodic synchronization between those?
2) Which method of connection to choose between the client and the server (client in sight is android phone)? As for the server - I am turning towards java cause I have some experience with it. But now the questions is - is it better to use sockets for this task or I can use REST services, or it is even possible to connect it somehow to Java EE server which is cool from my point of view cause it removes a lot of programming complication? Even though the game is multiplayer, it is turn based, so it does not need to be renewed very often.
3) What about threading? Should every client have his own thread(in case of sockets)?
4) Are there any books on REAL MMORPG server game programming out there???