例
- クラン/ギルド - エンティティ グループは、長期的にプレイヤー同士を結び付けるどのような社会的な絆であっても、定期的に一緒にプレイするプレイヤーのセットを表すのに使用できます。
- パーティ - エンティティ グループは、個々のプレイヤーが直近の目標を達成できるようにするために作成され、その後簡単に解散される短期的なグループとして使用できます。
- チャット チャンネル - 短期または長期のチャット チャンネルをエンティティ グループとして定義できます。
- ゲーム内の情報購読 - ゲーム内に単一インスタンスの伝説のアイテムがありますか? プレイヤーがそのアイテムの状況について常に更新情報を受け取りたい場合はどうしますか? そのアイテムに焦点を当てたエンティティ グループを作成し、そのアイテムに関心のあるすべてのプレイヤー エンティティをメンバーとして加えましょう。
- オブジェクト データ
- ファイル データ
- プロファイル
グループには既定でグループごとに 1000 メンバーの制限があり、メンバーとしてはプレイヤーとキャラクターのみをサポートします。
エンティティ グループの使用
グループを作成する際、グループに追加される最初のエンティティは Admin (管理者) ロールに配置されます (このガイドでは簡略化のため、そのエンティティをオーナーと呼びます)。オーナーは、新しいメンバーの招待、さまざまなカスタマイズ可能な権限を持つ新しいロールの作成、メンバーのロールの変更、メンバーのキックなどを行うことができます。 さらに、エンティティに存在する同じエンティティ関数がグループにも機能するため、JSON オブジェクトやファイルを直接グループに保存して、ゲーム固有の任意のデータを保存できます。 以下に示すコード例は、基本的なギルド操作を始めるのに役立ちます。 このコードでは、グループの作成、メンバーの追加および削除、グループの削除が可能です。あくまで出発点として意図されており、ロールや権限については示していません。サンプルの内容を分解する
このサンプルはコントローラーとして構築されており、最小限のデータをローカル キャッシュに保存し (PlayFab が信頼できるデータ層です)、グループに対する CRUD 操作を実行する方法を提供します。 提供されているサンプルの一部の関数を見てみましょう。-
OnSharedError- これは PlayFab のサンプルにおける典型的なパターンです。エラーを処理する最も簡単な方法はそれを報告することです。実際のゲーム クライアントでは、はるかに高度なエラー処理ロジックが実装されることになるでしょう。 -
ListMembership-ListMembershipを呼び出して、指定したエンティティが所属するすべてのグループを判定します。プレイヤーは、既に参加しているグループを知りたいものです。 -
CreateGroup/DeleteGroup- ほぼ名前のとおりです。このサンプルでは、これらの呼び出しが成功したときにローカルのグループ情報キャッシュを更新する方法を示します。 -
InviteToGroup/ApplyToGroup- グループへの参加は 2 段階のプロセスであり、両方向から開始できます。- プレイヤーがグループへの参加を申請できます。
- グループがプレイヤーを招待できます。
-
AcceptGroupInvitation/AcceptGroupApplication- 参加プロセスの 2 番目の段階です。応答するエンティティが招待を承諾することで、プレイヤーがグループの一員となる処理が完了します。 -
RemoveMembers- (ロールの権限で定義された) 権限を持つメンバーは、グループからメンバーをキックできます。
サーバーとクライアントの比較
すべての新しいエンティティ API メソッドと同様に、サーバー API とクライアント API の区別はありません。 アクションは、プロセスがどのように認証されたかに応じて呼び出し元によって実行されます。クライアントはそのように識別され、これらのメソッドをタイトル プレイヤー エンティティとして呼び出します。グループ内でのロールと権限は呼び出しのたびに評価され、そのアクションを実行する権限があることが保証されます。 サーバーは同じdeveloperSecretKey で認証され、これによってそのプロセスがタイトル エンティティとして識別されます。タイトルはロール チェックをバイパスし、タイトルによって実行される API 呼び出しは、たとえばエンティティがメンバーでない場合に削除できないなど、アクションを実行することが不可能な場合にのみ失敗します。
