ゲーム サーバーとロビー
この記事では、ゲーム サーバーから PlayFab ロビーを使用する方法について説明します。
PlayFab マルチプレイヤー SDK でのゲーム サーバー API の有効化
PlayFab マルチプレイヤーでゲーム サーバー API を有効にするには、PFLobby.h を含める前に PFMULTIPLAYER_INCLUDE_SERVER_APIS を定義する必要があります。
#define PFMULTIPLAYER_INCLUDE_SERVER_APIS
#include <PFMultiplayer.h>
#include <PFLobby.h>
サーバー所有ロビーの作成
サーバー所有のロビーを作成するには、次の手順に従います。
- AuthenticateGameServerWithCustomId を使用して game_server PlayFab エンティティとしてログインし、エンティティ キーとトークンのペアを取得します。
- PFMultiplayerSetEntityToken を使用して、game_server のエンティティ キーとトークンを PlayFab マルチプレイヤー SDK に指定します。
- game_server のエンティティ キーを使用して PFMultiplayerCreateAndClaimServerLobby を呼び出します。
詳細とコード例については、「ロビーの作成」を参照してください。
サーバーがメンバーではない
クライアント所有のロビーでは、ロビーの所有者もロビーのメンバーです。
サーバー所有のロビーは、この点で異なります。 ロビーを所有する game_server エンティティは、ロビーのメンバーではありません。
サーバー所有者はグローバル ロビー プロパティを変更できますが、独自のメンバー プロパティ セクションはありません。
この区別の詳細については、「ロビー所有者とメンバー」を参照してください。
所有権と所有権の移行ポリシー
クライアント所有のロビーとは異なり、サーバー所有ロビーに対する有効な所有権移行ポリシーは、"サーバー" 所有権移行ポリシーの 1 つだけです。
これは、所有権の移行とロビーの回復に重要な影響を与えます。
主に、サーバー所有のロビーの所有者が切断された場合 (たとえば、サーバーがクラッシュしたため)、ロビーの所有権がロビー内のメンバーに自動的に転送されることはありません。 代わりに、ロビーはロビーの検索結果に表示されなくなり (このロビーに新しいメンバーが意図せずに参加しないようにするため)、何らかの回復ロジックを調整するかどうかはタイトル次第です。
次に利用可能な機会に、クラッシュした game_server エンティティは、PFMultiplayerFindLobbies 経由でlobby/amOwner 検索キーを使用して、回復する必要があるロビーを検索する必要があります。
回復が必要なロビーを見つけた後、ゲーム サーバーはゲームプレイ セッションの再開またはロビーの削除を試みることができます。
所有権の変更の詳細については、「所有権の変更」を参照してください。