ロビーと接続文字列の結合

プレイヤーはロビー サービスにロビーの "接続文字列" を提供することでロビーに参加します。これは、ロビーにメンバーシップを付与する不透明な識別子です。

プレイヤーは次の方法で接続文字列を検出し、ロビーに参加することができます。

  1. ゲーム内の招待を使用する — ロビーのメンバーは、ロビー サービスを介して別のプレイヤーをそのロビーに直接招待できます。 これで、ロビーの接続文字列を招待されたプレイヤーと共有できます。 これらの招待はクロスプラットフォームで動作しますが、ゲーム内でのみ動作します。 詳細については、「ロビーの招待」をご覧ください
  2. プラットフォームが提供する招待を使用する — ロビーのメンバーは、プラットフォーム固有の招待メカニズムを介してロビーの接続文字列を他のプレイヤーと直接共有できます。 これらの招待はクロスプラットフォームでは機能しませんが、受信者がゲームを既に実行せずに受信できます。
  3. FindLobbies で使用可能なロビーを検索し、参加する
  4. 帯域外のカスタム検出メカニズムを介してロビーの接続文字列を共有する

注: メンバーとしてロビーに参加できるのは、プレイヤー (PlayFab エンティティ title_player_account) だけです。 ゲーム サーバー (PlayFab エンティティ game_server) は、メンバーとしてロビーに参加できません。 ゲーム サーバーがロビーとやり取りする方法の詳細については、「ゲーム サーバーとロビー」をご覧ください。

接続文字列とロビー ID

接続文字列とは別に、ロビーには 、LobbyId と呼ばれる別の識別子があります。 LobbyId は、ロビーの一意の識別子です。 タイトルは、プレイヤーが存在する複数のロビーを区別するために LobbyId を使用する場合がありますが、LobbyIds を使用してロビーに参加したり、メンバーシップを必要とする情報を直接照会したりすることはできません。 そのため、タイトルは LobbyId をシークレットにしておく必要はありません。 一方、接続文字列はロビーへのアクセスを許可するため、不要な外部の第三者に公開しないように注意する必要があります。

ロビーとマッチメイキング SDK を使用したロビーへの参加例

以下に、SDK が提供する PFMultiplayerJoinLobby API に接続文字列を渡す方法を示す短いスニペットをご紹介します。

このスニペットでは、接続文字列は、ゲーム内の招待、プラットフォーム固有の招待、フィルターをかけたロビー検索など、前述した各種の検出メカニズムから取得することができます。

// Initialize the member properties for the newly joining member
const char* playerColorPropertyKey = "PlayerColor";
const char* playerColorPropertyValue = MyGame::GetPlayerColorString(localUser);

PFLobbyJoinConfiguration joinConfig;
joinConfig.memberPropertyCount = 1;
joinConfig.memberPropertyKeys = &playerColorPropertyKey;
joinConfig.memberPropertyValues = &playerColorPropertyValue;

// Join the lobby using the connection string
HRESULT hr = PFMultiplayerJoinLobby(
    g_pfmHandle,
    &localUser,
    connectionString,
    &joinConfig,
    nullptr,
    nullptr);

関連項目