Доброго времени суток! В голову пришла мысль создать игру на Java, так как играть одному неинтересно - игра будет многопользовательска.
Движок выбран Jmonkey на базе jogl.
В голову приходит клиент серверная архитектура с небольшими поправками - из того что я нашел в интернете:
1. Клиент посылает сообщения на сервер.
2. Сервер их принимает и оповещает остальных игроков - изменение координат, нажатие клавиш, etc.
Тут у нас сходу появляется несколько проблем:
1. У всех разная скорость соединения нужно как то делать поправку на пинг, даже не знаю как можно сделать корректировку.
2. Непрерывный флуд, пользователи асинхронно посылают сообщения на сервер и при каждом сообщении нужно оповещать всех остальных игроков.
Решение: 1) посылать сообщения не каждый раз при нажатии, а по таймауту. 2) На сервере составлять очереди сообщений и высвобождать их одновременно, так же по таймауту.
3. Игрок нажал кнопку ходить и начал двигаться в определенном направлении у себя на клиенте, но сообщение еще не поступило на сервер и к другим игрокам тут у нас происходит рассинхронизация, пока сервер не будет оповещен и другие игроки не получат его новые действия и координаты с поправками.
Если кто то сталкивался с такими проблемами в играх или в подобных приложениях.
Подскажите направление решения задачи, какие еще проблемы могут встретится в подобной архитектуре. Спасибо.