В некоторых играх, чтобы снизить нагрузку на сервер, расчёт перемещения монстров поручают клиенту одного из ближайших игроков. Если у этого игрока плохое подключение, монстр странно движется на экранах у всех.
Почему Сервер поручает расчёт перемещения монстра клиенту ближайшего (или пришедшего первым) игрока → Следствие Отчёты этого игрока о результатах приходят на сервер с опозданием или пачками → На экране Только этот монстр на экранах всех вокруг замирает и телепортируется. У самого игрока, которому поручен монстр, всё нормально
Странно выглядит один персонаж, Одна локация или канал
Когда
Всегда, Изредка, случайно
Ответственные
Основной ответственный Команда разработки · Разработка сервера
Команда разработки: задачи
Передавать управление игроку с хорошим подключением (по пингу и потерям), сразу забирать управление на сервер, если отчёты прекратились, важных монстров вроде боссов рассчитывать на сервере.
На графике
Высоко только у некоторых · интервал отчётов о позиции по монстрам (по клиентам, у которых управление)
Где смотреть
Записывать на сервере для каждого монстра, у какого клиента управление, а также интервал отчётов, RTT и потери этого клиента. Интервалы прихода пакетов от этого клиента видны и в захвате пакетов на стороне сервера
Подтверждает
Управление всеми странно двигающимися монстрами у одного и того же игрока, его отчёты приходят неравномерно или прерываются, а после передачи управления другому игроку всё сразу приходит в норму
Опровергает
Если так же дёргаются и монстры, которых рассчитывает сам сервер, причина в задержке тика сервера или в подключении того, кто смотрит. Если после передачи управления рывки остаются, это расхождение расчёта пути при синхронизации команд
Чем проверить
Нужны логи и метрики игрового сервера или клиента
Подробнее
Игрок, которому поручен монстр, никаких проблем не замечает, поэтому жалобы приходят только в виде «с монстром что-то не так». Если странное поведение одного и того же монстра видят все, кроме одного игрока, сначала проверяют, у кого управление этим монстром.
Источники
Authority (Netcode for GameObjects 2.5)Unity В модели распределённого авторитета каждый экземпляр игры (клиент) отвечает за часть сетевых объектов и рассчитывает их