한국어English日本語简体中文繁體中文DeutschไทยTiếng ViệtРусскийPortuguês (Brasil)EspañolBahasa Indonesia

Анатомия игровых лагов › Проблемы только у части игроков

Отложенный показ объектов из-за ошибки оценки серверного времени Clock estimate error holds or discards entities

ID причины pt-clock-hold · Основной ответственный Команда разработки · Разработка клиента

Открыть карточку в основной версии с иллюстрациями и экспериментами →

Если клиент неверно оценивает серверное время, только что пришедшие данные объекта он откладывает как «ещё из будущего» или отбрасывает как «слишком старые».

Почему Оценка серверного времени у одного клиента сильно сбита (измерение во время загрузки, выход из режима сна) → Следствие Время, на которое ведётся интерполяция, не совпадает со временем в данных объекта → На экране Объект появляется с опозданием или стоит неподвижно

Симптомы
Невидимки / фантомы, Микрофризы
Факторы
Задержка
У кого
Один из клиентов на одном ПК
Когда
После бездействия, Сразу после входа или техработ
Ответственные
Основной ответственный Команда разработки · Разработка клиента
Команда разработки: задачи
Периодически заново синхронизировать время и при большом расхождении сразу сбрасывать оценку, не использовать значения, измеренные во время загрузки или сразу после выхода из сна.
На графике
Высоко только у некоторых · ошибка оценки серверного времени по клиентам
Где смотреть
Записывать на клиенте оценку серверного времени, RTT, моменты повторной синхронизации времени и число случаев, когда данные объекта были отложены или отброшены. Воспроизводить сразу после загрузки или выхода из сна
Подтверждает
Только у проблемного клиента ошибка оценки превышает порог сброса (в Unity hardResetThresholdSec, по умолчанию 0,2 с), есть записи о данных объекта, отложенных как будущие или отброшенных как прошлые, и после повторной синхронизации времени всё сразу нормализуется
Опровергает
Если ошибка оценки мала, а объекты появляются поздно, причина в бюджете отправки и приоритетах для каждого соединения или в загрузке
Чем проверить
Нужны логи и метрики игрового сервера или клиента

Источники

  1. NetworkTimeSystem class (Netcode for GameObjects 2.5) Unity
    Если расхождение времени превышает hardResetThresholdSec (по умолчанию 0,2 с), время выравнивается принудительно, а в обычном режиме понемногу ускоряется или замедляется через adjustmentRatio
  2. NetworkTime and ticks (Netcode for GameObjects 2.5) Unity
    LocalTime идёт впереди сервера, а ServerTime отстаёт. У поздно пришедшего сообщения время ожидания может оказаться отрицательным

Смотрите также

Тот же слой: Проблемы только у части игроков

Причины с тем же симптомом (Невидимки / фантомы) на других слоях

Карточка в основной версии с иллюстрациями и экспериментами