Сколько "пакетов моментальных снимков мира" мне нужно отправлять в секунду в многопользовательской игре (или частоте передачи)

Я пытаюсь разработать свою собственную многопользовательскую игровую архитектуру "сервер / клиент". Я знаю, что не могу отправлять пакет обновления каждый раз, когда обновляется сервер (высокая загрузка процессора и пропускная способность). Поэтому мой вопрос - сколько обновлений я должен отправлять каждую секунду всем клиентам в локальной сети / интернете.

1 ответ

Как можно больше, не душя ни клиента, ни сервера, сохраняя запас пропускной способности для внезапных пиков активности...

Я считаю, что вам необходимо отслеживать каждое соединение (клиент сокета) и корректировать объем данных, которые они могут получить - путем мониторинга времени, которое требуется для записи в сокет на вашем сервере, - поэтому вам необходимо настроить количество сообщений в секунду. за клиента.

В локальной сети вы можете отправлять все пакеты "общедоступной среды" (т. Е. Общедоступный чат, публичные события) через UDP (в случае высокой загрузки сети некоторые пакеты будут отброшены, но это не имеет большого значения). Может быть сложно обрабатывать повторную публикацию потерянных пакетов udp (это можно сделать с помощью временного обычного TCP-вызова). Пакеты общедоступной среды - это пакеты, которые отправляются всем игрокам в одной области. Идея состоит в том, что с помощью udp вы отправляете их только один раз всем игрокам, а не один раз для каждого игрока.

В общем, вы должны попытаться придумать способы минимизации количества отправляемых пакетов (чтобы клиенту требовалось как можно меньше динамических данных для работы)

Другие вопросы по тегам