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

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

密集エリア進入時のスポーン集中 Spawn burst when entering a crowd

原因ID sp-spawn-burst · 主担当 ゲーム開発チーム・サーバー開発 · 副担当 ゲーム開発チーム・クライアント開発

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

人でいっぱいの街にテレポートすると、サーバーは新たに見えるようになった数百人の外見・装備・状態を一度に送らなければなりません。

なぜ テレポート・ログイン・チャンネル移動で、混雑した場所に突然現れる → すると 数百人分の全情報を一度に作って送り、自分のPCも一度に読み込む → 画面では 到着直後に一瞬止まる、キャラクターが遅れて1体ずつ現れ、入力の反応が遅い

症状
フリーズ, 入力遅延, 早送り
要因
ストール, 遅延
誰に起きるか
自分だけ, 特定の場所・チャンネル
いつ
移動中・マップ切り替え時, 接続直後・メンテ明け
担当
主担当 ゲーム開発チーム・サーバー開発 · 副担当 ゲーム開発チーム・クライアント開発
ゲーム開発チームの対応
サーバー:近い順に複数のティックに分けて送信、外見情報のキャッシュ。クライアント:ロード画面の間に先に受信、受け取ったキャラクターを複数フレームに分けて生成。
数値の目安
1人分の外見・装備・バフの情報が300バイトなら、500人で約150KBです。普段の1ティックの送信量(数KB)の数十倍が一瞬に集中します。
グラフでは
接続直後・メンテ明けに急増 · 接続ごとの送信バイト数、クライアントのフレームタイム
確認箇所
混雑した場所に到着した直後の数秒間に、その接続へ送ったバイト数・パケット数(サーバーログ)と、クライアントのフレームタイム(ネットグラフ・クライアントログ)
該当する場合
到着直後にその接続の送信量が普段の1ティックの数十倍に跳ね上がってから落ち着き、同じ瞬間にクライアントのフレームタイムも跳ねる
該当しない場合
人の少ない場所へ移動しても同じように止まるなら、ゾーン移動(サーバー間の引き継ぎ)かクライアントのロードの側
確認手段
ゲームサーバー・クライアントのログ・メトリクスが必要

出典

  1. Detailed Actor Replication Flow in Unreal Engine Epic Games
    アクターチャネルを最初に開くときに初期位置・回転などの情報も一緒に送り、接続が飽和したら残りのアクターは次のティックに回す
  2. Actor Priority in Unreal Engine Epic Games
    距離と視線の向きで優先度を付け、近くて見えるアクターから送る

あわせて読みたい原因

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

同じ症状(フリーズ)を起こすほかの層の原因

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