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

ゲームラグ白書 › L9 サーバーのゲームプロセス

経路探索の急増 Pathfinding storms

原因ID sp-pathfinding · 主担当 ゲーム開発チーム・サーバー開発

図と実験のあるメインページでこのカードを開く →

数百体のモンスターが同時にプレイヤーを追いかけて経路を計算すると、CPUを大きく消費します。

なぜ まとめ狩りや大量スポーンで、モンスターが一斉にプレイヤーを追跡 → すると モンスターごとに経路探索を計算 → 画面では その狩場だけスローモーション

症状
スローモーション
要因
ストール
誰に起きるか
特定の場所・チャンネル
いつ
人が集中したとき
担当
主担当 ゲーム開発チーム・サーバー開発
ゲーム開発チームの対応
経路のキャッシュ、計算回数の上限、複数のティックへの分割。
グラフでは
人数・負荷に連動して上昇 · サーバーのティック時間、ゾーンごとのモンスター数
確認箇所
ゾーンごとの、プレイヤーを追跡中のモンスター数とティック時間。個別に数えた値がなければ、perf top -pでゲームプロセスの関数ごとのCPU比率
該当する場合
まとめ狩り・大量スポーンのときにティック時間が延び、経路探索(パスファインディング)の関数がCPU時間の大きな割合を占める
該当しない場合
モンスターは少なくプレイヤーだけが多いときにティックが延びるなら、視界計算かブロードキャストの側
確認手段
ゲームサーバー・クライアントのログ・メトリクスが必要

出典

  1. AI.NavMesh.pathfindingIterationsPerFrame Unity
    経路探索をフレームごとに決まったノード数だけ処理して複数フレームに分ける、経路が長いときやリクエストが一度に多いときもゲームが滑らかに動く
  2. perf-top(1) — Linux manual page perf
    実行中のプロセス(-p)のCPU使用比率を関数(シンボル)ごとにリアルタイム表示

あわせて読みたい原因

同じ層:L9 サーバーのゲームプロセス

同じ症状(スローモーション)を起こすほかの層の原因

図と実験のあるメインページでこのカードを見る