> ## 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.

# マルチプレイヤー サービスを直接呼び出すことの概要

> Multiplayer Manager を使用する代わりに、2015 Multiplayer API と MPSD を直接呼び出すことの概要。セッション、招待、SmartMatch を含みます。

> [!NOTE]
>
> このトピックでは、マルチプレイヤー API の直接使用について説明します。Microsoft Game Development Kit (GDK) を使用してタイトルを開発する際のマルチプレイヤー機能の概要については、以下のトピックを参照してください。
>
> * [マルチプレイヤーの概要 (NDA トピック)](/ja-jp/services/xbox-services/multiplayer/overviews/multiplayer-intro)
> * [XBOX および PC マルチプレイヤーの設計ガイダンス (NDA トピック)](/ja-jp/services/xbox-services/multiplayer/overviews/multiplayer-design-guidance-xbox-pc-gdk)
> * [クロスプラットフォーム マルチプレイヤーの設計ガイダンス (NDA トピック)](/ja-jp/services/xbox-services/multiplayer/overviews/multiplayer-design-guidance-cross-platform)

## Multiplayer システムについて

2015 Multiplayer は、Multiplayer Session Directory (MPSD) およびゲーム セッションの直接使用を最適化します。これは、単一のタイトルまたはプレイヤーの複数の同時セッションに対するより優れたサポートを提供し、XBOX Services API (XSAPI) を更新して、タイトルが次のことを行えるようにします。

* プレイヤーの現在のアクティビティおよび参加可否をアドバタイズする。
* プレイヤーに見える (タイトルが指定する) コンテキスト文字列とともに、セッションへの招待を送信する。
* タイトル コードを介してセッションを検出および参加する。
* MPSD への Web ソケット接続を維持し、セッションの変更に関する簡単な通知 (ショルダー タップ) を受信できるようにする。たとえば、変更イベントへのサブスクリプションおよび接続状態変更を反映する更新など。MPSD は Web ソケット接続を使用して、クライアントの切断を迅速に検出して対処します。
* SmartMatch マッチメイキングを使用する。

## Multiplayer のコンポーネント、インターフェイス、アーキテクチャ

### 2015 Multiplayer のコンポーネント

Multiplayer は、複数のコンポーネントで構成されるシステムです。2015 Multiplayer は、専用サーバーや外部マッチメイキング システムなど、他のコンポーネントとも連携できる十分な柔軟性を備えています。

#### Multiplayer Session Directory

MPSD は、セッションのコレクションを保持するサービスです。*セッション* は、クラウドに存在し、ゲームをプレイしている人々のグループを表す安全なドキュメントとして定義されます。

詳細については、[Multiplayer Session Directory (MPSD)](/ja-jp/services/xbox-services/multiplayer/mpsd/live-mpsd-nav) を参照してください。

#### Multiplayer クライアント API

