- エンティティ プログラミング モデルの詳細については、こちらを参照してください: エンティティ プログラミング モデル。
- グループの仕組みについては、こちらを参照してください: グループ。
リーダーボードを作成する
ゲームとシナリオの種類にもよりますが、複数のリーダーボードを作成することが多いでしょう。今回の状況では、このゲームで想定される 2 種類のシナリオと、それぞれに対処するためにサービスをどのように使うかを示します。プレイヤー リーダーボード
この例では、プレイヤーは惑星をテラフォーミングしており、ゲーム内で特定のアクションを行うことで経験値を獲得します。したがって、プレイヤー レベルでその経験値を追跡するためのリーダーボードを用意します。このプロセスは、基本的なリーダーボードを作成するなどの他のチュートリアルで紹介された動作と同じです。ここで重要な点は、プレイヤーのみを対象とするため、EntityType パラメーターを"title_player_account" にする必要があるということです。
グループ リーダーボード
次に、例で紹介したゲームの側面、アライアンスに入っていきます。PlayFab では、"group" エンティティを使用してアライアンスを作成できます。このグループ エンティティにより、プレイヤーが参加できる構造を持つことができ、ゲームでこの種のシナリオを支えるロールやその他の興味深い機能も備えます。リーダーボードを作成する際には、2 つの点を明確にしておく必要があります。
- EntityType パラメーターは
"group"である必要があります。 - このリーダーボードは独立しています。したがって、アライアンスにスコアを追加するのは、プレイヤーのリーダーボードとは切り離された手動プロセスです。この動作により、スコアがプレイヤーとどのように関連付けられるかにさまざまな方法があり、あるいはグループにのみ適用される新しい指標にすることも可能になります。
リーダーボードにデータを追加する
両方のリーダーボードを作成した後、それらにデータを追加する方法を確認する必要があります。前の例で述べたとおり、これらのリーダーボードは互いに独立しているため、アライアンス (グループ) のスコアの仕組みに関するカスタム ロジックを開発者が制御できます。EntityId を提供する必要があります。プレイヤーのリーダーボードの場合、エンティティは "title_player_account" です。リーダーボードがグループで構成されている場合は、"group" であるエンティティを提供する必要があります。
リーダーボードからデータを取得する
リーダーボードのデータを取得するには、GetFriendLeaderboard API を除いて、リーダーボードでさらにできることで説明されているすべてのオプションが利用できます。グループ リーダーボードの表示名
最後に、グループ リーダーボードでできるもう 1 つの詳細として、表示名をエンティティのグループ名に設定することができます。たとえば「Raiders」というアライアンスがある場合、このグループ名はDisplayName プロパティでエンティティにマッピングされます。
CreateGroupAsync メソッドを呼び出してグループを作成します。この実行の最初のステップでは、Group オブジェクトを返します。これを使って表示名を設定します。SetDisplayNameRequest オブジェクトを使ってグループ名をエンティティにマッピングし、その後に PlayFabProfilesAPI.SetDisplayNameAsync メソッドを実行することで、このプロセスを行います。
まとめ
このチュートリアルでは、次の操作の方法を学びました:- グループ リーダーボードの作成。
- そのリーダーボードにデータを流し込む方法。
- リーダーボードの取得。
- グループ名を表示できるように displayName を変更する。
