はじめに
このドキュメントは、現在 MPSD を使用しており、マルチプレイヤーゲームで PlayFab Multiplayer と MPA を使用するように移行したいゲーム開発者向けです。このドキュメントでは、最も一般的なマルチプレイヤーのシナリオを取り上げ、PlayFab Multiplayer を MPA とともに使用する方法を示すコードスニペットを提供します。Multiplayer Session Directory (MPSD) の概要
- ユーザーグループを接続するために必要な情報を共有するための、フル機能を備えたセッションサービス
- 招待や参加機能のために XBOX UI と統合
- SmartMatch マッチメーキングと完全に統合
- セッションは事前定義されたセッションテンプレートから派生
- 接続検出とセッションフローのための機能が統合
- サービス間で利用可能
Multiplayer Activity Service (MPA) の概要
- プレイヤーアクティビティ、招待、および最近のプレイヤーに関する XBOX Live 統合を簡素化するための軽量サービス
- 招待の送信/受け入れおよび参加時にシェルおよびコンソールオペレーティングシステムと連携
- セッション管理やマッチメーキングは行わない
- サービス間で利用可能
PlayFab Multiplayer の概要
- ロビーの検索や閲覧機能を含む、完全なマルチプレイヤーロビーサービス
- 透過的な API 統合を備えたクロスプラットフォームのリアルタイムサービス通知
- リアルタイム通知をサポートする完全なマッチメーキングサービス
初期化
次の表は、初期化のために MPSD および PlayFab Multiplayer で使用される類似の関数のリストを示しています。初期化 - サンプルコード
PlayFab titleID でライブラリを初期化し、PlayFab サービスへのログイン中に受け取ったエンティティトークンを設定します。ロビーの状態変更
次の表は、セッション/ロビーに関連するイベントを処理するために MPSD および PlayFab Multiplayer で使用される類似の関数のリストを示しています。ロビーの状態変更 - サンプルコード
状態変更の処理を開始することをライブラリに通知します。キューに入れられた各状態変更を処理してから、状態変更の処理が完了したことを通知します。ロビーの作成
次の表は、セッション/ロビーの作成および参加のために MPSD および PlayFab Multiplayer で使用される類似の関数のリストを示しています。ロビーを作成するのに、PlayFab Game Manager での追加のセットアップや構成は必要ありません。すべての構成はコード内で行うことができます。
ロビーの作成 - サンプルコード
ロビーを構成し、任意の初期ロビープロパティまたはメンバープロパティを設定してから、ロビーを作成して参加します。ロビーの検索
次の表は、セッション/ロビーを検索するために MPSD および PlayFab Multiplayer で使用される類似の関数のリストを示しています。ロビーの検索 - サンプルコード
検索構成を設定してからロビーを検索します。ロビー検索キー
カスタム検索プロパティを定義する際には、制限された一連のキーのみを使用できます。- 文字列プロパティの場合、次のキーがサポートされます: string_key1、string_key2、[…] string_key30
- 数値プロパティの場合、次のキーがサポートされます: number_key1、number_key2、[…] number_key30
ロビー検索演算子
FindLobbies API のクエリ文字列は、OData に似た構文で構造化されます。フィルター文字列の最大サイズは 600 文字です。 これらの OData 演算子を使用してクエリ文字列を構成できます。演算子は大文字と小文字が区別されます。文字列プロパティを比較する場合は、比較する値を必ず一重引用符で囲んでください。たとえば、“string_key1 eq ‘SOME STRING VALUE’” のようにします。数値プロパティは囲む必要はありません。
検索結果の並べ替え
このクエリの並べ替えを昇順 (“asc”) または降順 (“desc”) で含む OData スタイルの文字列。OrderBy 句は、任意の検索数値キーまたは数値の事前定義検索キーに使用できます。特定の数値に最も近い順に並べ替えるには、距離モニカーを使用して指定された数値検索キーからの距離で並べ替えることができます。距離ソートで昇順または降順を使用することはできません。このフィールドは、1 つのソート句または 1 つの距離句のみをサポートします。ソートが指定されていない場合、または指定されたソートに対してタイブレイクが必要な場合、デフォルトのソートは作成時刻に基づく降順になります。検索結果の並べ替えとフィルタリング - サンプルコード
ロビーへの参加
次の表は、セッション/ロビーへの参加のために MPSD および PlayFab Multiplayer で使用される類似の関数のリストを示しています。ロビーに参加するには接続文字列が必要です。通常、ロビーのホストは自身のアクティビティにこの接続文字列を設定するか、招待経由で送信します。接続文字列を取得するには
PFLobbyGetConnectionString を呼び出す必要があります。ロビーへの参加 - サンプルコード
初期参加構成を設定してから、ロビーに参加します。ロビーの更新
次の表は、セッション/ロビーの更新のために MPSD および PlayFab Multiplayer で使用される類似の関数のリストを示しています。PFLobbyPostUpdate を使用して、ロビープロパティとメンバープロパティの両方を更新できます。関数を 1 回呼び出すことで、1 種類または両方の種類のプロパティを更新できます。ロビーの更新 - サンプルコード (ロビープロパティ)
ロビーの更新 - サンプルコード (メンバープロパティ)
マッチメーキング
PlayFab Multiplayer のマッチメーキング API は、MPSD のマッチメーキング API と比較的類似しています。マッチメーキングキューは PlayFab Game Manager を介して構成する必要があります。
マッチメーキングの状態変更
次の表は、マッチメーキングに関連するイベントを処理するために MPSD および PlayFab Multiplayer で使用される類似の関数のリストを示しています。マッチメーキングの状態変更 - サンプルコード
状態変更の処理を開始することをライブラリに通知します。キューに入れられた各状態変更を処理してから、状態変更の処理が完了したことを通知します。マッチメーキングの開始
マッチメーキングの開始 - サンプルコード
マッチメーキングは、
membersToMatchWith フィールドに指定されたすべてのメンバーが参加するまで開始されません。クリーンアップ
次の表は、クリーンアップとシャットダウンのために MPSD および PlayFab Multiplayer で使用される類似の関数のリストを示しています。PFMultiplayerUninitialize を呼び出す前に、必ずすべてのアクティブなロビーから離脱し、進行中のマッチメーキングチケットを破棄してください。クリーンアップ - サンプルコード
アクティビティ
次の表は、アクティビティを管理するために MPSD および MPA で使用される類似の関数のリストを示しています。アクティビティを設定したり招待を送信したりする場合は、必ず
PFLobbyGetConnectionString から返される接続文字列を使用してください。アクティビティ - サンプルコード
招待
次の表は、招待を送受信するために MPSD および MPA で使用される類似の関数のリストを示しています。招待 - サンプルコード (タイトル UI)
招待 - サンプルコード (XBOX UI)
XGameUiShowMultiplayerActivityGameInviteResult は現在設定されているアクティビティを使用します。この関数を使用する前に、XblMultiplayerActivitySetActivityAsync を使用してアクティビティを設定する必要があります。最近のプレイヤー
次の表は、MPSD および MPA を使用する際の最近のプレイヤーリストの管理方法を示しています。スロットリングを避けるため、
XblMultiplayerActivityUpdateRecentPlayers への呼び出しをバッチ処理することがベストプラクティスです。