次の方法で共有


クロスネットワーク マルチプレイヤーの実装例: MMO

このトピックでは、大規模なマルチプレイヤー オンライン (MMO) ゲームでのクロスネットワーク機能とフローの例について説明します。 この記事では、XR-007: クロスネットワーク プレイ、データの利用、コンパニオン アプリの対話 をサポートしています。

次のシナリオ例では、MMO ゲームで推奨されるクロスネットワーク機能とフローを示します。 1 つの考えられる設計と実装のパスを示します。 このシナリオでは、タイトルは次のマルチプレイヤー機能をサポートします。

オープン ゲーム ワールド

タイトルでは、プレイヤー間の相互作用が可能なオープン ゲーム ワールドがサポートされます。 プレイヤーは、プレイヤー対環境 (PvE) 体験のオープン ゲーム ワールドで緩やかにグループ化できます。 プレイヤー対プレイヤー (PvP) 体験は 1:1 で、選択した領域でのみ許可されます。

インスタンス化されたゲーム セクションのカスタム マッチメイキング

タイトルでは、インスタンス化された PvP または PvE ゲームプレイ セクションに入るプレイヤーのカスタム マッチメイキング サービスを実装します。 このサービスでは、プレイヤーやプレイヤーのチームがマッチングされます。

専用サーバー

タイトルのすべてのゲームプレイは専用サーバー上で実行されます。 すべてのトラフィックはこれらのサーバーを介してルーティングされます。

チャット

タイトルでは、プレイヤー間での音声およびテキスト チャットがサポートされます。 すべてのトラフィックはサーバーを経由します。

消費型アイテム

タイトルでは、購入可能な (プレミアム) ゲーム内通貨と共にゲーム内ストアを提供します。 プレイヤーは、この通貨を使用して外観関連のアイテムを購入できます。

ダウンロード コンテンツ (DLC)

購入可能ダウンロード コンテンツ (DLC) には、新しいプレイヤー キャラクター クラスのロックを解除する新しいゲーム リージョンが含まれています。

タイトル サービス

この例では、プレイヤーがゲームの起動後にやり取りする最初のタイトル サービスはタイトル サインイン サービスです。 ゲームをプレイするには、プレイヤーがタイトル アカウントを作成し、そのアカウントを Xbox Live アカウントにリンクする必要があります。 アカウントの作成は、タイトル内またはタイトルの Web ページで行うことができます。

アカウントのリンクでは、プレイヤーの XUID がタイトル固有のアカウントにリンクされます。 アカウントのリンクを実行するには、プレイヤーは、タイトル アカウントのユーザー名とパスワードを使用してタイトルに 1 回サインインします。 XUID を使用するには、その前に XUID アクセスの承認が必要です。それには、デベロッパー アカウント マネージャー (DAM) に相談する必要があります。 タイトルの Web ページで、タイトル アカウントでサインインしているプレイヤーは、アカウントをリンクするために Microsoft アカウントにもサインインします。 タイトル アカウントには、ネットワークの起点に関係なくすべてのタイトル サービスがプレイヤーを処理できるようにする一意 ID (GUID) があります。 タイトル アカウントでは、プレイヤー キャラクター、進行状況、インベントリー、すべてのプレイヤー メタデータなどプレイヤーの状態情報もすべて保存されます。

タイトル フロー

MMO ゲームでは、クロスネットワーク機能の準拠フローは、プレイヤーがオープン ゲーム ワールドにいるかインスタンス化されたゲームプレイにいるかによって決まります。 次の手順は、いずれの場合にも適用されます。

  1. 権限の検証

    プレイヤーがサインインすると、タイトルで、そのアクティブ プレイヤーのマルチプレイヤー権限 (254 と 189) とクロスネットワーク権限 (185) が検証されます。 いずれかの権限が拒否されると、プレイヤーはタイトルに入ることが許可されず、エラー ダイアログが表示されます。 この時点で、タイトルにより、音声およびテキスト チャットのコミュニケーション権限 (252) も確認され、必要に応じて機能が制限されます。

  2. クロスネットワーク通知

    ゲームを初めて起動すると、ゲームからプレイヤーに、ゲームプレイ中にクロスネットワーク機能が提供されることが通知されます。

    次の手順は、オープン ゲーム ワールドに適用されます。

  3. オープン ゲーム ワールドに入ります。

    プレイヤーはゲームにサインインしてタイトル サーバーに接続した時点で、常にオープン ゲーム ワールドに入ります。

  4. オープン ゲーム ワールドのマルチプレイヤー セッション ディレクトリ (MPSD) セッションに参加します。

    オープン ワールド ゲームプレイに対応するタイトル サーバーは、オープン ゲーム ワールド内のゲーム リージョンを反映する複数の MPSD セッションを作成します。 こうした MPSD セッションの 1 つ以上で、ゲームプレイ機能が有効化されます。 すべての Xbox Live プレイヤーは、プレイヤーのゲーム リージョンのオープン ワールド セッションに参加します。 サーバーでは、Xbox Live と Xbox Live 以外のプレイヤーの両方に関する情報が保持されます。 オープン ゲーム ワールド セッションでは、Xbox Live プレイヤーの途中参加と招待が可能で、サーバーがクライアントからの新しい接続を受け入れない場合にのみクローズドに設定されます。

  5. オープン ゲーム ワールド ゲームプレイを有効にします。

    プレイヤーの権限に応じて、他のプレイヤーとのゲームプレイ機能が利用可能になります。 グローバル テキスト チャットは、通信権限セットを持つプレイヤーに対して常に有効になります。 すべてのテキスト チャット メッセージでは、文字列検証サービスとブロック リストを使用して、攻撃的な言葉使いや用語をフィルター処理します。 同じ検証がプレイヤーの名前に使用されます。

