В настоящее время я делаю MMORPG-игру, основанную на пошаговых играх. Клиент должен работать на Android. Теперь мой друг занимается графикой, а я занимаюсь игровыми классами (игрок, оружие и т. Д.). Теперь, если борьба начата, классами можно управлять с помощью интерфейсов (фактически для моего партнера это похоже на работу с чистыми интерфейсами, ему не нужен доступ к классам реализации).
Теперь нам нужно представить игровой сервер для нескольких игроков. И возникает несколько очень важных вопросов:
1) Должен ли я полностью скопировать игровую модель на сервер, не оставляя классов на клиенте, или лучше иметь 2 копии модели - 1 на сервере и 1 на устройстве и выполнять периодическую синхронизацию между ними?
2) Какой способ подключения выбрать между клиентом и сервером (клиент в поле зрения - телефон Android)? Что касается сервера - я обращаюсь к Java, потому что у меня есть некоторый опыт работы с ним. Но теперь возникает вопрос - лучше ли использовать сокеты для этой задачи, или я могу использовать службы REST, или даже возможно как-то подключить его к серверу Java EE, что, с моей точки зрения, здорово, потому что это убирает много программирования осложнение? Несмотря на то, что игра многопользовательская, она пошаговая, поэтому обновлять ее не нужно очень часто.
3) Как насчет потоков? Должен ли каждый клиент иметь свой собственный поток (в случае сокетов)?
4) Существуют ли какие-либо книги по программированию серверных игр REAL MMORPG ???