계절 통계
이 자습서에서는 통계 버전 관리의 개념을 설명합니다. 지정된 통계의 다른 버전을 사용하려는 경우가 여러 가지 있습니다. 예를 들어 게임에 시즌이 있는 경우 새 시즌이 시작될 때 통계를 재설정할 가능성이 가장 높습니다.
기본 통계 만들기의 예제를 계속 진행합니다. 우리의 슈팅 게임이 정말 인기를 끌고 있다고 상상해보십시오. 따라서 계절의 개념이 도입됩니다. 매월 게임은 모든 플레이어 기반에 대한 새로운 테마 시즌을 출시합니다. 따라서 시즌당 독립적인 통계를 유지하고 싶습니다.
버전 관리를 위한 통계 정의 만들기
이전 예제에서는 통계 정의를 만들 때 버전 관리를 위한 매개 변수의 중요성에 대한 힌트가 VersionConfiguration
있었습니다. 여기서는 사용 방법 및 작동 방식을 자세히 설명합니다.
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 = 12,
ResetInterval = ResetInterval.Month,
},
Columns = new List<StatisticColumn>()
{
new StatisticColumn()
{
Name = "Longshots",
AggregationMethod = StatisticAggregationMethod.Max,
}
},
};
PlayFabResult<PlayFab.LeaderboardsModels.EmptyResponse> createStatDefResult = await statsAPI.CreateStatisticDefinitionAsync(statDefinitionRequest);
}
이 예제에서 기본 통계와 비교했을 때 기본 차이점은 매개 변수입니다VersionConfiguration
. 이 매개 변수를 사용하면 쿼리할 수 있는 동일한 통계의 버전 수를 지정하는 설정을 정의 MaxQueryableVersions
할 수 있습니다. 이 경우 12개 버전을 쿼리하도록 설정합니다.
매개 변수는 ResetInterval
다시 설정 프로세스가 발생하는 빈도를 정의합니다. 이 프로세스에는 이전과 동일한 구성을 사용하지만 값이 없는 통계를 만드는 작업이 포함되며, 버전 매개 변수는 다음과 같이 변경됩니다. N = N + 1, 통계 정의를 만들 때 N = 0입니다.
예를 들어 버전 매개 변수가 지정된 값을 가진 2와 같은 통계를 살펴보겠습니다. 이제 해당 통계의 버전을 늘리면 버전 매개 변수가 값 없이 3과 같은 새 통계가 됩니다. 한편 이전 통계는 쿼리할 시스템에 남아 있습니다.
는 ResetInterval
여러 가지 방법으로 작동할 수 있습니다. 이 예제에서는 월별이지만 개발자의 요구에 따라 변경할 수 있습니다. 이 경우 순위표가 구성된 순간부터 매월 자동으로 다시 설정됩니다. 다음과 같은 초기화 전략을 지원합니다.
- Day
- Hour
- Manual
- Month
- Week
통계 버전 증가
이 새로운 구성을 사용하면 여러 계절에 대해 동일한 통계의 여러 버전을 가질 수 있습니다. 하지만 문제로 인해 순위표를 수동으로 재설정하고 시즌 동안 시작해야 한다면 어떻게 될까요? 이러한 경우 API를 사용하여 수동 재설정을 수행할 수 있습니다. 다음은 SDK를 사용하는 예제입니다.
public static async Task ResetStatistic(PlayFabAuthenticationContext context, string statName)
{
PlayFabProgressionInstanceAPI statsAPI = new PlayFabProgressionInstanceAPI(context);
IncrementStatisticVersionRequest resetStatRequest = new IncrementStatisticVersionRequest()
{
AuthenticationContext = context,
Name = statName,
};
PlayFabResult<PlayFab.LeaderboardsModels.IncrementStatisticVersionResponse> resetStatResponse = await statsAPI.IncrementStatisticVersionAsync(resetStatRequest);
}
이제 통계 버전 관리와 관련된 모든 문제를 처리하도록 설정되었습니다. 여기서 중요한 측면 중 하나는 버전으로 유지하기로 결정한 통계 정의 수가 서비스 내에서 스토리지를 사용할 때 미터가 될 것이라는 점입니다. 자세한 내용은 여기를 참조하세요.
결론
이 자습서에서는 다음 작업을 수행하는 방법을 알아보았습니다.
- 올바른 재설정 전략을 사용하여 통계 만들기
- 통계 버전 증가