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

遊戲 Lag 白皮書 › L9 伺服器遊戲程式

尋路運算暴增 Pathfinding storms

原因 ID sp-pathfinding · 主要負責 遊戲開發團隊(伺服器開發)

在含圖解與實驗的完整版中開啟卡片 →

數百隻怪物同時追擊玩家並計算路徑時,會耗用大量 CPU。

為什麼 拉一大群怪或大量生成時,許多怪物同時追擊玩家 → 於是 每隻怪物各自計算尋路 → 畫面上 只有那個練功區出現慢動作

症狀
慢動作
因素
停滯
誰會遇到
特定地點/頻道
何時
人潮湧入時
負責單位
主要負責 遊戲開發團隊(伺服器開發)
遊戲開發團隊要做的事
快取路徑、限制計算次數上限、分散到多個 tick 處理。
圖表上
隨人數/負載上升 · 伺服器 tick 時間、各 zone 的怪物數
查看位置
各 zone 正在追擊玩家的怪物數與 tick 時間。沒有另外計數時,用 perf top -p 看遊戲處理程序各函式的 CPU 占比
符合的跡象
拉一大群怪或大量生成時 tick 時間增加,尋路(路徑搜尋)函式占了很大比例的 CPU 時間
不符合的跡象
怪物少、只有玩家多時 tick 增加,是視野計算或廣播
確認方式
需要遊戲伺服器/用戶端的 log 與指標

出處

  1. AI.NavMesh.pathfindingIterationsPerFrame Unity
    每個畫格只處理固定數量節點的尋路,分散到多個畫格;即使路徑很長或請求同時湧入,遊戲也能保持流暢
  2. perf-top(1) — Linux manual page perf
    依函式(symbol)即時顯示執行中處理程序(-p)的 CPU 使用占比

相關原因

同一層:L9 伺服器遊戲程式

同一症狀(慢動作)在其他層的原因

查看含圖解與實驗的完整版卡片