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

ゲームラグ白書 › 同期設計

ホスト(部屋主)型の構成 Listen server / host advantage

原因ID sy-host · 主担当 ゲーム開発チーム・サーバー開発 · 副担当 ゲーム開発チーム・クライアント開発, インフラチーム・サーバーインフラ

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

1人のプレイヤーのPCがサーバーの役割をすると、その人の回線とPC性能が全員の体感を決めます。

なぜ ホストのPCがサーバーの役割を担う(P2P、リッスンサーバー) → すると ホストの回線やPCが遅いと全員に波及、ホスト自身はPing 0 → 画面では ホストだけが有利、ホストが抜けると全員がフリーズ・切断

症状
カクつき, フリーズ, 切断
要因
遅延, ストール
誰に起きるか
特定の場所・チャンネル
いつ
ときどきランダムに
担当
主担当 ゲーム開発チーム・サーバー開発 · 副担当 ゲーム開発チーム・クライアント開発, インフラチーム・サーバーインフラ
ゲーム開発チームの対応
サーバー:判定を担う専用サーバーへ移行、それまではマッチング時に回線・PCの良い人をホストに選ぶ。クライアント:ホストの移行(マイグレーション)に対応、マッチング時にほかの参加者とのPing・上り速度・PC性能を測定して送る。
インフラチームの対応
専用サーバー用のサーバー機器・インスタンスを確保、ユーザーが多い地域の近くに配置。
グラフでは
一部だけ高い · ホストごとのラグ報告・切断数
確認箇所
マッチログに、ホストの上り速度、参加者ごとのホストとのRTT、ホストPCのフレーム時間、ホストが抜けた時刻を記録し、ラグ・切断の報告をホストごとにまとめて確認。ユーザー側でも、同じメンバーでホストだけ替えてもう一度プレイすれば確認できる
該当する場合
ラグ・切断が特定のホストの部屋に集中し、そのホストの上り速度が低いときやフレーム時間が長いときに参加者全員が一緒に悪化し、ホストの移行がなければホストが抜けた瞬間に全員が切断される
該当しない場合
ホストに関係なく同じ地域の参加者だけが悪いなら、回線・経路の問題。専用サーバー構成なら、この原因ではない
確認手段
ゲームサーバー・クライアントのログ・メトリクスが必要

出典

  1. Networking Overview for Unreal Engine Epic Games
    リッスンサーバーのホストはほかのクライアントより有利で、サーバーとレンダリングを兼ねるため負荷が大きい
  2. Distributed authority topologies (Netcode for GameObjects 2.5) Unity
    セッションの所有者が抜けると、残ったクライアントの中から新しい所有者を自動で選出
  3. A Survey and Taxonomy of Latency Compensation Techniques for Network Computer Games (ACM Computing Surveys, 2022) ACM
    P2Pゲームも、ホストがサーバーの役割を兼ねるクライアント・サーバー構成とみなせる

あわせて読みたい原因

同じ層:同期設計

同じ症状(カクつき)を起こすほかの層の原因

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