REST 機能はタイトルからの直接呼び出しに使用できますが、XSAPI を介して MPSD にアクセスすることを推奨します。詳細については、[MPSD の呼び出し](/ja-jp/services/xbox-services/multiplayer/mpsd/live-mpsd-overview#calling-mpsd) を参照してください。

#### XBOX パーティ システム

2015 Multiplayer では、XBOX パーティ システムは外部エンティティとしてチャット パーティのみをサポートしています。タイトルは、パーティ システムと対話してチャット パーティのメンバーシップを検出できます。詳細については、このトピックの後半にある [2015 Multiplayer でサポートされているパーティ](#parties-supported-by-2015-multiplayer) を参照してください。

パーティ システムは、ゲーム パーティを使用する代わりに、MPSD セッションを介したゲーミングを直接サポートするようになりました。セッションを使用して、メンバー間のやり取り、空きができたときのゲームへのプレイヤーの引き入れ、待機期間中のプレイヤー エンゲージメントなどの操作を有効にするのはタイトル次第です。

### 2015 Multiplayer インターフェイス

2015 Multiplayer は、他の XBOX コンポーネントに対して複数のインターフェイスを使用します。

#### XBOX セキュア ソケット

2015 Multiplayer は、XBOX セキュア ソケットと Winsock を使用して、デバイス間の低レベルのネットワーク通信をサポートします。ネットワーク機能では、Internet Protocol Security (IPSec) を使用しており、タイトルが安全なデバイス関連付けを提供できるようにします。

#### XBOX services Real-Time Activity サービス

2015 Multiplayer は Real-Time Activity (RTA) サービスを使用して、タイトルが MPSD セッションの変更をサブスクライブし、クライアントの切断を自動的に検出できるようにします。詳細については、[Real-Time Activity (RTA) サービス](/ja-jp/services/xbox-services/fundamentals/rta/live-rta-nav) を参照してください。

#### XBOX services SmartMatch マッチメイキング サービス

SmartMatch マッチメイキング サービスは、マッチメイキング中に提供されるプレイヤーの好みやデータ、情報に基づいてプレイヤーのグループを形成します。詳細については、[マッチメイキングの概要](/ja-jp/services/xbox-services/multiplayer/matchmaking/live-matchmaking-overview) を参照してください。

#### XBOX services Reputation サービス

Reputation サービスは、評判に関するプレイヤー統計を管理し、評判でフィルタリングされたマッチメイキングを可能にします。2015 Multiplayer は、SmartMatch マッチメイキングを介して Reputation サービスを使用します。詳細については、[Reputation](/ja-jp/services/xbox-services/community/reputation/live-reputation-nav) を参照してください。

### 一般的な 2015 Multiplayer アーキテクチャ

このセクションでは、最も一般的な 2015 Multiplayer アーキテクチャを紹介します。

#### ピアツーピア アーキテクチャ

ピアツーピア アーキテクチャでは、タイトルは MPSD と SmartMatch マッチメイキングを使用してピア アドレスを検出します。次に、タイトルは、以下の図に示すように、XBOX セキュア ソケットを使用してピアを接続するためにこれらのアドレスを使用します。詳細については、[Windows ソケットの概要](/ja-jp/build/console-features/networking/game-mesh/winsock-intro-networking) を参照してください。

![ピアツーピア アーキテクチャを示す図](https://mintcdn.com/microsoft-4404708b/gzrdvT5kpqAXKEQt/images/gdk/services/Mult2015ArchPeer.png?fit=max\&auto=format\&n=gzrdvT5kpqAXKEQt\&q=85\&s=7ddc938f62adc92a9703ecfd74a3bc7b)

#### クライアント/サーバー アーキテクチャ

クライアント/サーバー アーキテクチャでは、タイトルは MPSD と SmartMatch マッチメイキングを使用して専用サーバー アドレスを検出します。次に、タイトルは、以下の図に示すように、XBOX セキュア ソケットを使用して専用サーバーに接続するためにこれらのアドレスを使用します。詳細については、[Windows ソケットの概要](/ja-jp/build/console-features/networking/game-mesh/winsock-intro-networking) を参照してください。

![クライアント/サーバー アーキテクチャを示す図](https://mintcdn.com/microsoft-4404708b/gzrdvT5kpqAXKEQt/images/gdk/services/Mult2015ArchClientServer.png?fit=max\&auto=format\&n=gzrdvT5kpqAXKEQt\&q=85\&s=ad1bfe552f2f3203ee2bd57a5fa8e974)

> [!NOTE]
>
> Azure PlayFab サーバーのインスタンスは、クライアント/サーバー アーキテクチャのサーバーになることができます。詳細については、[Multiplayer Servers](https://learn.microsoft.com/gaming/playfab/features/multiplayer/servers/) を参照してください。

## 2015 Multiplayer でサポートされているパーティ

XBOX One (以降) 向けの 2015 Multiplayer では、システム レベルの構成として「ゲーム パーティ」は公開されていません。ただし、2014 Multiplayer と同様に、システム レベルで「チャット パーティ」はサポートしています。また、MPSD セッションを使用することで、タイトルはゲーム パーティを使用したときと同様のプレイヤー エクスペリエンスを引き続き提供できます。

### チャット パーティ

*チャット パーティ* は、プレイヤーが XBOX One Party アプリを介して管理する、互いにチャットしている人々のグループです。プレイヤーはゲーム セッションでプレイ中や、別のコンソール アクティビティを実行中も、チャット パーティに参加できます。ただし、チャット パーティのプレイヤーとそれらのプレイヤーの他のアクティビティとの間には関連付けはありません。

チャット パーティは `PartyChat` クラスによって公開されており、タイトルはチャット パーティの状態を調べることができます。たとえば、タイトルは `PartyChat.GetPartyChatViewAsync` メソッドを使用して、チャット パーティのメンバーを列挙できます。

### ゲーム パーティに類似した機能の実装

2014 Multiplayer では、ゲーム パーティはいくつかの目的で使用されていました。タイトルは以下のことを行えました。

* プレイヤーの現在のアクティビティおよび参加可否をアドバタイズする。
* セッションへの招待 (インバイト) を送信する。
* セッションを検出および参加する。
* パーティに登録されたセッションの特定の変更に関する通知を受信する。
* SmartMatch マッチメイキングを使用する。
* 複数のゲーム セッションを通じて人々のグループを一緒に保つ。

2015 Multiplayer は、MPSD セッションを通じてこれらすべての機能を直接サポートしています。

## Multiplayer の用語

| 用語 | 説明 |
| - | - |
| アクティブ プレイヤー | セッション内で Active 状態に設定されているプレイヤー。プレイヤーがゲームに参加しているとき、タイトルはこの状態にプレイヤーを設定します。詳細については、トピック「Multiplayer セッションの高度なトピック」の [セッション ユーザーの状態](/ja-jp/services/xbox-services/multiplayer/mpsd/concepts/live-mpsd-details#session-user-states) セクションを参照してください。 |
| アービター | ゲーム セッション内の単一のコンソールで、より多くのプレイヤーを見つけるためにゲーム セッションをマッチメイキングに広告するなど、ゲームの MPSD セッションの状態を管理します。アービターはタイトルによって設定されます。アービターは常にゲームのホストであるとは限りません。詳細については、トピック「Multiplayer セッションの高度なトピック」の [セッション アービター](/ja-jp/services/xbox-services/multiplayer/mpsd/concepts/live-mpsd-details#session-arbiter) セクションを参照してください。 |
| アレンジド ゲーム | あるプレイヤーが他のプレイヤーを招待して参加させることによってのみ作成され、マッチメイキングを一切介在させないタイプのゲーム。 |
| チャット パーティ | 一緒にチャットしている人々のグループ。同じアクティビティに参加している場合もあれば、ゲーム、音楽、アプリなどの異なるアクティビティに参加している場合もあります。詳細については、このトピックの前半にある [2015 Multiplayer でサポートされているパーティ](#parties-supported-by-2015-multiplayer) を参照してください。 |
| ゲーム招待 | ゲーム セッションへの参加招待。 |
| ゲーム セッション | プレイヤーが実際に一緒にプレイしているセッション。マッチメイキングやロビーへの参加など、すべてのマルチプレイヤー シナリオは最終的にゲーム セッションに到達します。セッションは、プレイヤーの現在のアクティビティとしてアドバタイズされることが多く、参加を可能にします。また、最近のプレイヤー リストを構築するためにも使用されます。詳細については、[Multiplayer セッションの高度なトピック](/ja-jp/services/xbox-services/multiplayer/mpsd/concepts/live-mpsd-details) を参照してください。 |
| ゲーム セッション ホスト | ホスト ベース、ピアツーピア ネットワーク アーキテクチャで構築されたタイトルのゲームプレイ シミュレーションを実行するコンソール。このコンソールは通常アービターと同じですが、必ずしも同じである必要はありません。 |
| ハンドル (またはセッション ハンドル) | 追加の状態と動作が関連付けられた MPSD セッションへの参照。詳細については、トピック「Multiplayer Session Directory の概要」の [セッションへの MPSD ハンドル](/ja-jp/services/xbox-services/multiplayer/mpsd/live-mpsd-overview#mpsd-handles-to-sessions) セクションを参照してください。 |
| 非アクティブ プレイヤー | セッション内で Inactive 状態に設定されているプレイヤー。ゲームが一時停止されているか、タイトルによって定義された他の非アクティブ状態にあるとき、タイトルはプレイヤーをこの状態に設定します。場合によっては、MPSD もプレイヤーを非アクティブに設定することがありますが、これは主にタイトルの責任です。詳細については、トピック「Multiplayer セッションの高度なトピック」の [セッション ユーザーの状態](/ja-jp/services/xbox-services/multiplayer/mpsd/concepts/live-mpsd-details#session-user-states) セクションを参照してください。 |
| ホッパー | ロジック駆動型のマッチ チケットのコレクション。タイトルは複数のホッパーを持つことができますが、同じホッパー内のチケットのみをマッチングできます。たとえば、あるタイトルはプレイヤー スキルがマッチングの最も重要な項目であるホッパーを 1 つ作成することがあります。同じダウンロード可能なコンテンツを購入している場合にのみプレイヤーがマッチングされる別のホッパーを使用することもあります。ホッパーが SmartMatch ワークフローのどこに位置するかの詳細については、[マッチメイキングの概要](/ja-jp/services/xbox-services/multiplayer/matchmaking/live-matchmaking-overview) を参照してください。 |
| ジョイン イン プログレス | ゲームプレイが開始された後で別のプレイヤーのゲームに参加するという概念。プレイヤーは、友達のゲーマー カードを介して友達のゲームに参加できます。次にタイトルは、適切なタイミングでそれらのプレイヤーをゲーム セッションに移動できます。 |
| ロビー セッション | ゲーム セッションへの参加を待機している招待されたプレイヤーのためのヘルパー セッション。詳細については、[Multiplayer セッションの高度なトピック](/ja-jp/services/xbox-services/multiplayer/mpsd/concepts/live-mpsd-details) を参照してください。 |
| マッチ ターゲット セッション | SmartMatch マッチメイキング中に、マッチを表すために設定されるマッチ セッション。詳細については、[マッチメイキングの概要](/ja-jp/services/xbox-services/multiplayer/matchmaking/live-matchmaking-overview) を参照してください。 |
| マッチ チケット セッション | SmartMatch マッチメイキング中に設定される予備的なマッチ セッション。詳細については、[マッチメイキングの概要](/ja-jp/services/xbox-services/multiplayer/matchmaking/live-matchmaking-overview) を参照してください。 |
| MPSD セッション | XBOX services クラウド内の MPSD に存在する安全なドキュメント。XBOX One (以降) でタイトルを実行中に接続されている可能性のあるプレイヤーのグループを、プレイヤーとそのゲームに関するメタデータとともに含みます。詳細については、[Multiplayer セッションの高度なトピック](/ja-jp/services/xbox-services/multiplayer/mpsd/concepts/live-mpsd-details) を参照してください。 |
| Multiplayer Session Directory (MPSD) | Multiplayer システムがセッションの保存と取得に使用する、クラウドで動作するサービス。詳細については、[Multiplayer Session Directory (MPSD)](/ja-jp/services/xbox-services/multiplayer/mpsd/live-mpsd-nav) を参照してください。 |
| Party アプリ | プレイヤーが自分のパーティを表示および管理できる XBOX One (以降) のシステム スナップ アプリ。 |
| サーバー セッション | PlayFab マルチプレイヤー サーバーなどのサーバーによって作成されたゲーム セッション。[Multiplayer セッションの高度なトピック](/ja-jp/services/xbox-services/multiplayer/mpsd/concepts/live-mpsd-details) を参照してください。 |
| ショルダー タップ | サービスで潜在的に興味深い変更が発生したことを MPSD がタイトルに通知するもの。ショルダー タップは、通常の通知よりも情報量が少ない、簡単なリマインダーであることが多いです。詳細については、トピック「Multiplayer Session Directory の概要」の [MPSD 変更通知処理と切断検出](/ja-jp/services/xbox-services/multiplayer/mpsd/live-mpsd-overview#mpsd-change-notification-handling-and-disconnect-detection) セクションを参照してください。 |
| SmartMatch マッチメイキング | XBOX One (以降) のタイトルで利用可能な XBOX services のマッチメイキング機能で、マッチメイキング サービスによって実装されます。MPSD とマッチメイキングを使用して、タイトルはマッチングされる要求を行い、マッチしたグループが見つかったことを後で通知されます。詳細については、[マッチメイキングの概要](/ja-jp/services/xbox-services/multiplayer/matchmaking/live-matchmaking-overview) を参照してください。 |

## 2015 Multiplayer の新機能

> [!WARNING]
>
> タイトルが 2015 Multiplayer を使用する場合、2014 Multiplayer のパーティ関連クラスは使用しないでください。2015 Multiplayer 機能とパーティ関連クラスを混在させると、一貫性のない動作を引き起こすため、絶対に避けてください。

### 2015 Multiplayer の新しい概念

#### MPSD への Web ソケット接続

MPSD は、タイトルが Web ソケット接続を維持できるようになりました。これらの接続により、クライアントはセッションが変更されたときに通知を受信できます。

詳細については、トピック「Multiplayer Session Directory の概要」の [MPSD 変更通知処理と切断検出](/ja-jp/services/xbox-services/multiplayer/mpsd/live-mpsd-overview#mpsd-change-notification-handling-and-disconnect-detection) セクションを参照してください。

#### MPSD セッション ハンドル

2015 Multiplayer では MPSD セッション ハンドルのサポートが追加されました。これは、型指定されたデータを含むことができるセッションへの参照です。詳細については、以下を参照してください。

* トピック「Multiplayer 概念の概要」の [セッション ハンドル](/ja-jp/services/xbox-services/multiplayer/concepts/live-multiplayer-concepts#session-handles) セクション。
* トピック「Multiplayer Session Directory の概要」の [セッションへの MPSD ハンドル](/ja-jp/services/xbox-services/multiplayer/mpsd/live-mpsd-overview#mpsd-handles-to-sessions) セクション。

## XBOX 360 と XBOX One の MPSD セッション関数の違い

| 関数 | XBOX 360 | XBOX One |
| - | - | - |
| **ゲーム セッション情報の取得** | `XSessionGetDetails`、`XSessionSearchByID`、またはタイトルが追跡する。 | タイトルは MPSD からセッション情報を要求する。 |
| **ホストの移行** | 必要なとき、タイトルは `XSessionMigrateHost` を呼び出す。 | 移行の原因に応じて、タイトルはセッションに新しいホストを割り当てるか、新しい MPSD セッションを作成することがある。 |
| **複数プレイヤー セッション** | 一度に複数のセッションを扱うのが難しい。たとえば、`XNetReplaceKey` と `XNetUnregisterKey` の違いなど。 | サービス ベースのセッションにより、1 つのセッションの管理がよりクリーンになり、複数のセッションの処理も簡素化される。 |
| **サインアウトと切断** | タイトルは、`XCloseHandle` または `XSessionDelete` を使用して、切断とサインアウトを異なる方法で処理する必要がある。 | MPSD がサインアウトと切断処理を簡素化する。タイムアウトはゲーム構成で設定される。 |
| **マッチメイキング** | マッチメイキング クエリはクライアント ベース。 | マッチメイキングはサービス ベースで、より高品質なマッチと、タイトル内でのより簡単なバックグラウンド マッチメイキングを可能にする。 |

### セッション

XBOX 360 では、セッションはゲームプレイのインスタンスを表していました。プレイヤーはマッチメイキング サービスでセッションを検索し、セッションの終了時に統計を報告しました。

XBOX 360 以降のすべてのターゲット プラットフォーム (Windows PC を含む) では、セッションはより一般的で、プレイヤーのグループを表します。

XBOX クライアント間のネットワーク接続にはセッションが必要であり、セッション内のすべてのプレイヤー間で共有される情報を保持します。この情報の例には、セッションで許可されるプレイヤー数、セッション内の各コンソールのセキュア アドレス、カスタム ゲーム データなどが含まれます。

### XBOX マッチメイキング

XBOX 360 では、タイトルは属性のスキーマとそれらの属性を検索するクエリのセットを指定することでマッチメイキングを実行しました。実行時に、タイトルはセッションをホストするか、セッションを検索するかを選択しました。

XBOX One (以降) や Windows PC など、より新しいすべての XBOX クライアントでは、マッチメイキングはサーバー ベースです。プレイヤーとタイトルは、ホストするか検索するかを決定する必要はなくなりました。代わりに、事前に形成されたプレイヤーの各グループが「チケット」セッションを作成し、そのセッションをマッチメイキング サービスに送信します。

サービスは次に、他のセッションを見つけ、グループを組み合わせて新しい「ターゲット」セッションを形成します。クライアントは一致について通知され、ゲームプレイを開始する前に他のセッション メンバーとの接続を検証するために quality of service (QoS) 測定を実行します。

## 関連項目

[Multiplayer Session Directory (MPSD)](/ja-jp/services/xbox-services/multiplayer/mpsd/live-mpsd-nav)
[マッチメイキングの概要](/ja-jp/services/xbox-services/multiplayer/matchmaking/live-matchmaking-overview)
[Real-Time Activity (RTA) サービス](/ja-jp/services/xbox-services/fundamentals/rta/live-rta-nav)
[Reputation](/ja-jp/services/xbox-services/community/reputation/live-reputation-nav)


## Related topics

- [Multiplayer の概念](/ja-jp/services/xbox-services/multiplayer/concepts/live-multiplayer-concepts-nav.md)
- [サービス間でのマルチプレイヤー セッション管理](/ja-jp/services/xbox-services/fundamentals/s2s-auth-calls/s2s-calls/s2s-call-patterns/live-mpsd-service-to-service.md)
- [マルチプレイヤーの概要](/ja-jp/services/xbox-services/multiplayer/overviews/multiplayer-intro.md)
- [XBOX services マルチプレイヤーの概要](/ja-jp/services/xbox-services/multiplayer/overviews/live-multiplayer-intro.md)
- [Godot & コミュニティ エンジンの概要](/ja-jp/paths/community-engines/overview.md)
