ゲームラグ白書 › L9 サーバーのゲームプロセス
1体に集中する戦闘(ワールドボス) Hot entity / combat event fan-out
原因ID sp-hot-entity · 主担当 ゲーム開発チーム・サーバー開発
図と実験のあるメインページでこのカードを開く →
数百人が1体のボスを同時に攻撃すると、そのボス1体の計算が1か所に集中し、ヒット情報が見ている全員に送信されます。
なぜ 数百人が1体のボスにスキル・バフ・デバフを絶え間なく使用 → すると ボスのHP・ヘイトリスト・デバフの計算が1か所に集中し、ヒットのたびにダメージ数値・エフェクトのパケットを見ている全員に送信 → 画面では スキルの反映が遅れ、ダメージ数値がまとめて表示される、ボスの周辺だけスローモーション
- 症状
- 入力遅延, 早送り, スローモーション
- 要因
- ストール, 遅延
- 誰に起きるか
- 特定の場所・チャンネル
- いつ
- 人が集中したとき
- 担当
- 主担当 ゲーム開発チーム・サーバー開発
- ゲーム開発チームの対応
- ほかのプレイヤーのダメージ数値・エフェクトはまとめるか省略、1つの対象にかかるデバフ数の上限、ヒット処理を複数のティックに分割。
- 数値の目安
- 800人が毎秒2回ずつ攻撃すれば、毎秒1,600回のヒットです。これを見ている800人全員に通知すると、毎秒128万個のメッセージになります。
- グラフでは
- 人数・負荷に連動して上昇 · サーバーのティック時間、送信メッセージ数
- 確認箇所
- ボス戦の時間帯のティック時間と送信パケット数を、ボス周辺の人数と並べて確認し、可能なら対象ごとの毎秒のイベント(ヒット・バフ・デバフ)数
- 該当する場合
- ボス周辺の人数が増えるとティック時間と送信量が急激に増え、ボス1体の毎秒のイベント数がほかの対象より数十倍多い
- 該当しない場合
- ボスと関係なく1か所に集まるだけで同じように遅くなるなら、視界計算かブロードキャストの急増の側
- 確認手段
- ゲームサーバー・クライアントのログ・メトリクスが必要
出典
- HED-GP Technical Retrospective: What a HED-ache CCP Games
1回の攻撃でも見ているすべてのクライアントに通知する必要があるため、n人がn人に通知するO(n²)の負荷が生じ、メッセージの多いドローン攻撃ではこの負荷がさらに速く大きくなる
あわせて読みたい原因
同じ層:L9 サーバーのゲームプロセス
同じ症状(入力遅延)を起こすほかの層の原因
図と実験のあるメインページでこのカードを見る