> ## Documentation Index
> Fetch the complete documentation index at: https://devdocs.xbox.com/llms.txt
> Use this file to discover all available pages before exploring further.

# XR-007 クロス ネットワーク プレイ — MMO 実装例

> MMO およびパーシステント ワールド タイトル向けの XR-007 実装ガイダンス: パブリッシャー アカウント、常時オンライン セッション、ゲーム内チャット ルーム、XBOX 特権を扱います。

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

バージョン 2.0、2025/9/1

以下のシナリオ例は、大規模マルチプレイヤー オンライン ゲームにおける推奨のクロス ネットワーク機能とフローを示すためのものです。設計と実装の一例を示します。

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

* **オープン ゲーム ワールド** — タイトルは、プレイヤー間の相互作用を可能にするオープン ゲーム ワールドをサポートします。プレイヤーは、プレイヤー対環境 (PvE) 体験のためにオープン ワールドで緩やかにグループを組むことができます。プレイヤー対プレイヤー (PvP) 体験は 1 対 1 のみで、限定された地域でのみ許可されます。
* **インスタンス化されたゲーム区間向けのカスタム マッチメイキング** — タイトルは、インスタンス化された PvP または PvE のゲームプレイ区間に入るプレイヤー向けのカスタム マッチメイキング サービスを実装します。このサービスは、プレイヤー同士やプレイヤー チーム同士をマッチングします。
* **専用サーバー** — タイトルのすべてのゲームプレイは専用サーバー上で実行されます。すべてのトラフィックもこれらのサーバーを経由してルーティングされます。
* **チャット** — タイトルは、すべてのプレイヤー間の音声およびテキスト チャットをサポートします。グローバル テキスト チャットもサポートされます。すべてのトラフィックはサーバー経由でルーティングされます。
* **消耗品** — タイトルは、購入可能な (プレミアム) ゲーム内通貨を扱うゲーム内ストアを提供します。この通貨により、プレイヤーはアイテムや消耗品を購入できます。
* **DLC** — 購入可能なダウンロード コンテンツには、新しいプレイヤー キャラクター クラスをアンロックするゲームの新規領域が含まれます。

## タイトル サービス

この例では、プレイヤーがゲーム起動時に最初にやり取りするタイトル サービスは、タイトルのサインイン サービスです。ゲームをプレイするには、プレイヤーはタイトル アカウントを作成し、XBOX network アカウントと関連付ける必要があります。アカウント作成はタイトル内、またはタイトルの Web ページから行えます。

アカウントの関連付けにはプレイヤーの XUID が使用され、タイトル固有アカウントに関連付けられます。タイトル内では、プレイヤーはアカウント リンクを行うためにタイトル アカウントのユーザー名/パスワードでサインインします。XUID アクセスは使用前に承認が必要で、[Microsoft 担当者](/publishing/game-publishing/resources/managed-support/overview-microsoft-representatives-and-contacts) と協議する必要があります。XUID は伝送中と保存中の両方で保護する必要があります。

タイトルの Web ページでは、タイトル アカウントにサインインしているプレイヤーが Microsoft アカウントにもサインインすることでアカウントを関連付けます。詳細は *Web サイトのアカウント リンク* のドキュメント トピックを参照してください。

タイトル アカウントには一意の ID (GUID) があり、これによりすべてのタイトル サービスはネットワークの発信元にかかわらずプレイヤーを扱うことができます。タイトル アカウントは、プレイヤー キャラクター、進行状況、インベントリ、その他のプレイヤー メタデータなど、すべてのプレイヤー状態も保存します。

## タイトルのフロー

MMO ゲームでは、クロス ネットワーク機能の準拠フローは、プレイヤーがオープン ワールドにいるかインスタンス化されたゲームプレイにいるかによって異なります。

以下の手順はすべての場合に適用されます。

