ゲームラグ白書 › 同期設計
ホスト(部屋主)型の構成 Listen server / host advantage
原因ID sy-host · 主担当 ゲーム開発チーム・サーバー開発 · 副担当 ゲーム開発チーム・クライアント開発, インフラチーム・サーバーインフラ
図と実験のあるメインページでこのカードを開く →
1人のプレイヤーのPCがサーバーの役割をすると、その人の回線とPC性能が全員の体感を決めます。
なぜ ホストのPCがサーバーの役割を担う(P2P、リッスンサーバー) → すると ホストの回線やPCが遅いと全員に波及、ホスト自身はPing 0 → 画面では ホストだけが有利、ホストが抜けると全員がフリーズ・切断
- 症状
- カクつき, フリーズ, 切断
- 要因
- 遅延, ストール
- 誰に起きるか
- 特定の場所・チャンネル
- いつ
- ときどきランダムに
- 担当
- 主担当 ゲーム開発チーム・サーバー開発 · 副担当 ゲーム開発チーム・クライアント開発, インフラチーム・サーバーインフラ
- ゲーム開発チームの対応
- サーバー:判定を担う専用サーバーへ移行、それまではマッチング時に回線・PCの良い人をホストに選ぶ。クライアント:ホストの移行(マイグレーション)に対応、マッチング時にほかの参加者とのPing・上り速度・PC性能を測定して送る。
- インフラチームの対応
- 専用サーバー用のサーバー機器・インスタンスを確保、ユーザーが多い地域の近くに配置。
- グラフでは
- 一部だけ高い · ホストごとのラグ報告・切断数
- 確認箇所
- マッチログに、ホストの上り速度、参加者ごとのホストとのRTT、ホストPCのフレーム時間、ホストが抜けた時刻を記録し、ラグ・切断の報告をホストごとにまとめて確認。ユーザー側でも、同じメンバーでホストだけ替えてもう一度プレイすれば確認できる
- 該当する場合
- ラグ・切断が特定のホストの部屋に集中し、そのホストの上り速度が低いときやフレーム時間が長いときに参加者全員が一緒に悪化し、ホストの移行がなければホストが抜けた瞬間に全員が切断される
- 該当しない場合
- ホストに関係なく同じ地域の参加者だけが悪いなら、回線・経路の問題。専用サーバー構成なら、この原因ではない
- 確認手段
- ゲームサーバー・クライアントのログ・メトリクスが必要
出典
- Networking Overview for Unreal Engine Epic Games
リッスンサーバーのホストはほかのクライアントより有利で、サーバーとレンダリングを兼ねるため負荷が大きい - Distributed authority topologies (Netcode for GameObjects 2.5) Unity
セッションの所有者が抜けると、残ったクライアントの中から新しい所有者を自動で選出 - A Survey and Taxonomy of Latency Compensation Techniques for Network Computer Games (ACM Computing Surveys, 2022) ACM
P2Pゲームも、ホストがサーバーの役割を兼ねるクライアント・サーバー構成とみなせる
あわせて読みたい原因
同じ層:同期設計
同じ症状(カクつき)を起こすほかの層の原因
図と実験のあるメインページでこのカードを見る