すべてのプレイヤー (Xbox Live/Xbox Live と Xbox Live/Xbox Live 以外のプレイヤー) 間の直接テキスト チャットは、必要なすべてのプライバシーと許可の確認を検証した後にのみ有効になります。 Xbox Live 以外のフレンド関係の場合、タイトルではタイトル固有のフレンド関係が使用されます。

Xbox Live プレイヤー間の直接の対話がタイトル サービスによって追跡され、オープン ゲーム ワールド MPSD セッション内のこれらのプレイヤー間のエンカウント ID を設定するために使用されます。 これにより、互いの最近遊んだプレイヤー リストにプレイヤーが表示されるようになります。

インスタンス化された PvE または PvP ゲームプレイ

次の手順は、インスタンス化された PvE または PvP ゲームプレイに適用されます。

  1. グループ MPSD セッション。

    Xbox Live プレイヤーの場合、タイトルにより、Xbox Live プレイヤーを追跡するための MPSD セッションが作成されます。 Xbox Live 以外のプレイヤーは、タイトル サービスによって追跡されます。

  2. グループ招待と途中参加。

    この例では、ゲームの設計により、参加または招待がプレイヤー グループに制限されています。 Xbox Live プレイヤーの途中参加と招待をサポートするため、グループ MPSD セッションが使用されます。 ゲーム内クロスネットワーク招待は、タイトル サービスでサポートされています。

  3. グループ マッチメイキング。

    タイトルでは、グループ PvP または PvE マッチメイキング フローでクロスネットワーク マルチプレイヤーがサポートされます。 この例では、プレイヤーはマッチメイキング UI を使用して PvP または PvE 体験を選択し、その後他のプレイヤーと共にインスタンス化されたプレイ体験にグループ化されます。

  4. ゲーム MPSD セッションを作成して参加します。

    グループ マッチメイキングの結果は、Xbox Live へのサービス間呼び出しを介してサービスをマッチングすることで作成される MPSD ロビー セッションです。 すべての Xbox Live プレイヤーは、このゲーム セッションに参加し、インスタンス化されたゲームプレイ中はこのセッションに残ります。 このサービスでは、カスタム プロパティを使用してセッション内で Xbox Live を使用していないプレイヤーに関するヒントを追加で提供しています。 これらのヒントは、フローの残りの部分でセッションの状態を設定するために、クライアント ロジックにより使用できます。

  5. インスタンス化されたゲームプレイ。

    すべてのプレイヤーの準備が整うと、インスタンス化されたゲームプレイが開始されます。 この例では、Xbox Live プレイヤー間のチャットも専用サーバー経由で有効になります。 インスタンス化されたゲームプレイ中は、プレイヤーのリストがゲーム UI で表示されます。 このリストは、タイトルのキャラクター名リストです。ゲーマータグまたはプレイヤーの他のネットワーク識別子を表示するオプションも含まれます。 Xbox Live プレイヤーは一意に強調表示されます。 次のスクリーンショットは、このグループ UI の例を示しています。

    MMO グループの例を示すスクリーンショット

  6. ゲームプレイの完了。

    インスタンス化されたゲームプレイが完了すると、チーム プレイヤーはオープン ゲーム ワールドに戻ります。 プレイヤーは MPSD ゲーム セッションを離れ、オープン ゲーム ワールド MPSD セッションをアクティビティ セッションとして設定します。

セッション管理

すべての Xbox 要件に従うために、タイトルでは Xbox Live プレイヤーに対して 2 つの MPSD セッションを作成します。

オープン ゲーム ワールド リージョンのゲーム セッション。