1. **特権の検証** プレイヤーのサインイン後、タイトルは有効なプレイヤーのマルチプレイヤー特権 (254 および 189) とクロス ネットワーク特権 (185) を検証します。いずれかの特権が拒否されている場合、プレイヤーはタイトルに入ることができず、エラー ダイアログが表示されます。この時点で、タイトルは音声およびテキスト チャットのために通信特権 (252) も確認し、機能を適切に制限する必要があります。
2. **クロス ネットワーク通知** 初回起動時に、ゲームプレイにクロス ネットワーク機能があることをプレイヤーに通知します。

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

1. **オープン ワールドへの入場** プレイヤーはゲームへのサインイン時に常にオープン ワールドに入り、タイトル サーバーに接続します。
2. **オープン ワールド MPSD セッションへの参加** オープン ワールド ゲームプレイのタイトル サーバーは、オープン ゲーム ワールドのゲーム領域を反映した複数の MPSD セッションを作成します。これらの MPSD セッションのうち 1 つ以上には gameplay capability が有効化されています。すべての XBOX network ユーザーは、自分のゲーム領域のオープン ワールド セッションに参加します。サーバーは XBOX network プレイヤーと非 XBOX network プレイヤーの両方の情報を保持します。オープン ワールド セッションは、XBOX network プレイヤーに対して途中参加と招待を許可し、サーバーがクライアントからの新規接続を受け入れない場合にのみ closed に設定されます。
3. **オープン ワールド ゲームプレイの有効化** 他プレイヤーとのゲームプレイ機能は、プレイヤー特権に応じて利用できます。
   * グローバル テキスト チャットは、通信特権が設定されているプレイヤーに対して常に有効です。
   * すべてのテキスト チャット メッセージには、攻撃的な言葉や表現をフィルターするために文字列検証サービスとブロック リストが使用されます。
   * すべてのプレイヤー (XBOX network 同士、および XBOX network と非 XBOX network) 間の直接テキストまたは音声チャットは、必要なプライバシーとアクセス許可のチェックを検証してからのみ有効になります。詳細は *プレイヤーのブロック/ミュート/報告* を参照してください。非 XBOX network のフレンド関係については、タイトル固有のフレンド関係を使用します。XBOX network プレイヤー間の直接的なやり取りはタイトル サービスによって追跡され、オープン ワールドの MPSD セッションでこれらのプレイヤー間の encounter ID を設定するために使用されます。これにより、プレイヤーは互いの最近プレイしたプレイヤー一覧に表示されるようになります。

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

1. **グループ MPSD セッション** XBOX network プレイヤー向けに、タイトルは XBOX network プレイヤーを追跡する MPSD セッションを作成します。非 XBOX network プレイヤーはタイトル サービスを通じて追跡されます。
2. **グループの招待/途中参加** この例のゲーム設計では、参加や招待をプレイヤー グループに限定します。グループ MPSD セッションは、XBOX network プレイヤーの途中参加と招待をサポートするために使用されます。ゲーム内のクロス ネットワーク招待はタイトル サービスによってサポートされます。タイトルを起動する XBOX network 招待は、招待されたゲームプレイへの自動 UI フローを提供し、プレイヤーを招待されたゲーム内アクティビティ/パーティーに参加させます。参加が失敗した場合は、関連するエラーがプレイヤーに明確に伝えられます。そのような失敗には、ゲーム グループが満員、参加不可のアクティビティ、プレイヤーがオフラインなどがあります。
3. **グループのマッチメイキング** タイトルは、グループ PvP または PvE のマッチメイキング フローに対してクロス ネットワーク マルチプレイヤーを有効化します。この例では、プレイヤーはマッチメイキング UI を使用して PvP または PvE 体験を選択し、他のプレイヤーとインスタンス化されたプレイ体験にグループ化されます。
4. **ゲーム MPSD セッションの作成と参加** グループ マッチメイキングの結果として、マッチ サービスから XBOX サービスへのサービス間呼び出しにより MPSD ロビー セッションが作成されます。すべての XBOX network ユーザーはこのゲーム セッションに参加し、インスタンス化されたゲームプレイの間このセッションに留まります。サービスはカスタム プロパティを使用して、セッション内の非 XBOX network ユーザーに関するヒントを追加提供します。これらのヒントは、フローの残りの部分でセッション状態を設定するためにクライアント ロジックで使用できます。
5. **インスタンス化されたゲームプレイ** すべてのプレイヤーが準備完了すると、インスタンス化されたゲームプレイが始まります。この例では、専用サーバーを介して XBOX network プレイヤー間のチャットも有効化されます。インスタンス化されたゲームプレイ中、ゲーム UI にプレイヤーの一覧が表示されます。この一覧はタイトル キャラクター名の一覧で、プレイヤーのゲーマータグや他のネットワーク識別子を確認するオプションが用意されています。XBOX network プレイヤーは一意にハイライトされます。
6. **ゲームプレイの完了** インスタンス化されたゲームプレイが完了すると、チームのプレイヤーはオープン ゲーム ワールドに戻ります。プレイヤーは MPSD ゲーム セッションを離れ、オープン ワールドの MPSD セッションをアクティビティ セッションとして設定します。

