このトピックでは、マルチプレイヤー API の直接使用について説明します。Microsoft Game Development Kit (GDK) を使用してタイトルを開発する際のマルチプレイヤー機能の概要については、以下のトピックを参照してください。
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) を参照してください。Multiplayer クライアント API
REST 機能はタイトルからの直接呼び出しに使用できますが、XSAPI を介して MPSD にアクセスすることを推奨します。詳細については、MPSD の呼び出し を参照してください。XBOX パーティ システム
2015 Multiplayer では、XBOX パーティ システムは外部エンティティとしてチャット パーティのみをサポートしています。タイトルは、パーティ システムと対話してチャット パーティのメンバーシップを検出できます。詳細については、このトピックの後半にある 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) サービス を参照してください。XBOX services SmartMatch マッチメイキング サービス
SmartMatch マッチメイキング サービスは、マッチメイキング中に提供されるプレイヤーの好みやデータ、情報に基づいてプレイヤーのグループを形成します。詳細については、マッチメイキングの概要 を参照してください。XBOX services Reputation サービス
Reputation サービスは、評判に関するプレイヤー統計を管理し、評判でフィルタリングされたマッチメイキングを可能にします。2015 Multiplayer は、SmartMatch マッチメイキングを介して Reputation サービスを使用します。詳細については、Reputation を参照してください。一般的な 2015 Multiplayer アーキテクチャ
このセクションでは、最も一般的な 2015 Multiplayer アーキテクチャを紹介します。ピアツーピア アーキテクチャ
ピアツーピア アーキテクチャでは、タイトルは MPSD と SmartMatch マッチメイキングを使用してピア アドレスを検出します。次に、タイトルは、以下の図に示すように、XBOX セキュア ソケットを使用してピアを接続するためにこれらのアドレスを使用します。詳細については、Windows ソケットの概要 を参照してください。
クライアント/サーバー アーキテクチャ
クライアント/サーバー アーキテクチャでは、タイトルは MPSD と SmartMatch マッチメイキングを使用して専用サーバー アドレスを検出します。次に、タイトルは、以下の図に示すように、XBOX セキュア ソケットを使用して専用サーバーに接続するためにこれらのアドレスを使用します。詳細については、Windows ソケットの概要 を参照してください。
Azure PlayFab サーバーのインスタンスは、クライアント/サーバー アーキテクチャのサーバーになることができます。詳細については、Multiplayer Servers を参照してください。
2015 Multiplayer でサポートされているパーティ
XBOX One (以降) 向けの 2015 Multiplayer では、システム レベルの構成として「ゲーム パーティ」は公開されていません。ただし、2014 Multiplayer と同様に、システム レベルで「チャット パーティ」はサポートしています。また、MPSD セッションを使用することで、タイトルはゲーム パーティを使用したときと同様のプレイヤー エクスペリエンスを引き続き提供できます。チャット パーティ
チャット パーティ は、プレイヤーが XBOX One Party アプリを介して管理する、互いにチャットしている人々のグループです。プレイヤーはゲーム セッションでプレイ中や、別のコンソール アクティビティを実行中も、チャット パーティに参加できます。ただし、チャット パーティのプレイヤーとそれらのプレイヤーの他のアクティビティとの間には関連付けはありません。 チャット パーティはPartyChat クラスによって公開されており、タイトルはチャット パーティの状態を調べることができます。たとえば、タイトルは PartyChat.GetPartyChatViewAsync メソッドを使用して、チャット パーティのメンバーを列挙できます。
ゲーム パーティに類似した機能の実装
2014 Multiplayer では、ゲーム パーティはいくつかの目的で使用されていました。タイトルは以下のことを行えました。- プレイヤーの現在のアクティビティおよび参加可否をアドバタイズする。
- セッションへの招待 (インバイト) を送信する。
- セッションを検出および参加する。
- パーティに登録されたセッションの特定の変更に関する通知を受信する。
- SmartMatch マッチメイキングを使用する。
- 複数のゲーム セッションを通じて人々のグループを一緒に保つ。
Multiplayer の用語
2015 Multiplayer の新機能
2015 Multiplayer の新しい概念
MPSD への Web ソケット接続
MPSD は、タイトルが Web ソケット接続を維持できるようになりました。これらの接続により、クライアントはセッションが変更されたときに通知を受信できます。 詳細については、トピック「Multiplayer Session Directory の概要」の MPSD 変更通知処理と切断検出 セクションを参照してください。MPSD セッション ハンドル
2015 Multiplayer では MPSD セッション ハンドルのサポートが追加されました。これは、型指定されたデータを含むことができるセッションへの参照です。詳細については、以下を参照してください。- トピック「Multiplayer 概念の概要」の セッション ハンドル セクション。
- トピック「Multiplayer Session Directory の概要」の セッションへの MPSD ハンドル セクション。
