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

游戏卡顿白皮书 › L9 服务器游戏进程

寻路计算激增 Pathfinding storms

原因 ID sp-pathfinding · 主责 研发团队·服务器开发

在含图示和实验的完整版中打开此卡片 →

几百只怪物同时追着玩家计算路径时,会占用大量 CPU。

起因 拉怪、大规模刷新使大量怪物同时追击 → 结果 每只怪物都要做寻路计算 → 画面表现 只有那片刷怪区出现慢动作

症状
慢动作
因素
停顿
谁会遇到
特定地点/分线
何时出现
人多的时候
负责方
主责 研发团队·服务器开发
研发团队要做的事
路径缓存;计算次数上限;分到多个 tick。
监控图上
随人数/负载上升 · 服务器 tick 耗时、各场景怪物数量
查看位置
各场景正在追击玩家的怪物数量和 tick 耗时。没有单独统计时,用 perf top -p 看游戏进程中各函数的 CPU 占比
确认依据
拉怪、大规模刷新时 tick 耗时增加,寻路(路径搜索)函数占了 CPU 时间的很大比重
排除依据
怪物少、只有玩家多时 tick 增加,看视野计算或广播
确认手段
需要游戏服务器/客户端的日志和指标

出处

  1. AI.NavMesh.pathfindingIterationsPerFrame Unity
    寻路每帧只处理固定数量的节点,分摊到多帧;路径很长或请求一下子很多时,游戏也能保持流畅
  2. perf-top(1) — Linux manual page perf
    按函数(符号)实时显示运行中进程(-p)的 CPU 使用占比

相关原因

同一层:L9 服务器游戏进程

其他层中同样导致“慢动作”的原因

查看含图示和实验的原卡片