## セッション管理

すべての XBOX 要件を遵守するために、タイトルは XBOX network プレイヤー向けに 2 つの MPSD セッションを作成します。

* **オープン ワールド領域ゲーム セッション** — タイトル起動時に、タイトル サーバー インスタンスごとに XBOX サービスへのサービス間呼び出しを通じてタイトル サービスが大きな MPSD セッションを作成します。タイトル サーバー インスタンスのすべてのプレイヤーが、対応する MPSD セッションに参加します。これらのセッションでは、サーバーは相互にやり取りする XBOX network プレイヤー間の encounter ID を設定し、最近プレイしたプレイヤー一覧に正しく反映されるようにします。
* **インスタンス化ゲーム セッション** — このセッションはマッチメイキング サービスから XBOX サービスへのサービス間呼び出しで作成されます。ゲーム セッション内 (チームをまたぐ) すべての XBOX network プレイヤーの予約を含みます。XBOX network プレイヤーの最近プレイしたプレイヤー一覧を正しく設定するために使用されます。
* **グループ セッション** — このセッションは、プレイヤーがグループを作成した (1 人のグループ) 時点で作成されます。途中参加と招待をサポートするアクティビティ セッションに使用されます。ゲーム設計上、特定のゲーム モードではプレイヤーは参加できません。これらのモードでは、**closed** プロパティを使って途中参加と招待を無効化します。

非 XBOX network プレイヤーは MPSD セッション上で直接メンバーとしては表現されません。追跡目的で、タイトルはそれらの存在をカスタム セッション プロパティで反映します。

```text theme={null}
{{"name":"jackplayer"},{"name":"johnplayer"},{"name":"joeplayer"}}
```

このリストと XBOX network セッション メンバーは、サーバー インスタンスが満員かどうかの判定にも利用できます。

XBOX 要件を遵守するには、大きな MPSD セッションで gameplay **capability** を有効化する必要があります。

## プレイヤー ID

プレイヤーのタイトル固有のキャラクター名は、すべてのネットワークで共有されます。キャラクター名の作成中、すべての文字列は文字列検証サービスを使って検証されます。攻撃的な言葉や表現はブロックされます。

* **XBOX network プレイヤー ID** — タイトルは、すべての XBOX network プレイヤーの XBOX network プロファイルへのアクセスを提供します。これは、チャットやゲームプレイ操作内で利用可能なゲーム内 UI を通じて行います。
* **非 XBOX network プレイヤー ID** — タイトルは、非 XBOX network のプロファイルやプロファイル名へのアクセスは提供しません。

## プレイヤーのブロック、ミュート、報告

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

