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

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

Лавина поиска пути Pathfinding storms

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

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

Когда сотни монстров одновременно гонятся за игроками и рассчитывают путь, это сильно нагружает CPU.

Почему Из-за сбора монстров «паровозом» и массового спавна монстры одновременно преследуют игроков → Следствие Каждый монстр рассчитывает путь → На экране Слоумо только на этом месте фарма

Симптомы
Слоумо
Факторы
Остановка
У кого
Одна локация или канал
Когда
При наплыве игроков
Ответственные
Основной ответственный Команда разработки · Разработка сервера
Команда разработки: задачи
Кэшировать пути, ограничить число расчётов, распределять их по нескольким тикам.
На графике
Растёт вслед за онлайном и нагрузкой · время тика сервера, число монстров по зонам
Где смотреть
Смотреть число монстров, преследующих игроков, по зонам и время тика. Если отдельного подсчёта нет, смотреть долю CPU по функциям игрового процесса через perf top -p
Подтверждает
При сборе «паровозом» и массовом спавне время тика растёт, а функции поиска пути занимают большую долю процессорного времени
Опровергает
Если время тика растёт, когда монстров мало, а игроков много, дело в расчёте видимости или рассылке
Чем проверить
Нужны логи и метрики игрового сервера или клиента

Источники

  1. AI.NavMesh.pathfindingIterationsPerFrame Unity
    Поиск пути обрабатывает за кадр только заданное число узлов и распределяется на несколько кадров, поэтому игра идёт плавно, даже когда пути длинные или запросов сразу много
  2. perf-top(1) — Linux manual page perf
    В реальном времени показывает долю CPU работающего процесса (-p) по функциям (символам)

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

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

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

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