マルチプレイヤー サービスの直接呼び出しの概要
注意
このトピックでは、マルチプレイヤー API の直接使用について説明します。 Microsoft Game Development Kit (GDK) を使用してタイトルを開発する際のマルチプレーヤー機能の概要については、次のトピックを参照してください。
マルチプレイヤー システムについて
2015 マルチプレイヤーはマルチプレイヤー セッション ディレクトリ (MPSD) とゲーム セッションの直接使用を最適化します。 単一のタイトルまたはユーザーに対する複数の同時セッションのサポートが向上し、タイトルで以下のことができるように Xbox サービス API (XSAPI) が更新されています。
- プレイヤーの現在のアクティビティと参加できるかどうかを公開する。
- プレイヤーに表示される (タイトル指定の) コンテキスト文字列と共にセッションへの招待を送信する。
- タイトル コードによりセッションを検出して参加する。
- 変更イベントに対するサブスクリプションや接続状態の変更を反映する更新などのセッションの変更に対して、簡単な通知 (ショルダー タップ) を受信できるように、MPSD への Web ソケット接続を維持する。 Web ソケット接続は、MPSD がクライアントの切断を迅速に検出して対応するためにも使用されます。
- SmartMatch マッチメイキングを使用する。
マルチプレイヤーのコンポーネント、インターフェイス、およびアーキテクチャ
2015 マルチプレイヤーのコンポーネント
マルチプレイヤーは、複数のコンポーネントで構成されるシステムです。 2015 マルチプレイヤーは、専用サーバー、外部マッチメイキング システムなどの追加コンポーネントと連携できる柔軟性を備えています。
マルチプレイヤー セッション ディレクトリ
MPSD は、セッションのコレクションを保持するサービスです。 セッションはセキュリティで保護されたドキュメントとして定義されます。このドキュメントはクラウドに置かれ、ゲームをプレイしている人のグループを表します。
MPSD の詳細については、「マルチプレイヤー セッション ディレクトリ (MPSD)」を参照してください。
マルチプレイヤー クライアント API
タイトルからの直接呼び出しには REST 機能を使用することもできますが、XSAPI を使用して MPSD にアクセスすることをお勧めします。 詳細については、「MPSD の呼び出し」を参照してください。
Xbox パーティー システム
2015 マルチプレイヤーで、Xbox パーティー システムはチャット パーティーのみを外部エンティティとしてサポートします。 タイトルは、パーティー システムと対話してチャット パーティーのメンバーシップを見つけることができます。 詳細については、後の「2015 マルチプレイヤーでサポートされているパーティー」を参照してください。
パーティー システムは、ゲーム パーティーを使用するのではなく、MPSD セッションを通じて直接ゲームをサポートするようになりました。 メンバーの対話、スペースが空いたときのゲームへのプレイヤーの受け入れ、待機期間中のプレイヤー関与などの操作を有効にするためにセッションを使用するかどうかは、タイトルに委ねられます。
2015 マルチプレイヤーのインターフェイス
2015 マルチプレイヤーは、他の Xbox コンポーネントへの複数のインターフェイスを使用します。
Xbox セキュア ソケット
2015 マルチプレイヤーは、Xbox セキュア ソケットおよび Winsock を使用した、デバイス間の低レベルのネットワーク通信をサポートします。 ネットワーク機能は、インターネット プロトコル セキュリティ (IPsec) を使用して、タイトルがセキュア デバイス アソシエーションを提供できるようにします。
Xbox サービス リアルタイム アクティビティ サービス
2015 マルチプレイヤーでは、リアルタイム アクティビティ (RTA) サービスを使用しているため、タイトルは MPSD のセッション変更を受信し、クライアントの切断を自動的に検出することができます。 詳細は、「リアルタイム アクティビティ (RTA) サービス」を参照してください。
Xbox サービス SmartMatch マッチメイキング サービス
SmartMatchマッチメイキング サービスは、プレイヤーの設定、データやマッチメイキング時に提供される情報に基づいてプレイヤーのグループを形成します。 詳細については、「マッチメイキングの概要」を参照してください。
Xbox サービス SmartMatch マッチメイキング サービス
評判サービスは、プレイヤーの評判に関する統計情報を管理し、評判を考慮したマッチメイキングを可能にします。 2015 マルチプレイヤーでは、SmartMatch マッチメイキングを介して評判サービスを使用しています。 詳細については、「評判」を参照してください。
一般的な 2015 マルチプレイヤー アーキテクチャ
このセクションでは、最も一般的な 2015 マルチプレイヤーのアーキテクチャを示します。
ピアツーピア アーキテクチャ
ピア ツー ピア アーキテクチャでは、タイトルは MPSD および SmartMatch マッチメイキングを使用してピア アドレスを検出します。 そして、タイトルはそのアドレスを使って、次の図のように Xbox のセキュア ソケットを使ってピアに接続します。 詳細については、「Windows ソケットの概要」を参照してください。
クライアント/サーバー アーキテクチャ
クライアント/サーバーのアーキテクチャでは、タイトルは MPSD および SmartMatch メイキングを使用して専用サーバー アドレスを検出します。 そして、タイトルはそのアドレスを使って、次の図のように Xbox のセキュア ソケットを使って専用サーバーに接続します。 詳細については、「Windows ソケットの概要」を参照してください。
注意
Azure PlayFab サーバーのインスタンスは、クライアント/サーバー アーキテクチャのサーバーになれます。 詳細は、「マルチプレイヤー サーバー」を参照してください。
2015 マルチプレイヤーでサポートされるパーティー
Xbox One 以降の 2015 マルチプレイヤーでは、「ゲーム パーティー」がシステム レベルの構成体として公開されません。 ただし、2014 マルチプレイヤーでの場合と同様に、システム レベルで「チャット パーティー」をサポートします。 また、MPSD セッションを利用することで、ゲーム パーティを利用した時と同じようなプレイヤー エクスペリエンスをタイトルに提供することができます。
チャット パーティー
チャット パーティーは、お互いにチャットしているユーザーのグループで、Xbox One パーティー アプリを通じてユーザーによって管理されます。 プレイヤーは、ゲーム セッションのプレイ中または別の本体アクティビティの実行中にチャット パーティーに参加できます。 ただし、チャット パーティー内のプレイヤーと、それらのプレイヤーの他のアクティビティの間に関係はありません。
チャット パーティーは、PartyChat
クラスで公開されており、タイトルでチャット パーティーの状態を調べることができます。 たとえば、タイトルは PartyChat.GetPartyChatViewAsync
メソッドを使って、チャット パーティーのメンバーを列挙することができます。
ゲーム パーティーと同様の機能を実装
2014 マルチプレイヤーでは、ゲーム パーティーは複数の目的で使用されていました。 タイトルは次のようなことができました。
- プレイヤーの現在のアクティビティと参加できるかどうかを公開する。
- セッションへの招待を送信する。
- セッションを検出して参加する。
- パーティーに登録されているセッションへの特定の変更に関する通知を受信する。
- SmartMatch マッチメイキングを使用する。
- 複数のゲーム セッションでユーザーのグループを保持する。
2015 マルチプレイヤーは MPSD セッションを通じて上記の機能をすべて直接サポートします。
マルチプレイヤーの用語集
用語 | 説明 |
---|---|
アクティブ プレイヤー | セッション内でアクティブ状態に設定されているプレイヤーです。 タイトルは、プレイヤーがゲームに参加しているとき、プレイヤーをこの状態に設定します。 詳細については、トピック「マルチプレイヤー セッションの高度なトピック」の「セッションのユーザーの状態」セクションを参照してください。 |
アービター | ゲーム セッション内の単一コンソールで、より多くのプレイヤーを見つけるためにマッチメイキングにゲーム セッションを広告するなど、ゲームの MPSD セッションの状態を管理します。 アービターは、タイトルが設定します。 アービターはゲームのホストとは限りません。 詳細については、トピック「マルチプレイヤー セッションの高度なトピック」の「セッション アービター」セクションを参照してください。 |
アレンジド ゲーム | 1 人のプレイヤーが他のプレイヤーの参加を招待することによってのみ作成され、マッチメイキングは関与しない種類のゲームです。 |
チャット パーティー | 一緒にチャットしているユーザーのグループです。 ユーザーは同じアクティビティに参加している場合もあれば、ゲーム、音楽、アプリといった別々のアクティビティを行っている場合もあります。 詳細については、前の「2015 マルチプレイヤーでサポートされているパーティー」を参照してください。 |
ゲームへの招待 | ゲーム セッションへの参加を促す招待です。 |
ゲーム セッション | プレイヤーが実際に一緒にプレイしているセッションです。 すべてのマルチプレイヤー シナリオ (マッチメイキングやロビーへの参加など) は、最終的にはゲーム セッションにたどり着きます。 参加を有効にするために、このセッションは、多くの場合、プレイヤーの現在のアクティビティとして公開されます。 最新のプレイヤー リストの構築にも使用されます。 詳細については、「Multiplayer Session advanced topics (マルチプレイヤー セッションの高度なトピック)」を参照してください。 |
ゲーム セッション ホスト | ホスト ベースのピアツーピア ネットワーク アーキテクチャ上に構築されるタイトルのために、ゲームプレイ シミュレーションを実行している本体です。 この本体は、通常、アービターと同じですが、同じである必要はありません。 |
ハンドル (またはセッション ハンドル) | 追加の状態と動作が関連付けられている MPSD セッションへの参照。 詳細については、トピック「マルチプレイヤー セッション ディレクトリの概要」の「セッションへの MPSD ハンドル」トピックを参照してください。 |
非アクティブなプレイヤー | セッション内で非アクティブ状態に設定されているプレイヤーです。 ゲームが一時停止されているとき、またはタイトルで定義されているそれ以外の非アクティブ状態であるときに、タイトルがプレイヤーをこの状態に設定します。 場合によっては、MPSD によってプレイヤーが非アクティブに設定されることもありますが、非アクティブへの設定は主としてタイトルの責任です。 詳細については、トピック「マルチプレイヤー セッションの高度なトピック」の「セッションのユーザーの状態」セクションを参照してください。 |
ホッパー | マッチ チケットのロジック駆動型コレクションです。 1 つのタイトルに複数のホッパーを含められますが、同じホッパーの内部にあるチケットのみがマッチング可能です。 たとえば、タイトルでは、プレイヤーのスキルがマッチングに最も重要な項目であるホッパーを作成できます。 同じダウンロード可能なコンテンツを購入している場合のみプレイヤーがマッチされる、別のホッパーを使用できます。 ホッパーが SmartMatch ワークフローのどこに適合するかの詳細については、「マッチメイキングの概要」を参照してください。 |
途中参加 | 別のプレイヤーのゲームにゲーム プレイの開始後に参加する概念です。 プレイヤーは、フレンドのゲーマー カードを通じてそのフレンドのゲームに参加できます。 タイトルはその後、適切なタイミングで、ゲーム セッションにプレイヤーを移動させることができます。 |
ロビー セッション | ゲーム セッションへの参加を待機している、招待されたプレイヤーのためのヘルパー セッションです。 詳細については、「Multiplayer Session advanced topics (マルチプレイヤー セッションの高度なトピック)」を参照してください。 |
マッチ ターゲット セッション | マッチを表すために SmartMatch マッチメイキング中に設定されるマッチ セッションです。 詳細については、「マッチメイキングの概要」を参照してください。 |
マッチ チケット セッション | SmartMatch マッチメイキング中に設定される暫定的なマッチ セッションです。 詳細については、「マッチメイキングの概要」を参照してください。 |
MPSD セッション | Xbox サービス クラウド内の MPSD に存在する安全なドキュメントです。 このドキュメントには、Xbox One 以降でタイトルを実行中に接続される可能性があるプレイヤーのグループと、それらのプレイヤーとそのゲームに関するメタデータが含まれます。 詳細については、「Multiplayer Session advanced topics (マルチプレイヤー セッションの高度なトピック)」を参照してください。 |
マルチプレイヤー セッション ディレクトリ (MPSD) | マルチプレイヤー システムがセッションを格納および取得するために使用する、クラウドで稼働するサービスです。 MPSD の詳細については、「マルチプレイヤー セッション ディレクトリ (MPSD)」を参照してください。 |
パーティー アプリ | プレイヤーが自分のパーティーを表示して管理するために使用できる、Xbox One 以降のシステム スナップ アプリ。 |
サーバー セッション | PlayFab マルチプレイヤー・サーバーなどのサーバーで作成されたゲームセッション。 「マルチプレイヤー セッションの高度なトピック」をご覧ください。 |
ショルダー タップ | 注目対象となる可能性のある変更がサービスで発生したことを知らせる、MPSD からタイトルへの通知です。 ショルダー タップは簡単なリマインダーで、多くの場合、通常の通知ほど情報が含まれていません。 詳細は、「マルチプレイヤー セッション ディレクトリの概要」の「MPSD の変更通知処理および切断検出」セクションを参照してください。 |
SmartMatch マッチメイキング | マッチメイキング サービスによって実装される、Xbox One 以降のタイトルで利用可能な Xbox サービス マッチメイキング機能。 タイトルが MPSD とマッチメイキングを使用してマッチ要求を行うと、一致するグループが検出されたときに通知を受け取ります。 詳細については、「マッチメイキングの概要」を参照してください。 |
2015 マルチプレイヤーの新機能
注意
タイトルで 2015 マルチプレイヤーを使用する場合は、2014 マルチプレイヤーでパーティー関連のクラスを使用しないでください。 パーティー関連クラスと 2015 マルチプレイヤー機能を混在させると一貫性のない動作の原因となるため、決して行わないでください。
2015 マルチプレイヤーの新しい概念
MPSD への Web ソケット接続
MPSD では、タイトルが MPSD との Web ソケット接続を維持できるようになりました。 これらの接続により、クライアントはセッションを変更するときに通知を受信できます。
詳細は、「マルチプレイヤー セッション ディレクトリの概要」の「MPSD の変更通知処理および切断検出」セクションを参照してください。
MPSD セッション ハンドル
2015 マルチプレイヤーでは MPSD セッション ハンドルのサポートが追加されます。これは、型指定されたデータを含めることができるセッションへの参照です。 詳細については、以下を参照してください。
- 「マルチプレイヤーの概念の概要」トピックの「セッション ハンドル」セクション。
- 「マルチプレイヤー セッション ディレクトリの概要」トピックの「セッションへの MPSD ハンドル」セクションを参照してください。
Xbox 360 と Xbox One の間での MPSD セッション機能の相違点
機能 | Xbox 360 | Xbox One |
---|---|---|
ゲーム セッション情報の取得 |
XSessionGetDetails 、XSessionSearchByID 、またはタイトルが追跡を行います。 |
タイトルは、MPSD からセッション情報を要求します。 |
ホストの移行 | 必要に応じて、タイトルは XSessionMigrateHost を呼び出します。 |
タイトルは、移行の原因に応じて、セッションに新しいホストを割り当てるか、新しい MPSD セッションを作成します。 |
複数のプレイヤー セッション | 例えば、XNetReplaceKey と XNetUnregisterKey のように、一度に複数のセッションを扱うのは厄介です。 |
サービス ベースのセッションはセッションの管理をわかりやすくし、複数のセッションの処理を簡略化します。 |
サインアウトと切断 | タイトルは、XCloseHandle と XSessionDelete では、切断とサインアウトの処理が異なります。 |
MPSD は、サインアウトと切断の処理を簡素化します。 タイムアウトはゲームの構成で設定されます。 |
Matchmaking | マッチメイキング クエリはクライアント ベースです。 | マッチメイキングはサービスベースで行われ、タイトル内でのマッチングの質の向上とバックグラウンドでのマッチングが容易になりました。 |
セッション
Xbox 360 では、セッションはゲームプレイのインスタンスを表していました。 プレイヤーがマッチメイキング サービスでセッションを検索し、セッションの終了時に統計を報告していました。
Xbox 360 以降のすべてのターゲット プラットフォーム (Windows PC を含む) ではセッションがより汎用になり、プレイヤーのグループを表すようになっています。
Xbox クライアント間のすべてのネットワーク接続にはセッションが必要です。セッションで保持される情報は、そのセッションのすべてのプレイヤーの間で共有される必要があります。 この情報の例には、セッションに参加できるプレイヤーの数、セッション内の各本体のセキュア アドレス、カスタムのゲーム データなどがあります。
Xbox のマッチメイキング
Xbox 360 では、属性のスキーマと、それらの属性を検索するための一連のクエリを指定することによって、タイトルでマッチメイキングを実行していました。 実行時に、タイトルがセッションをホストするか、セッションを検索するかを選択していました。
Xbox One (以降) や Windows PC などの新しい Xbox クライアントでは、マッチメイキングはサーバーベースです。 プレイヤーおよびタイトルの側で、ホストになるか検索するかを決定しなくなりました。 代わりに、事前に形成されたプレイヤーのグループのそれぞれが、「チケット」セッションを作成し、そのセッションをマッチメイキング サービスに送信するようになっています。
サービスは他のセッションを検索し、グループを結合して新しい "ターゲット" セッションを形成します。 クライアントはマッチを通知され、サービス品質 (QoS) 測定を実行してゲーム プレイを開始する前に他のセッション メンバーとの接続を検証します。
関連項目
マルチプレイヤー セッション ディレクトリ (MPSD)
マッチメイキングの概要
リアルタイム アクティビティ (RTA) サービス
評判