ゲームラグ白書 › 一部のユーザーだけに起きる問題
チャンネル・インスタンス・フェーズの違い Different channel / instance / phase
原因ID pt-phase · 主担当 ゲーム開発チーム・サーバー開発 · 副担当 ゲーム開発チーム・クライアント開発
図と実験のあるメインページでこのカードを開く →
2つのキャラクターが別のチャンネルやインスタンスにいたり、クエストの進行度によって見えるNPCが変わる別の「フェーズ」にいたりすると、互いに違う世界を見ることになります。
なぜ 2つ目のキャラクターが別のチャンネルに割り当てられるか、クエストの段階が違う → すると サーバーがそのキャラクターにはそのNPCを送らない(正常) → 画面では 片方にだけNPCがいない。バグのように見えるが設計どおり
- 症状
- 表示されない・ゴースト
- 要因
- パケットロス
- 誰に起きるか
- 同じPCの片方のクライアントだけ, 自分だけ
- いつ
- 常に, 接続直後・メンテ明け
- 担当
- 主担当 ゲーム開発チーム・サーバー開発 · 副担当 ゲーム開発チーム・クライアント開発
- ゲーム開発チームの対応
- サーバー:チャンネル・フェーズの情報をクライアントに送る、QAチェックリストに「2つのキャラクターのチャンネル・クエスト段階を確認」を追加。クライアント:チャンネル・フェーズを画面に表示。
- グラフでは
- 一部だけ高い · クライアントごとの周囲のオブジェクト数、チャンネル・フェーズ
- 確認箇所
- 2つのキャラクターのチャンネル番号とそのクエストの進行段階をゲーム画面で比較し、同じチャンネル・段階にそろえて再確認。サーバーのオブジェクト送信ログがあれば、そのNPCをそのキャラクターに送らなかった理由(チャンネル・フェーズ)を確認
- 該当する場合
- 2つのキャラクターのチャンネルかクエスト段階が違い、同じにそろえるとNPCが見える
- 該当しない場合
- チャンネル・段階が同じなのに片方にだけいないなら、ロード中に届いた出現通知の破棄、入場直後に集中する出現情報の欠落、視界登録の順序の乱れ側
- 確認手段
- ユーザー側の環境で確認
- もっと詳しく
- クエストの進行をアカウント単位で保存しているか、キャラクター単位で保存しているかも確認します。同じアカウントの2つのキャラクターなら、片方の進行がもう片方のフェーズを変えることがあります。
出典
- Actor Relevancy in Unreal Engine Epic Games
サーバーは接続ごとに関連する(relevant)アクターだけをレプリケートし、関連しないアクターは送らない - Object visibility (Netcode for GameObjects 2.5) Unity
CheckObjectVisibilityでクライアントごとに見えるオブジェクトを決め、隠したオブジェクトはそのクライアントに送信しない
あわせて読みたい原因
同じ層:一部のユーザーだけに起きる問題
同じ症状(表示されない・ゴースト)を起こすほかの層の原因
図と実験のあるメインページでこのカードを見る