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

Анатомия игровых лагов › Архитектура синхронизации

Клиентский авторитет Client-authoritative results

ID причины sy-client-auth · Основной ответственный Команда разработки · Разработка сервера · Совместно Команда разработки · Разработка клиента

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

Если каждый клиент сам определяет свои результаты, на экране игрока всё плавно, но результаты расходятся с экранами других, и игра уязвима для читов.

Почему Позицию и попадания определяет клиент, а сервер только пересылает → Следствие Два игрока утверждают, что каждый попал первым, а сервер не может это проверить → На экране Противник телепортируется или проходит сквозь стены, «я попал, а урона нет»

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

Источники

  1. Latency Compensating Methods in Client/Server In-game Protocol Design and Optimization (Yahn W. Bernier, GDC 2001) Valve
    Модель, в которой клиент сообщает результат, возможна, только если клиенту можно доверять. Из-за риска читов используют авторитетный сервер
  2. Peeking into VALORANT's Netcode Riot Games
    Модель авторитетного сервера: сервер никогда не доверяет состоянию игры, которое видит клиент
  3. Distributed authority topologies (Netcode for GameObjects 2.5) Unity
    Если раздать полномочия клиентам, читерить становится проще, и пропадает единая симуляция, которая управляет всеми объектами

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

Тот же слой: Архитектура синхронизации

Причины с тем же симптомом (Телепортация) на других слоях

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