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