* **XBOX network プレイヤーのブロック/ミュート** — タイトルは、他の XBOX network プレイヤーとのマルチプレイヤーおよびチャットに関する特権、および非 XBOX network プレイヤー/非 XBOX network フレンドのプレイヤー クラスを確認するために `check_multiple_permissions_with_multiple_target_users` を使用します。ブロックとミュートは、プレイヤーのプロファイル UI から利用できます。同じゲームプレイ体験に参加している他 XBOX network プレイヤーのブロック/ミュート状態は、ゲームプレイ遷移時 (別のゲーム モードや場所への移動など) または 5 分ごと (いずれか早いほう) にチェックされます。
* **非 XBOX network プレイヤーのブロック/ミュート** — タイトルは、非 XBOX network プレイヤーのブロックまたはミュートをサポートするために、タイトル内ブロック リストを使用します。このリストはタイトル サービスで維持され、マルチプレイヤー権限のチェックに使用されます。カスタム タイトル UI を通じてタイトル内で非 XBOX network プレイヤーをミュートできる必要があります。
* **XBOX network プレイヤーの報告** — タイトルはプレイヤーの報告も許可します。XBOX network での報告は、タイトル内でアクセス可能なプロファイル UI を通じてプレイヤーが行います。XBOX network のエンフォースメントがプレイヤー報告を処理します。
* **非 XBOX network プレイヤーの報告** — 非 XBOX network ユーザーについては、タイトルはカスタムの報告 UI フローを提供します。タイトルは、自タイトルおよび/または他のマルチプレイヤー ネットワークのガイドラインに基づいて、プレイヤー報告を適切に処理します。

## マーケットプレース

XBOX network や他のマルチプレイヤー ネットワークにおける仮想通貨の購入は、シナリオに応じてタイトル サービスで追跡されます。

* **仮想通貨** — プレイヤーは、すべてのプラットフォームにわたって統合された仮想通貨とアイテムのウォレットを持ちます。
* **ダウンロード コンテンツ** — ダウンロード コンテンツ (DLC) はゲームの新しい領域へのアクセスを可能にします。XBOX network プラットフォームでの購入には Microsoft Store が使用されます。プレイヤーは、対応する DLC 領域に入り、それぞれのストアからその領域のエンタイトルメントを持つ他のキャラクターとのみプレイできます。

## 実績

タイトルには、オープン ワールドおよびインスタンス化されたゲームプレイの行動に基づく実績があります。実績の進行状況にはクロス ネットワークのゲームプレイ体験も含まれます。タイトルには、クロス ネットワーク ゲームプレイのみに限定された実績は含まれません。

## プレイヤーの進行

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

## Game DVR/配信

タイトルは、オープン ワールドおよびインスタンス化されたゲームプレイ中の Game DVR とスクリーンショットを許可しますが、画像バッファーからテキスト チャットをすべて除去します。

## リーダーボード

タイトルは、タイトル内 PvP マッチや PvE チャレンジ向けのカスタム リーダーボードをサポートします。これらのリーダーボードはタイトル サービスで維持されます。このサービスは GUID でプレイヤーを識別し、クライアントで判読可能なプレイヤー名に解決します。

## 関連

* [XR-007 クロス ネットワーク プレイ、データ使用、コンパニオン アプリの相互作用](/publishing/certification/xr/xr-007)
* [XR-007 マルチプレイヤー ゲームの例](/publishing/certification/xr/xr-007-multiplayer)
* [XR-015 プレイヤー通信の管理](/publishing/certification/xr/xr-015)
* [XR-045 XBOX network とアカウント特権](/publishing/certification/xr/xr-045)


## Related topics

- [XR-007 クロスネットワーク プレイ、データ使用、およびコンパニオン アプリ](/ja-jp/publishing/certification/xr/xr-007.md)
- [クロスネットワークマルチプレイヤーの実装例: MMO](/ja-jp/services/xbox-services/multiplayer/concepts/live-console-xr007-mmo-example.md)
- [クロスネットワークマルチプレイヤーの実装例](/ja-jp/services/xbox-services/multiplayer/concepts/live-console-xr007-multiplayer-example.md)
- [XR-007 クロス ネットワーク プレイ — マルチプレイヤー実装](/ja-jp/publishing/certification/xr/xr-007-multiplayer.md)
- [XR-007 クロスネットワーク データ使用 (PC)](/ja-jp/publishing/certification/xr/xr-007-pc.md)
