ゲームラグ白書 › L9 サーバーのゲームプロセス
経路探索の急増 Pathfinding storms
原因ID sp-pathfinding · 主担当 ゲーム開発チーム・サーバー開発
図と実験のあるメインページでこのカードを開く →
数百体のモンスターが同時にプレイヤーを追いかけて経路を計算すると、CPUを大きく消費します。
なぜ まとめ狩りや大量スポーンで、モンスターが一斉にプレイヤーを追跡 → すると モンスターごとに経路探索を計算 → 画面では その狩場だけスローモーション
- 症状
- スローモーション
- 要因
- ストール
- 誰に起きるか
- 特定の場所・チャンネル
- いつ
- 人が集中したとき
- 担当
- 主担当 ゲーム開発チーム・サーバー開発
- ゲーム開発チームの対応
- 経路のキャッシュ、計算回数の上限、複数のティックへの分割。
- グラフでは
- 人数・負荷に連動して上昇 · サーバーのティック時間、ゾーンごとのモンスター数
- 確認箇所
- ゾーンごとの、プレイヤーを追跡中のモンスター数とティック時間。個別に数えた値がなければ、perf top -pでゲームプロセスの関数ごとのCPU比率
- 該当する場合
- まとめ狩り・大量スポーンのときにティック時間が延び、経路探索(パスファインディング)の関数がCPU時間の大きな割合を占める
- 該当しない場合
- モンスターは少なくプレイヤーだけが多いときにティックが延びるなら、視界計算かブロードキャストの側
- 確認手段
- ゲームサーバー・クライアントのログ・メトリクスが必要
出典
- AI.NavMesh.pathfindingIterationsPerFrame Unity
経路探索をフレームごとに決まったノード数だけ処理して複数フレームに分ける、経路が長いときやリクエストが一度に多いときもゲームが滑らかに動く - perf-top(1) — Linux manual page perf
実行中のプロセス(-p)のCPU使用比率を関数(シンボル)ごとにリアルタイム表示
あわせて読みたい原因
同じ層:L9 サーバーのゲームプロセス
同じ症状(スローモーション)を起こすほかの層の原因
図と実験のあるメインページでこのカードを見る