次の方法で共有


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

バージョン 1.0, 2020/3/1

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

このシナリオでは、タイトルは次のマルチプレイヤー機能をサポートします。

  • カスタム マッチメイキング

    タイトルでは、カスタム マッチメイキング サービスが実装されます。 このサービスでは、まず (必要に応じて) プレイヤーをチームとマッチングしてから、チームとプレイヤーを一緒にマッチングします。

  • 専用サーバー

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

  • カスタム ランキング

    タイトル サービスでは、プレイヤーの進行状況に関する詳細情報を含むカスタム ランキングを実装します。

  • 複数のゲーム モード/設定

    タイトルでは、協力プレイとチームベースなどの複数のゲーム モードをサポートし、プレイヤーがマップ、ゲーム サイズ、ルール、その他の設定をこれらのモードに対して構成できるようにします。

  • ゲーム内通貨

    タイトルでは、購入可能な (プレミアム) ゲーム内通貨と共にゲーム内ストアを提供します。 この通貨により、プレイヤーはチームのパワーアップを購入できます。 プレイヤー キャラクターの外観を装飾するアイテムを購入することもできます。

  • DLC

    購入可能なダウンロード コンテンツには、新しいマップや追加のキャラクターが含まれます。

タイトル サービス

この例のカスタム タイトル サービスの 1 つは、認証サービスです。 このサービスは、Xbox Live (またはその他のマルチプレイヤー ネットワーク) アカウントをタイトル固有のアカウントにリンクするために使用されます。 プレイヤーがサービスに初めて接続するときに、アカウント リンクが暗黙的に実行され、新しいクロスネットワーク プレイヤー ID が作成されます。 Xbox Live では、プレイヤーの XUID が一意のプレイヤー ID として使用され、タイトル固有のアカウントにリンクされます。 使用する前に XUID アクセスの承認が必要です。DAM に相談する必要があります。

タイトル固有のアカウントには、ネットワークの起点に関係なくすべてのタイトル サービスがプレイヤーを処理し、プレイヤーに関するメタデータを格納できるようにする一意 ID (GUID) があります。 この例では、マルチプレイヤー ネットワークと基本的なゲームプレイのプレイヤー統計は、このアカウントに格納されます。

タイトル サービスでは、タイトル固有のアカウントのマルチプレイヤー ネットワーク情報を使用して、マルチプレイヤー機能を Xbox Live プレイヤーだけに制限できるようにします。

タイトル フロー

通常のマルチプレイヤー ゲームでは、クロスネットワーク機能の準拠フローは、最初にプレイヤーがマルチプレイヤー モードに入ったときに開始します。

この例では、タイトルは次の手順を実行します。

  1. 権限の検証

    マルチプレイヤーを開始する前に、タイトルでマルチプレイヤー権限 (254 と 189) を検証します。 権限が拒否された場合、タイトルはマルチプレイヤー モードに入りません。

    タイトルでは、通信権限 (252) をチェックし、音声とテキスト チャットを適宜終了/無効化する必要もあります。

  2. クロスネットワーク権限の検証

    この例では、タイトルによってクロスネットワーク ゲームプレイが既定のマッチメイキング体験に統合されます。 プレイヤーがマッチメイキング体験に入ると、タイトルによってクロスネットワーク プレイ権限 (185) が検証されます。 権限が拒否された場合は、Xbox Live 内のマッチメイキングのみ可能です。

    プレイヤーがクロスネットワーク ゲームプレイに初めて配置されたときに、クロスネットワーク ゲームプレイがアクティブであることを示す通知がタイトルによって提示されます。

  3. チーム マッチメイキング

    タイトルのマッチメイキング サービスでは、マッチメイキング ルールに基づいて、まずクロスネットワーク プレイヤーからチームが作成されます。

  4. チーム/ロビー MPSD セッションの作成と参加

    タイトルのマッチメイキング サービスは、Xbox Live へのサービス間呼び出しを介して MPSD ロビー セッションを作成します。 すべての Xbox Live ユーザーがこのロビー セッションに参加します。サービスはカスタム プロパティを使用して、セッションの Xbox Live 以外のユーザーに関するヒントを追加で提供します。 これらのヒントは、次の手順でセッションの状態を設定するために、クライアント ロジックにより使用される場合があります。

  5. チーム/ロビー MPSD セッションの設定

    Xbox Live クライアントでは、ロビー セッションがアクティビティ セッションとして設定されます。 セッションの参加可能性とクローズド ステータスは、クロスネットワーク プレイヤーのステータスに従って設定する必要があります。 Xbox Live プレイヤーは、クロスネットワーク チームに残っている限り、このセッションに残ります。

    セッションがいっぱいの (または以降のフローでいっぱいになった) 場合は、サービスまたはロビー アービターがセッションをクローズドに設定する必要があります。 それ以上プレイヤー スロットがないアクティビティ セッションを参加可能にしてはなりません。

  6. チーム ロビー

    チーム ロビーには、Xbox Live プレイヤーと他のマルチプレイヤー プラットフォームのプレイヤーの両方が存在します。 ボイス チャットは、カスタム タイトル サービスを通じて Xbox Live プレイヤー間で有効になります。

    すべてのプレイヤー (Xbox Live/Xbox Live と Xbox Live/Xbox Live 以外) 間のボイス チャットは、必要なすべてのプライバシーの確認とアクセス許可チェックの後でのみ有効になります。 Xbox Live 以外のフレンド関係の場合、タイトルでは Xbox Live 以外のネットワーク フレンド関係データが使用されます。

    チーム ロビーでは、Xbox Live プレイヤーと Xbox Live 以外のプレイヤーは、タイトル アカウント ID によって一意に識別されます。 すべてのプレイヤーの識別子には、ゲーマータグ、および他のマルチプレイヤー ネットワークの同等のプレイヤー名が表示されます。

    ロビー UI でのプレイヤーのロスターの例は次のとおりです。

    ロビー UI のプレイヤー名簿の例を示す画像。

    ロビー UI で、チーム リーダーは次の手順のマッチ プロパティ (レベルやカスタム ルールなど) を選択して別のチームとのゲーム セッションを検索してから、マッチ要求を開始します。

  7. ゲーム セッション マッチメイキング

    この手順では、既存のクロスネットワーク チームは、チーム リーダーによって追加のマッチ プロパティと共にマッチメイキングに送信されます。 これらのプロパティは最適なマッチを特定するために使用され、マッチに対して 2 つのチームの新しいセットが生成されます。 この時点で、マッチ サービスは両方のチームの専用サーバーも識別します。

  8. ゲーム MPSD セッションの作成と参加

    匿名ゲーム セッション マッチメイキングの結果は、Xbox Live へのサービス間呼び出しを介してマッチ サービスまたは専用サービスによって作成される MPSD ゲーム セッションです。 すべての Xbox Live ユーザーがこのゲーム セッションに参加します。サービスはカスタム プロパティを使用して、セッションの Xbox Live 以外のユーザーに関するヒントを追加で提供します。

    これらのヒントは、セッションの状態を設定するために、クライアント ロジックにより使用される場合があります。

  9. 専用サーバーへの接続

    最後の手順では、すべてのクライアントが専用サーバーに安全に接続し、クロスネットワーク ゲームプレイを開始します。 マルチプレイヤー ネットワーク間のすべてのトラフィックは、専用サーバー経由でルーティングされ、ピアツーピア接続は許可されません。

  10. ゲームプレイの完了

    ゲームプレイ マッチが完了した後、チームは次のことを選択できます。

    • マッチのリプレイ

      プレイヤーはサーバーに接続されたままになり、MPSD ゲーム セッションに残ります。 プレイヤーは、新しいゲームプレイ マッチを開始します。

    • 新しい対戦相手の検索

      プレイヤーはサーバーから切断し、MPSD ゲーム セッションを離れます。 プレイヤーはロビー セッションに残り、次のラウンドのマッチメイキングのロビー画面に戻ります。

セッション管理

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

  • ロビー セッション

    このセッションは、Xbox Live へのサービス間呼び出しを介してマッチメイキング サービスによって作成されます。 これには、作成時のチームにおけるすべての Xbox Live プレイヤーの予約が含まれます。 これは、プレイヤーが招待の送信または途中参加を行うことができるセッションです。 招待と途中参加は、Xbox Live システムを使用する必要があり、ネットワークを越えて使用することはできません。 そのため、すべての Xbox Live プレイヤーは、このセッションをアクティビティ セッションとして設定します。

  • ゲーム セッション

    このセッションは、Xbox Live へのサービス間呼び出しを介してマッチメイキング サービスによって作成されます。 これには、ゲーム セッションにおける (チームを超えた) すべての Xbox Live プレイヤーの予約が含まれます。 Xbox Live プレイヤーのマルチプレイヤー アクティビティの追跡に使用されます。

Xbox Live 以外のプレイヤーは、MPSD セッションにおいてセッション メンバーとして直接表現されることはありません。 タイトルではカスタム セッション プロパティでプレイヤーの存在だけが追跡されます。

{{"name":"jackplayer"},{"name":"johnplayer"},{"name":"joeplayer"}}

このリストと Xbox Live セッション メンバーは、セッションがいっぱいかどうかの確認に使用できます。 いっぱいの場合は、正しく動作させるには Xbox Live の招待と途中参加の機能を無効にする必要があります。 プレイヤー (またはサーバー) は、この機能を無効にするためにセッションに closed プロパティを設定します。

ゲームプレイでプレイヤーを追跡するために使用する MPSD セッションでは、Xbox 要件を順守するためにゲームプレイ機能を有効にする必要があります。

プレイヤー間の通信のブロック/レポート

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

  • Xbox Live プレイヤーのブロック

    タイトルでは、check_multiple_permissions_with_multiple_target_users を使用して、マルチプレイヤーや別の Xbox Live プレイヤーとのチャットの権限と、Xbox Live 以外のプレイヤー/Xbox Live 以外のフレンドのプレイヤー クラスをチェックします。 タイトルでは、ShowProfileCardAsync を通じて別のプレイヤーのプロフィールにアクセスすることもできます。 ブロックは、プレイヤーのプロフィール UI で実行することができます。

  • Xbox Live 以外のプレイヤーのブロック

    タイトルでは、Xbox Live 以外のプレイヤーとの通信のブロックをサポートするために、タイトル内ブロック リストが使用されます。 このリストはタイトル サービス上で管理され、マルチプレイヤーのアクセス許可が確認されます。 クロスネットワーク チャットは、既定では使用できません。 カスタム タイトル UI を通じてタイトル内で Xbox Live 以外のプレイヤーをブロックできます。

    カスタム タイトル UI を使用して Xbox Live 以外のプレイヤーをブロックする

  • Xbox Live プレイヤー レポート

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

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

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

マーケットプレース

Xbox Live と他のマルチプレイヤー ネットワークでのゲーム通貨の購入は、タイトル サービスで追跡されます。 タイトルでは、すべてのタイトル バージョン間で共有される仮想通貨ウォレットとゲーム内アイテム インベントリーが提供されます。

Xbox Live 以外のタイトル バージョンについては、次の制限が適用されます。

  • プレイヤー スキン

    プレイヤー スキンは、ゲーム内通貨でのみ購入できます。 ゲーム内通貨は、すべてのネットワークで使用可能な統一ゲーム内ウォレットで管理されます。 すべてのプレイヤー スキンは、すべてのタイトル バージョンで同じです。

  • 消費型アイテム

    消費型アイテムは、ゲーム内通貨でのみ購入できます。 通貨と同様に、消費型アイテムは統一ゲーム内インベントリーで管理されます。

  • ダウンロード コンテンツ

    Xbox Live プラットフォームでは、ダウンロード コンテンツ (新しいマップとキャラクターの種類) は Microsoft Store で管理されます。 他のストアでの使用権は共有されません。

    すべてのプレイヤーは、同じマップで一緒にプレイするために、各自のストアに有効な使用権を持っている必要があります。 購入していないキャラクターの種類は表示されますが、対応する使用権を持たないプレイヤーではプレイできません。

実績

タイトルには、プレイしたマルチプレイヤー ゲームなど、マルチプレイヤー操作に基づく複数の実績があります。 この (および同様の) 実績についての実績進行状況には、クロスネットワーク マルチプレイヤー ゲーム セッションが含まれます。

タイトルには、クロスネットワーク ゲームプレイに限定される実績は含まれません。 Xbox One タイトルの実績についての実績進行状況は、他のタイトル バージョンでのゲームプレイによるものである可能性があります。

プレイヤーの進行状況

プレイヤーの進行状況は、タイトルのすべてのバージョン間で共有されます。 カスタム タイトル アカウントには、プレイヤーの進行状況の情報が含まれます。

ゲーム録画/配信

タイトルでは、ゲーム録画とスクリーンショットに加えて、クロスネットワーク マルチプレイヤー マッチの配信のサポートが提供されます。

ランキング

タイトルのランキングは、Xbox Live のランキングを超える広範なランキング機能を提供するタイトル サービスを通じて実装されます。 サービスでは基になる複数のランキングが作成され、それらが並列に更新されます。マルチプレイヤー ネットワークごとに 1 つのランキングと、すべてのマルチプレイヤー ネットワークからの結果を結合した 1 つのマージされたランキングがあります。

クロスネットワーク マルチプレイヤーが有効になっている場合は、マージされたランキングが表示されます。 すべてのプレイヤーは、マルチプレイヤー ロビーと同じ方法で表されます。

マージされたランキングの画像

プレイヤーがクロスネットワーク ゲームプレイ機能を無効にすると、Xbox Live のみのランキングが表示されます。

タイトル固有のアカウントを使用して、ランキング サービスですべてのプレイヤーが内部的に識別されます。 Xbox Live プレイヤーの外部識別子は、クエリしているタイトル インスタンスによって異なります。 Xbox Live タイトル インスタンスでは、XUID が返され、クライアントは検索を実行してプレイヤーのゲーマータグ文字列を特定します。 Xbox Live 以外のタイトル インスタンスでは、プレイヤーのゲーマータグまたは DisplayName 文字列が直接返されます。 サービスは、Xbox Live へのサービス間呼び出しからこの文字列を取得し、最大 4 時間キャッシュします。