次の方法で共有


コンテキスト データを統計に追加する

このチュートリアルでは、統計が更新されるたびにコンテキスト情報を追加する方法について説明します。 統計を保存するだけで十分でない場合があります。 ゲーム スタジオは、プレイヤーが特定のアクションをどのように実行したかについての詳細を追加したり、統計に関連する機能をゲーム内に組み込んだりすることができます。

私たちは競争力のあるシューティング ゲームを継続していきます。 この例では、ゲームは大きな成功を収めていますが、課題に直面しています。 武器の反動を除去し、エイム アシストを改善する外部コンポーネントを使用してゲームを "ハッキング" するユーザーに関する苦情が多すぎます。 そこで、ゲーム内で使用されるすべてのコンポーネントとネットワーク情報に関する詳細な情報を追跡することが私たちの任務になりました。

統計の作成

このシナリオに対処する方法を示すために、「統計をさらに活用する」ページから統計の定義を取り上げます。 この定義から、統計に追加されるすべての行にメタデータを追加する方法を確認します。

public static async Task CreateStatisticDefinitionAsync(PlayFabAuthenticationContext context, string statName)
{
    PlayFabProgressionInstanceAPI statsAPI = new PlayFabProgressionInstanceAPI(context);
    CreateStatisticDefinitionRequest statDefinitionRequest = new CreateStatisticDefinitionRequest()
    {
        Name = statName,
        AuthenticationContext = context,
        EntityType = "title_player_account",
        VersionConfiguration = new VersionConfiguration()
        {
            MaxQueryableVersions = 1,
            ResetInterval = ResetInterval.Manual,
        },
        Columns = new List<StatisticColumn>()
        {
            new StatisticColumn()
            {
                Name = "Distance",
                AggregationMethod = StatisticAggregationMethod.Max,
            },
             new StatisticColumn()
            {
                Name = "Caliber",
                AggregationMethod = StatisticAggregationMethod.Min,
            }
        },
    };
    
    PlayFabResult<PlayFab.LeaderboardsModels.EmptyResponse> createStatDefResult = await statsAPI.CreateStatisticDefinitionAsync(statDefinitionRequest);
}

このチュートリアルでは、この例から得られる重要な要素は、統計の構造です。 ご覧のとおり、複数の値を許可する複数の列があります。 しかし、焦点は、これらの各行にコンテキスト情報をどのように追加できるかにあります。

各統計にメタデータを追加する

プレイヤーがゲームプレイに影響を与える不正なハードウェアや、プレイヤーのパフォーマンスを向上させる可能性のあるその他の悪意のあるソフトウェアを所有しているかどうかを確認したいと考えています。 不正行為対策システムは、このすべての情報を取得することができます。 ロング ショットの統計については、この情報のみを添付する必要があります。

このアクションを実行するには、UpdateStatistics API を使用します。 ここでは、SDK の例をチェックできます。

public static async Task UpdateStatisticForPlayer(PlayFabAuthenticationContext context, string statName, string entityId, int score)
{
    PlayFabProgressionInstanceAPI statsAPI = new PlayFabProgressionInstanceAPI(context);
    UpdateStatisticsRequest updateStatRequest = new UpdateStatisticsRequest()
    {
        Entity = new PlayFab.LeaderboardsModels.EntityKey()
        {
            Id = entityId,
            Type = EntityType
        },
        AuthenticationContext = context,
        Statistics = new List<PlayFab.LeaderboardsModels.StatisticUpdate>() 
        {
            new PlayFab.LeaderboardsModels.StatisticUpdate() 
            {
                Name = statName,
                Scores = new List<string> { score.ToString()},
                Metadata = "Anticheat data"
            }
        }
    };

    PlayFabResult<UpdateStatisticsResponse> updateResult = await statsAPI.UpdateStatisticsAsync(updateStatRequest);
}

ここで確認できる主な概念は、StatisticUpdate 内の Metadata パラメーターの使用法です。これは、値自体とは別に更新されるコンテキスト データを参照します。 ここでは、開発者にとって意味のあるあらゆる情報 (この場合は不正行為対策データ) を追加できます。

これらの例により、トップ プレイヤーからのすべての関連情報を追跡できるようになり、ゲーム モデレーターは誰を禁止するかについてより適切な判断を下せるようになりました。

まとめ

このチュートリアルでは、次の操作を行う方法について説明しました:

  • 複数列統計を作成します。
  • 統計にメタデータを追加します。

関連項目