다음을 통해 공유


커뮤니티 통계

커뮤니티 통계는 참여를 늘리고 게임에 대한 플레이어 투자를 촉진하는 강력한 도구입니다. 개발자는 게임 타이틀 수준에서 통계를 집계하여 플레이어 간의 협업을 장려하는 공유 목표와 과제를 만들 수 있습니다. 이는 개별 플레이어의 행동을 커뮤니티 차원의 목표를 향해 기여 전환하여 플레이어가 공동의 이정표를 달성하기 위해 함께 작업할 때 지속적인 참여를 유도합니다. 플레이어는 더 큰 커뮤니티에 대한 개인의 기여 중요하다고 느끼며 게임과 동료 플레이어 모두에 대한 연결을 강화합니다.

예를 들어, 전체 플레이어 기반이 1주일 이내에 총 1,000만 개의 제거 점수를 획득하여 특별한 게임 내 이벤트를 잠금 해제해야 하는 글로벌 보스 전투를 구현하는 것을 상상해 보십시오. 각 기여 함께 진행되는 커뮤니티 진행률 표시줄을 볼 때 목표를 달성하는 데 도움이 되는 동기부여가 됩니다. 특히 실시간 진행률 업데이트 및 마일스톤 보상과 함께 사용하면 투자 및 참여에 대한 강력한 피드백 루프가 만들어집니다.

PlayFab을 사용하면 플레이어 수준(집계 원본)과 게임 타이틀 수준(집계 대상)의 두 가지 통계를 정의하여 커뮤니티 통계를 쉽게 관리할 수 있습니다. 플레이어 통계에 대한 업데이트 타이틀 수준 통계로 자동으로 집계됩니다. 현재 커뮤니티 점수를 검색하려면 타이틀 엔터티에 대한 통계를 읽습니다.

원본 통계 정의 만들기

먼저 집계 원본 역할을 하는 플레이어에 대한 통계 정의를 만듭니다.

// Use the PlayFabAuthenticationContext to call the API
PlayFabProgressionInstanceAPI statsAPI = new PlayFabProgressionInstanceAPI(context);
CreateStatisticDefinitionRequest statDefinitionRequest = new CreateStatisticDefinitionRequest()
{
    Name = "sourceStat",
    AuthenticationContext = context,
    EntityType = "title_player_account",
    VersionConfiguration = new VersionConfiguration()
    {
        MaxQueryableVersions = 1,
        ResetInterval = ResetInterval.Manual,
    },
    Columns = new List<StatisticColumn>()
    {
        new StatisticColumn()
        {
            Name = "Eliminations",
            AggregationMethod = StatisticAggregationMethod.Sum,
        },
    },
};

PlayFabResult<PlayFab.LeaderboardsModels.EmptyResponse> createStatDefResult = await statsAPI.CreateStatisticDefinitionAsync(statDefinitionRequest);

대상 통계 정의 만들기

다음으로, 집계 대상으로 사용되는 타이틀에 대한 통계 정의를 만듭니다. 플레이어 통계 정의를 타이틀 통계 정의의 집계 원본으로 지정합니다.

// Use the PlayFabAuthenticationContext to call the API
PlayFabProgressionInstanceAPI statsAPI = new PlayFabProgressionInstanceAPI(context);
CreateStatisticDefinitionRequest statDefinitionRequest = new CreateStatisticDefinitionRequest()
{
    Name = "communityStat",
    AuthenticationContext = context,
    EntityType = "title",
    Columns = new List<StatisticColumn>()
    {
        new StatisticColumn()
        {
            Name = "Eliminations",
            AggregationMethod = StatisticAggregationMethod.Sum,
        },
    },
    AggregationSources = new string[] { "sourceStat" };
};

PlayFabResult<PlayFab.LeaderboardsModels.EmptyResponse> createStatDefResult = await statsAPI.CreateStatisticDefinitionAsync(statDefinitionRequest);

메모:EntityType 은 로 title 설정되고 AggregationSources 플레이어 수준에서 정의된 통계를 참조하도록 설정됩니다.

커뮤니티 통계가 만들어지면 플레이어 수준에서 업데이트된 모든 업데이트가 타이틀 수준에서 집계됩니다. 업데이트만 집계됩니다. 원본 통계가 한동안 존재했다면 해당 기록 값은 타이틀 수준에서 백필되지 않습니다.

커뮤니티 통계 읽기

타이틀 수준에서 통계에 대한 현재 점수를 검색하려면 타이틀 엔터티에 대한 통계를 읽어보세요.

// Use the PlayFabAuthenticationContext to call the API
PlayFabProgressionInstanceAPI statsAPI = new PlayFabProgressionInstanceAPI(context);

GetStatisticsRequest request = new GetStatisticsRequest()
{
    AuthenticationContext = context,
    Entity = new PlayFab.LeaderboardsModels.EntityKey()
    {
        Id = "<title id in hex>",
        Type = "title"
    },
};

PlayFabResult<GetStatisticsResponse> result = await statsAPI.GetStatisticsAsync(request); 

제한

  • 현재 커뮤니티 통계에 대해 하나의 집계 원본만 지정할 수 있습니다.
  • 커뮤니티 통계에 대해 버전 구성을 지정할 수 없습니다. 원본 통계에 대해 지정된 버전 구성도 커뮤니티 통계에 적용됩니다.
  • 커뮤니티 통계의 은 EntityType이어야title합니다.
  • Last 집계는 열에 사용할 수 없습니다.

참고 항목