ese
@ese
Front-end developer

Как реализовать правильную обработку пакетов MMO сервера?

Добрый день, в настоящее время занимаюсь разработкой MMO игры, клиент на Unity, сервер на Java. Транспорт данных от клиента к серверу решили реализовать своими силами. Используем сокеты (TCP).
Алгоритм рассылки данных простой, во время движения игрок оповещает сервер о изменение своих координат, сервер транслирует событие на всех остальных игроков.
Проблема в следующем. Допустим, клиент 1 отправил клиенту 2 30 сообщений за 1 секунду, клиент 2 смог принять только 15 сообщений за 1 секунду, и остальные 15 сообщений уже не актуальны, т.к. клиент 1 отправил за это время новые данные. Но, так как используется TCP данные будут приходить и клиент 2 будет тратить ресурсы и время на их получение.
Как лучше построить архитектуру транспорта данных? Использовать формат "запрос - ответ" для того чтобы сервер знал о том, что клиент получил сообщение и можно отправлять следующее актуальное сообщение ?
  • Вопрос задан
  • 2670 просмотров
Пригласить эксперта
Ответы на вопрос 2
@lookid
> TCP
> Использовать формат "запрос - ответ"
> во время движения игрок оповещает сервер о изменение своих координат
Успокойтесь, доучитесь в школе, закончите университет и идите работать. Лет через 10-15, может быть, поймете, что ваш подход полный бред и так не писали даже в 90х. Позиция в сцене, TCP, запрос-ответ... У меня даже слов нету. Двойка. Идите изучайте разницу между TCP и UDP.
Подсказка:
TCP - для запросов типа "выдать задание", "завершить задание", "передать лут" и прочий REST
UDP - координаты в сцене, для этого "ответ" не нужен, они и так меняются по 100 раз в секунду. Отправил и всё, пусть клиент сам разбирается. На пакеты похеру, еще придут в следующем кадре.
Ответ написан
Комментировать
ese
@ese Автор вопроса
Front-end developer
Да я спокоен, в школе отучился, университет закончил, 10 лет отработал. Я клиент пишу, а не сервер. Серверный код уже переписывают на UDP.
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы