Skip to main content
このトピックでは、伝統的なマルチプレイヤーオンラインバトルアリーナ (MOBA) ゲームにおけるクロスネットワーク機能とフローを示すシナリオ例について説明します。1 つの可能な設計と実装パスを提示します。このトピックは XR-007: クロスネットワークプレイ、データ使用、およびコンパニオンアプリのインタラクション をサポートします。 このシナリオ例では、タイトルは次のマルチプレイヤー機能をサポートしています。

タイトルサービス

このシナリオ例におけるカスタムタイトルサービスの 1 つは、認証サービスです。この認証サービスは、XBOX Live (または他のマルチプレイヤーネットワーク) のアカウントをタイトル固有のプレイヤーアカウントとリンクするアカウントリンクに使用されます。プレイヤーが認証サービスに初めて接続すると、アカウントリンクがサイレントに実行され、新しいクロスネットワークプレイヤーアイデンティティが作成されます。 XBOX Live の場合、プレイヤーの XUID がタイトル固有のアカウントにリンクされる一意のプレイヤー識別子として使用されます。XUID アクセスは使用前に承認される必要があり、開発者アカウントマネージャー (DAM) と協議する必要があります。タイトル固有のアカウントには、ネットワーク元と保存されたプレイヤーメタデータに関係なくすべてのタイトルサービスがプレイヤーを処理できるグローバル一意識別子 (GUID) があります。このシナリオ例では、マルチプレイヤーネットワークと基本的なゲームプレイのプレイヤー統計がこのアカウントに保存されます。
タイトルサービスは、タイトル固有のアカウント内のマルチプレイヤーネットワーク情報を使用して、マルチプレイヤー機能を XBOX Live プレイヤーのみに制限できるようにします。

タイトルフロー

典型的なマルチプレイヤーゲームでは、クロスネットワーク機能の準拠フローはプレイヤーがマルチプレイヤーモードに入るときに開始されます。このシナリオ例では、タイトルは次の手順を実行します。
  1. 権限の検証。 マルチプレイヤーセッションを開始する前に、タイトルはマルチプレイヤー権限 (254 および 189) を検証します。権限が拒否された場合、タイトルはマルチプレイヤーモードに入りません。タイトルはコミュニケーション権限 (252) もチェックし、それに応じて音声およびテキストチャットを終了または無効にする必要があります。
  2. クロスネットワーク権限の検証。 このシナリオ例では、タイトルはデフォルトのマッチメイキング体験にクロスネットワークゲームプレイを統合しています。プレイヤーがマッチメイキング体験に入ると、タイトルはクロスネットワークプレイ権限 (185) を検証します。権限が拒否された場合、XBOX Live 内でのマッチメイキングのみが可能になります。プレイヤーが初めてクロスネットワークゲームプレイに配置されるとき、タイトルはクロスネットワークゲームプレイがアクティブであることを通知します。
  3. チームマッチメイキング。 タイトルのマッチメイキングサービスは、マッチメイキングルールに基づいて、クロスネットワークプレイヤーからチームを形成します。
  4. チームまたはロビーの Multiplayer Session Directory (MPSD) セッションを作成して参加します。 タイトルマッチメイキングサービスは、XBOX Live へのサービス間呼び出しを通じて Multiplayer Session Directory (MPSD) ロビーセッションを作成します。すべての XBOX Live プレイヤーがこのロビーセッションに参加します。サービスはカスタムプロパティを使用して、XBOX Live を使用していないセッション内のプレイヤーに関するヒントを追加提供します。これらのヒントは、次の手順でセッション状態を設定するためにクライアントロジックで使用できます。
  5. チームまたはロビーの MPSD セッションを設定します。 XBOX Live クライアントはロビーセッションをアクティビティセッションとして設定します。セッションの参加可能性と closed 状態は、クロスネットワークプレイヤーの状態に応じて設定する必要があります。XBOX Live プレイヤーは、クロスネットワークチームに残っている限りこのセッションにとどまります。セッションが満員 (またはフローで後に満員になる) の場合、サービスまたはロビーアービターはセッションを closed に設定する必要があります。プレイヤースロットが残っていないアクティビティセッションは、決して参加可能であってはなりません。
  6. チームロビー。 チームロビーでは、XBOX Live プレイヤーと他のマルチプレイヤープラットフォームのプレイヤーの両方が存在します。カスタムタイトルサービスを通じて、XBOX Live プレイヤー間で音声チャットが有効化されます。すべてのプレイヤー (XBOX Live/XBOX Live および XBOX Live/XBOX Live を使用していないユーザー) 間の音声チャットは、必要なすべてのプライバシーおよびパーミッションチェックを検証した後にのみ有効化されます。XBOX Live を使用しないフレンド関係については、タイトルは XBOX Live を使用しないフレンドのネットワークフレンド関係データを使用します。チームロビーでは、XBOX Live プレイヤーと XBOX Live を使用しないプレイヤーはタイトルアカウントのアイデンティティによって一意に識別されます。すべてのプレイヤー識別子には、ゲーマータグや他のマルチプレイヤーネットワーク用の同等のプレイヤー名も表示されます。 次のスクリーンショットは、ロビー内のプレイヤーロースター UI の例を示しています。 ロビー UI で、チームリーダーは次のステップのマッチプロパティ (レベルやカスタムルールなど) を選択して別のチームとのゲームセッションを見つけ、マッチを開始します。
  7. ゲームセッションのマッチメイキング。 既存のクロスネットワークチームは、チームリーダーが設定した追加のマッチプロパティとともにマッチメイキングに提出されます。これらのプロパティは、マッチのための新しい 2 つのチームの中で最良のマッチ結果を特定するために使用されます。この時点で、マッチサービスは両チームの専用サーバーも特定します。
  8. ゲーム MPSD セッションを作成して参加します。 匿名ゲームセッションマッチメイキングの結果は、マッチサービス (または専用サービス) が XBOX Live へのサービス間呼び出しを通じて作成した MPSD ゲームセッションです。すべての XBOX Live プレイヤーがこのゲームセッションに参加し、サービスはカスタムプロパティを使用して XBOX Live を使用していないセッション内のプレイヤーに関するヒントを追加提供します。これらのヒントは、セッション状態を設定するためにクライアントロジックで使用できます。
  9. 専用サーバーに接続。 最終ステップとして、すべてのクライアントが専用サーバーに安全に接続し、クロスネットワークゲームプレイを開始します。マルチプレイヤーネットワーク間のすべてのトラフィックは専用サーバー経由でルーティングする必要があります。ピアツーピア接続は許可されません。
  10. ゲームプレイの完了。 ゲームプレイマッチが完了した後、チームは次の表に示すアクションを実行することを選択できます。

セッション管理

すべての XBOX 要件に準拠するために、タイトルは次の表に示すように XBOX Live プレイヤー用に 2 つの MPSD セッションを作成します。 XBOX Live を使用しないプレイヤーは、MPSD セッションでセッションメンバーとして直接表現されません。タイトルは、次のコード例に示すようにカスタムセッションプロパティで存在のみを追跡します。
このリストと XBOX Live のセッションメンバーを使用して、セッションが満員かどうかを判定できます。満員の場合、正しい動作のために XBOX Live 用の招待および参加継続機能を無効化する必要があります。プレイヤー (またはサーバー) がセッションの closed プロパティを設定してこの機能を無効化します。
ゲームプレイ内のプレイヤーを追跡するために使用される MPSD セッションでは、XBOX 要件に準拠するために gameplay 機能を有効にする必要があります。

プレイヤーコミュニケーションのブロックと報告

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

XBOX Live プレイヤーのブロック

タイトルは、XblPrivacyBatchCheckPermissionAsync を使用してマルチプレイヤー用の権限をチェックします。タイトルはまた、別の XBOX Live プレイヤーとチャットする場合や、XBOX Live を使用しないプレイヤー/XBOX Live を使用しないフレンドのプレイヤークラスとチャットする場合にもこれを使用します。タイトルは、XGameUiShowPlayerProfileCardAsync を通じて別のプレイヤーのプロファイルへのアクセスも提供します。プレイヤーは、プレイヤープロファイル UI で他のプレイヤーをブロックできます。

XBOX Live を使用しないプレイヤーのブロック

タイトルは、XBOX Live を使用しないプレイヤーとのコミュニケーションのブロックをサポートするために、タイトル内ブロックリストを使用します。このリストはタイトルサービスで管理され、マルチプレイヤー権限のためにチェックされます。クロスネットワークチャットはデフォルトでは利用できません。XBOX Live を使用しないプレイヤーは、次のスクリーンショットに示すようにカスタムタイトル UI を通じてタイトル内でブロックできます。

XBOX Live プレイヤーの報告

タイトルはプレイヤーの報告も許可します。XBOX Live の場合、プレイヤーはプレイヤープロファイル UI を通じて他のプレイヤーを報告します。XBOX Live のエンフォースメントがプレイヤーレポートを処理します。

XBOX Live を使用しないプレイヤーの報告

XBOX Live を使用しないプレイヤーの場合、タイトルはカスタム報告 UI フローを提供します。タイトルは、他のマルチプレイヤーネットワークによるガイドラインに基づいて、タイトルに対するプレイヤーレポートを適切に処理します。

Microsoft Store

XBOX Live や他のマルチプレイヤーネットワーク上でのゲーム内通貨の購入は、タイトルサービスで追跡されます。タイトルは、すべてのタイトルバージョン間で共有された仮想通貨ウォレットとゲーム内アイテムインベントリを提供します。次の表に示す制限は、XBOX Live 以外のタイトルバージョンに適用されます。

実績

タイトルには、プレイされたマルチプレイヤーゲームを含む、マルチプレイヤーアクションに基づく複数の実績があります。この (および同様の) 実績の進行状況には、クロスネットワークマルチプレイヤーゲームセッションが含まれます。タイトルには、クロスネットワークゲームプレイに限定された実績はありません。XBOX One ファミリー (以降) のタイトル実績の進行状況は、他のタイトルバージョンでのゲームプレイを通じて可能です。

プレイヤーの進行状況

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

Game DVR とブロードキャスト

タイトルは、クロスネットワークマルチプレイヤーマッチでの Game DVR とスクリーンショット、およびブロードキャストのサポートを提供します。

リーダーボード

タイトルのリーダーボードは、XBOX Live のリーダーボードを超える広範なリーダーボード機能を提供するタイトルサービスを通じて実装されます。サービスは複数の基礎リーダーボードを作成し、それらを並行して更新します。各マルチプレイヤーネットワークごとに 1 つのリーダーボードと、すべてのマルチプレイヤーネットワークの結果を組み合わせた 1 つのマージされたリーダーボードです。クロスネットワークマルチプレイヤーが有効になっている場合、次のスクリーンショットに示すようにマージされたリーダーボードが表示されます。
すべてのプレイヤーは、マルチプレイヤーロビーと同じ方法で表現されます。
プレイヤーがクロスネットワークゲームプレイ機能を無効にしている場合、XBOX Live のみのリーダーボードが表示されます。 タイトル固有のアカウントは、リーダーボードサービス上のすべてのプレイヤーを内部的に識別するために使用されます。XBOX Live プレイヤーの外部識別子は、クエリしているタイトルインスタンスによって異なります。
  • XBOX Live のタイトルインスタンスでは、XUID が返され、クライアントはプレイヤーのゲーマータグ文字列を判定するためのルックアップを実行します。
  • XBOX Live 以外のタイトルインスタンスでは、プレイヤーのゲーマータグまたは DisplayName 文字列が返されます。サービスは、XBOX Live へのサービス間呼び出しからこの文字列を取得し、最大 4 時間キャッシュします。
最終更新日 2026年8月25日