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

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

Перемотка на сервере, который обрабатывает ввод сразу по приходу Event-driven processing of bursty inputs

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

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

На сервере, который обрабатывает и рассылает пакеты сразу по приходу, действия тормозящего игрока, пришедшие пачкой, выполняются подряд и немедленно.

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

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

Источники

  1. Understanding Networked Movement in the Character Movement Component for Unreal Engine Epic Games
    Сервер рассчитывает перемещение при каждом получении ServerMove, а шаг времени определяет по разнице меток времени с предыдущим перемещением. Если расхождение с серверным временем слишком большое, перемещение отбрасывается
  2. Deterministic Lockstep Gaffer On Games
    Если применять ввод сразу по приходу, даже при отправке с частотой 60 Hz интервалы неравномерны и результат скачет

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

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

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

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