Skip to main content

はじめに

このドキュメントは、現在 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’” のようにします。数値プロパティは囲む必要はありません。
使用可能な事前定義済みの演算子もあります。指定する際には “lobby/” を前に付ける必要があります。

検索結果の並べ替え

このクエリの並べ替えを昇順 (“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 フィールドに指定されたすべてのメンバーが参加するまで開始されません。
次に、マッチが見つかり、状態変更が返されたら、arranged lobby に参加します。

クリーンアップ

次の表は、クリーンアップとシャットダウンのために MPSD および PlayFab Multiplayer で使用される類似の関数のリストを示しています。
PFMultiplayerUninitialize を呼び出す前に、必ずすべてのアクティブなロビーから離脱し、進行中のマッチメーキングチケットを破棄してください。

クリーンアップ - サンプルコード

アクティビティ

次の表は、アクティビティを管理するために MPSD および MPA で使用される類似の関数のリストを示しています。
アクティビティを設定したり招待を送信したりする場合は、必ず PFLobbyGetConnectionString から返される接続文字列を使用してください。

アクティビティ - サンプルコード

招待

次の表は、招待を送受信するために MPSD および MPA で使用される類似の関数のリストを示しています。

招待 - サンプルコード (タイトル UI)

招待 - サンプルコード (XBOX UI)

XGameUiShowMultiplayerActivityGameInviteResult は現在設定されているアクティビティを使用します。この関数を使用する前に、XblMultiplayerActivitySetActivityAsync を使用してアクティビティを設定する必要があります。

最近のプレイヤー

次の表は、MPSD および MPA を使用する際の最近のプレイヤーリストの管理方法を示しています。
スロットリングを避けるため、XblMultiplayerActivityUpdateRecentPlayers への呼び出しをバッチ処理することがベストプラクティスです。

最近のプレイヤー - サンプルコード

最終更新日 2026年8月25日