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

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

Проверки модуля защиты игры (античита) Anti-cheat scan and heartbeat

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

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

Модуль защиты от взлома работает вместе с игрой и периодически выполняет проверки. Если проверка тяжёлая или хартбит (периодический сигнал «я жив») с сервером защиты запаздывает, появляются микрофризы или дисконнект.

Почему Модуль защиты периодически проверяет память игры, запущенные программы и драйверы → Следствие Во время проверки игровой поток стоит, или хартбит не уходит вовремя → На экране Рывки через равные промежутки, в тяжёлых случаях дисконнект с сообщением об ошибке защиты

Симптомы
Микрофризы, Фриз, Дисконнект
Факторы
Остановка
У кого
Только у меня
Когда
С постоянным периодом, Сразу после входа или техработ, Изредка, случайно
Ответственные
Основной ответственный Команда разработки · Разработка клиента · Совместно Команда разработки · Разработка сервера
Команда разработки: задачи
Клиент: выполнять тяжёлые проверки вне игрового потока небольшими порциями, сравнивать статистику микрофризов и вылетов по версиям модуля защиты (если они скапливаются сразу после обновления, сообщить разработчику модуля). Сервер: допускать один-два опоздавших хартбита.
Цифры для ориентира
Лёгкая проверка обычно занимает меньше 1 ms, а тяжёлая проверка в игровом потоке, в зависимости от реализации, может забирать за раз от десятков до сотен ms.
На графике
Всплески с постоянным периодом · время кадра, число киков античитом
Где смотреть
Измерить интервал между всплесками времени кадра в PresentMon и собрать причины киков античитом, полученные сервером (в EOS это AuthenticationFailed / Authentication Timed Out и др. в ClientActionReason), по версиям модуля защиты и конфигурациям
Подтверждает
Короткие остановки повторяются через равные промежутки независимо от происходящего в игре, а сразу после обновления модуля защиты на определённых конфигурациях растут микрофризы и кики по таймауту аутентификации
Опровергает
Если интервал одинаковый на всех конфигурациях и не зависит от версии модуля защиты, это «Сборка мусора на клиенте» или «Фоновые процессы занимают CPU»
Чем проверить
Нужны логи и метрики игрового сервера или клиента
Подробнее
Модуль защиты встроен глубоко в ОС в виде драйвера и может конфликтовать с антивирусом, оверлеями и модулями защиты других игр. Если сразу после обновления модуля защиты жалобы на микрофризы и вылеты скапливаются на определённых конфигурациях, его стоит заподозрить первым.

Источники

  1. Using the Anti-Cheat Interfaces Epic Games
    Если сервер не получает сообщения античита от клиента за заданное время (RegisterTimeout), он кикает игрока по таймауту аутентификации (частая причина: клиент завис на загрузке). Если проблема в недавнем обновлении модуля, возвращаются к предыдущей версии модуля
  2. PresentMon Capture Application (README-CaptureApplication.md) Intel
    Запись времени каждого кадра через FrameTime (время CPU между кадрами)

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

Тот же слой: L1 Процесс игрового клиента

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

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