大規模な MPSD セッションは、タイトル サービスによって起動時に作成されます。 これは、タイトル サーバー インスタンスごとに Xbox Live のサービス間呼び出しを行って作成されます。 タイトル サーバー インスタンスのすべてのプレイヤーは、対応する MPSD セッションに参加します。 これらのセッションでは、最近遊んだプレイヤー リストで正しく表現されるように、互いにやり取りする Xbox Live プレイヤーのエンカウント ID がサーバーにより設定されます。

インスタンス化されたゲーム セッション

このセッションは、Xbox Live へのサービス間呼び出しを介してマッチメイキング サービスによって作成されます。 これには、ゲーム セッションにおける (チームを超えた) すべての Xbox Live プレイヤーの予約が含まれます。 これは、Xbox Live プレイヤーの最近遊んだプレイヤー リストに正しいデータを取り込むために使用されます。

グループ セッション

このセッションは、プレイヤーがグループ (1 人のグループ) を作成するとすぐに作成されます。 これは、アクティビティ セッションで途中参加および招待をサポートするために使用されます。 ゲームの設計によっては、特定のゲーム モードでのプレイヤーの参加は行えません。 該当するモードでは、closed プロパティを使用して途中参加と招待を無効にします。

Xbox Live 以外のプレイヤーは、MPSD セッションにおいてセッション メンバーとして直接表現されることはありません。 以下のコード例のように、タイトルは、追跡の目的でカスタム セッション プロパティでそのプレゼンスを追跡します。

{{"name":"kumarplayer"},{"name":"spencerplayer"},{"name":"eliseplayer"}}

このリストと Xbox Live セッション メンバーを使用して、サーバー インスタンスが満杯であるかどうか確認できます。 大規模な MPSD セッションでは、Xbox 要件を順守するためにゲームプレイ機能を有効にする必要があります。

プレイヤーのブロック、ミュート、レポート

タイトルでのプレイヤーのブロックとミュートは、タイトル レベルでサポートされています。

Xbox Live プレイヤーのブロックとミュート

タイトルでは XblPrivacyBatchCheckPermissionAsync を使用してマルチプレイヤーの権限と、他の Xbox Live プレイヤーおよびプレイヤー クラスの Xbox Live 以外のプレイヤー/Xbox Live 以外のフレンドとのチャット権限を確認します。 ブロックとミュートは、プレイヤーのプロファイル UI で実行できます。

Xbox Live 以外のプレイヤーのブロックとミュート

タイトルでは、Xbox Live 以外のプレイヤーのブロックまたはミュートをサポートするために、タイトル内ブロック リストが使用されます。 このリストはタイトル サービス上で管理され、マルチプレイヤーのアクセス許可が確認されます。 カスタム タイトル UI を通じてタイトル内で Xbox Live 以外のプレイヤーをミュートできる必要があります。

Xbox Live プレイヤー レポート

タイトルでは、プレイヤーのレポートも可能です。 Xbox Live の場合、プレーヤーはプレーヤー プロファイル UI 経由でレポートをファイルします。 Xbox Live エンフォースメントによってプレイヤー レポートが処理されます。

Xbox Live 以外のプレーヤーのレポート

Xbox Live 以外のプレイヤーの場合、タイトルではカスタム レポート UI フローが提供されます。 タイトルでは、適切にプレイヤーのレポートを処理し、他のマルチプレイヤー ネットワークによるガイドラインに基づいてプレイヤーのレポートを処理します。

Microsoft Store

Xbox Live と他のマルチプレイヤー ネットワークでの仮想通貨の購入は、次の条件に応じてタイトル サービスで追跡されます。

仮想通貨

プレイヤーは、すべてのプラットフォームで仮想通貨とアイテムの統合ウォレットを持ちます。

DLC

DLC により、プレイヤーがゲームの新しいリージョンにアクセスする方法が提供されます。 Microsoft Store は、Xbox Live プラットフォームでの購入に使用されます。 プレイヤーは対応する DLC リージョンにのみ入ることができ、各自のストアのリージョンの使用権を持つ他のキャラクターとプレイすることができます。

実績

タイトルの実績は、オープン ゲーム ワールドとインスタンス化されたゲームプレイ アクションに基づいています。 実績の進行状況には、クロスネットワーク ゲームプレイ体験が含まれます。 タイトルには、クロスネットワーク ゲームプレイのみに限定される実績は含まれません。

プレイヤーの進行状況

プレイヤーの進行状況は、タイトルのすべてのバージョン間で共有されます。 この目的では、複数のマルチプレイヤー ネットワークとカスタム タイトル サービスにリンクされたカスタム タイトル アカウントが使用されます。

ゲーム録画と配信

タイトルでは、オープン ゲーム ワールドとインスタンス化されたゲームプレイのゲーム録画とスクリーンショットが可能ですが、すべてのテキスト チャットは画像バッファーから削除されます。

ランキング

タイトルではランキングがサポートされません。