Skip to main content
이 튜토리얼에서는 리더보드에서 그룹 엔티티를 사용하는 방법을 배웁니다. 이 개념을 이해하기 위해 행성 테라포밍에 초점을 맞춘 “RPG” 게임 예시로 시작하겠습니다. 플레이어는 각 행성에 구조물을 건설하고 발전시키며, 자원을 모으고, 자신의 우주선을 만들고, 다른 플레이어가 물건을 훔치기 위해 공격할 수 있으므로 방어 수단도 마련해야 합니다. 이 게임의 한 가지 핵심 요소는 플레이어들이 팀을 이루어 다른 플레이어들을 그룹으로 공격하기 위해 얼라이언스를 시작할 수 있다는 것입니다. 이 컨텍스트를 바탕으로 얼라이언스에 대한 리더보드를 만들어, 전 우주에서 어느 얼라이언스가 가장 강한지 알 수 있도록 하려고 합니다. 그룹 리더보드 작동 방식을 더 자세히 알아보기 전에 유의해야 할 주요 사항이 있습니다.

리더보드 만들기

게임과 시나리오의 유형에 따라 여러 리더보드를 만들게 될 가능성이 높습니다. 이 컨텍스트에서는 이 게임의 두 가지 시나리오와 각각을 처리하기 위해 서비스를 어떻게 사용하는지 보여주려 합니다.

플레이어 리더보드

이 예시에는 행성을 테라포밍하고 게임 내 특정 행동을 통해 경험치를 얻는 플레이어들이 있습니다. 그래서 플레이어 수준에서 그 경험치를 추적하는 리더보드를 만들 것입니다. 이 프로세스는 기본 리더보드 만들기 같은 다른 튜토리얼에서 소개된 것과 동일한 동작을 따릅니다. 여기서 중요한 점은 EntityType 매개 변수가 "title_player_account"여야 플레이어 전용이 된다는 것입니다.

그룹 리더보드

이제 예시에서 언급된 게임의 요소인 얼라이언스로 넘어갑시다. PlayFab에서 "group" 엔티티를 사용하여 얼라이언스를 만들 수 있습니다. 이 그룹 엔티티는 플레이어가 가입할 수 있는 구조를 제공하며, 역할과 이런 종류의 게임 시나리오를 강화하는 다른 흥미로운 기능도 갖추고 있습니다. 리더보드를 만들 때 두 가지를 명확히 해야 합니다.
  • EntityType 매개 변수는 "group"이어야 합니다.
  • 이 리더보드는 독립적입니다. 따라서 얼라이언스의 점수를 추가하는 작업은 플레이어 리더보드와 분리된 수동 프로세스입니다. 이 동작 덕분에 점수가 플레이어와 어떻게 연결되는지 다양한 방식이 가능하거나, 그룹에만 적용되는 새로운 지표를 사용할 수도 있습니다.

리더보드에 데이터 추가하기

두 리더보드를 만든 후에는 각각에 데이터를 어떻게 추가할지 확인해야 합니다. 앞서 이전 예시에서 언급했듯이 이 리더보드들은 서로 독립적이므로, 개발자가 얼라이언스(그룹)의 점수가 어떻게 작동하는지에 대한 사용자 지정 로직을 적용할 수 있습니다.
이 시나리오에서 플레이어 리더보드나 그룹 리더보드에 항목을 추가하는 코드는 동일합니다. 그러나 이 동작이 항상 그런 것은 아닌데, 예를 들어 플레이어용으로는 다섯 개의 열을 가진 리더보드를 만들고, 그룹용으로는 하나의 열만 가진 리더보드를 만들 수도 있기 때문입니다. 다중 열 리더보드에 대해서는 이 튜토리얼에서 더 자세히 다룹니다: 리더보드 더 활용하기. 항상 유의해야 할 점은 서비스에 올바른 EntityId를 제공해야 한다는 것입니다. 플레이어 리더보드가 있다면 엔티티는 "title_player_account"이며, 리더보드가 그룹으로 구성되어 있다면 "group"인 엔티티를 제공해야 합니다.

리더보드에서 데이터 검색

리더보드의 데이터를 가져오는 데는 GetFriendLeaderboard API를 제외하고 리더보드 더 활용하기에 설명된 모든 옵션을 사용할 수 있습니다.

그룹 리더보드의 표시 이름

마지막으로, 그룹 리더보드에서 할 수 있는 또 다른 세부 작업은 엔티티의 그룹 이름을 표시 이름으로 설정하는 것입니다. “Raiders”라는 얼라이언스가 있다면 이 그룹 이름은 DisplayName 속성을 통해 엔티티에 매핑됩니다.
이 예시에서는 CreateGroupAsync 메서드를 호출하여 그룹을 만듭니다. 이 실행의 첫 단계에서 Group 개체가 반환되며, 이를 표시 이름 설정에 사용합니다. SetDisplayNameRequest 개체로 그룹 이름을 엔티티에 매핑한 다음 PlayFabProfilesAPI.SetDisplayNameAsync 메서드를 실행하여 이 프로세스를 수행합니다.

결론

이 튜토리얼에서 우리는 다음 작업을 수행하는 방법을 배웠습니다.
  • 그룹 리더보드 만들기.
  • 해당 리더보드에 데이터를 공급하는 방법 학습.
  • 리더보드 검색.
  • 그룹 이름을 표시할 수 있도록 displayName 변경.

함께 보기

마지막 수정일 2026년 8월 13일