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