통계에 컨텍스트 데이터 추가
이 자습서에서는 통계가 업데이트 될 때마다 컨텍스트 정보를 추가하는 방법을 설명합니다. 통계를 저장하는 것만으로는 충분하지 않은 경우가 있습니다. 게임 스튜디오는 플레이어가 특정 작업을 수행하는 방법에 대한 몇 가지 세부 정보를 추가하거나 게임 내에서 통계와 관련된 기능이 있을 수 있습니다.
우리는 우리의 경쟁 사수 게임을 계속 할 거야. 이 예제에서 게임은 엄청난 성공을 거두었지만 어려움을 겪고 있습니다. 무기의 반동을 제거하고 목표 지원을 개선하는 외부 구성 요소로 게임을 "해킹"하는 사람들에 대한 불만이 너무 많습니다. 이제 게임에서 사용되는 모든 구성 요소 및 네트워크 정보에 대한 자세한 정보를 추적하는 임무를 맡았습니다.
통계 만들기
이 시나리오를 처리하는 방법을 보여 주려면 통계를 사용하여 더 많은 작업을 수행 페이지에서 통계 정의를 사용합니다. 이 정의에서 통계에 추가된 모든 행에 메타데이터를 추가하는 방법을 살펴보겠습니다.
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
것입니다. 여기서는 개발자에게 의미 있는 정보(이 경우 치트 방지 데이터)를 추가할 수 있습니다.
이러한 예제를 통해 이제 최고의 플레이어의 모든 관련 정보를 추적할 수 있으므로 게임 중재자가 누가 금지해야 할지 더 나은 결정을 내릴 수 있습니다.
결론
이 자습서에서는 다음 작업을 수행하는 방법을 알아보았습니다.
- 다중 열 통계를 만듭니다.
- 통계에 메타데이터를 추가합니다.