Как реализовать правильную обработку пакетов MMO сервера?
Добрый день, в настоящее время занимаюсь разработкой MMO игры, клиент на Unity, сервер на Java. Транспорт данных от клиента к серверу решили реализовать своими силами. Используем сокеты (TCP).
Алгоритм рассылки данных простой, во время движения игрок оповещает сервер о изменение своих координат, сервер транслирует событие на всех остальных игроков.
Проблема в следующем. Допустим, клиент 1 отправил клиенту 2 30 сообщений за 1 секунду, клиент 2 смог принять только 15 сообщений за 1 секунду, и остальные 15 сообщений уже не актуальны, т.к. клиент 1 отправил за это время новые данные. Но, так как используется TCP данные будут приходить и клиент 2 будет тратить ресурсы и время на их получение.
Как лучше построить архитектуру транспорта данных? Использовать формат "запрос - ответ" для того чтобы сервер знал о том, что клиент получил сообщение и можно отправлять следующее актуальное сообщение ?