리더보드는 열성 팬(공개 리더보드에서 최고 순위를 차지하려고 노력하는 플레이어)과 좀 더 일반적인 플레이어(친구들의 게임 진행 상황과 내 진행 상황을 비교하는 데 관심 있는 플레이어)를 모두 포함하여 플레이어 간에 경쟁을 유도하는 흥미로운 방법이 될 수 있습니다.
플랫폼의 리더보드를 구현하는 방법은 클라이언트 구현을 참고하세요.
리더보드 이해
리더보드를 만들 때 Play 게임즈 서비스에서는 이 리더보드의 대부분의 측면을 자동으로 관리합니다. 일반적인 과정은 다음과 같습니다.
- 게임이 끝나면(또는 결정된 적절한 때에) 게임은 플레이어의 점수를 게임에 생성한 하나 이상의 리더보드에 제출합니다.
- Play 게임즈 서비스는 이 점수가 플레이어의 현재 리더보드 일간 또는 주간, 전체 기간 점수 항목보다 좋은지 확인합니다. 더 좋으면 Play 게임즈 서비스는 해당 리더보드를 새 점수로 업데이트합니다.
- Play 게임즈 서비스는 점수 보고서를 다시 게임 클라이언트로 전송합니다. 이 보고서는 이 점수가 새로운 일간 또는 주간, 전체 기간 최고점수인지 클라이언트에 알려줍니다. 최고점수가 아니라면 Play 게임즈 서비스는 해당 플레이어의 현재 일간 또는 주간, 전체 기간 최고점수를 클라이언트에 알려줍니다.
- 플레이어의 리더보드 결과를 가져오려면 기간(일간, 주간, 전체 기간)을 요청하고 사용자가 소셜 또는 공개 리더보드를 확인하려고 하는지 지정하면 됩니다. Play 게임즈 서비스는 필요한 모든 필터링을 실행한 후 결과를 클라이언트로 다시 전송합니다.
- 보고할 점수가 많을 경우 Play 게임즈 서비스는 최고 리더보드 점수 데이터만 다시 전송합니다. 최고점수 또는 플레이어 점수에 인접한 점수에 관한 원시 점수 데이터를 가져올 수도 있습니다.
여러 개의 리더보드
게임에는 여러 개의 리더보드를 만들 수 있으며 최대 70개까지 가능합니다. 예를 들어 여러 단계 게임은 단계마다 다른 리더보드를 제공할 수 있고, 레이싱 게임에는 트랙마다 별도의 리더보드가 있을 수 있습니다.
리더보드 기간
Play 게임즈 SDK는 개발자가 만드는 모든 리더보드의 일간, 주간, 전체 기간 버전을 자동으로 생성합니다. 각 기간마다 별도의 리더보드를 만들 필요는 없습니다.
일간 리더보드는 일 년 내내 UTC-7(태평양 표준시 자정)에 재설정됩니다.
주간 리더보드는 일간 리더보드(UTC-7)와 동일한 시간대로 토요일에서 일요일로 넘어가는 자정에 재설정됩니다.
공개 및 소셜 리더보드
Play 게임즈 SDK는 각 리더보드의 두 가지 다른 버전을 플레이어에게 표시할 수 있습니다.
소셜 리더보드는 사용자 서클에서 게임플레이 활동을 사용자와 공유하기로 결정한 사람들(또는 더 정확하게는 사용자가 애플리케이션과 공유하도록 선택한 서클의 회원)로 구성된 리더보드입니다.
공개 리더보드는 게임플레이 활동을 공개적으로 공유하기로 선택한 플레이어로 구성된 리더보드입니다. 플레이어가 게임플레이 활동을 공개적으로 공유하도록 선택하지 않으면 이 리더보드에 표시되지 않습니다.
리더보드 표시
모바일 클라이언트 라이브러리에서 라이브러리는 리더보드의 모든 형식 지정과 표시를 처리합니다. 플레이어에게 특정 리더보드를 표시할지, 또는 플레이어가 선택할 수 있는 모든 리더보드 목록을 표시할지 지정할 수 있습니다.
클라이언트 라이브러리에서 직접 데이터에 액세스하여 자체 리더보드 버전을 구현할 수도 있습니다.
속성
리더보드를 만들고 관리하려면 다음 리더보드 속성을 숙지하는 것이 좋습니다.
기본사항
다음 기본 요소는 모든 리더보드에 해당됩니다.
- ID: Google Play Console에서 생성되는 고유한 문자열입니다. 이 고유 ID를 사용해 게임 클라이언트의 리더보드를 참조하게 됩니다.
- 이름: 리더보드의 간략한 이름입니다(예: '최고점수' 또는 '레벨 3' 등). 최대 100자(영문 기준)까지 가능합니다.
- 아이콘: 리더보드에 연결되는 정사각형 아이콘입니다. 리더보드 아이콘을 만들 때 권장사항은 아래 아이콘 가이드라인 섹션을 참고하세요.
- 목록 순서: 플레이어가 게임과 연결된 리더보드를 볼 때 리더보드가 표시되는 순서입니다.
- 한도: 리더보드에 허용되는 점수의 하한 및 상한을 정의하는 값입니다(선택사항). 이를 통해 명백히 허위인 점수 제출을 삭제할 수 있습니다.
Players.hide
를 사용하여 허위 점수를 제출했다고 생각하는 플레이어를 앱의 모든 리더보드에서 숨길 수도 있습니다.
정렬
리더보드는 다음 두 가지 정렬 유형 중 한 가지로 정렬할 수 있습니다.
- 점수가 높을수록 좋은 리더보드가 기본값입니다. 이는 일반적으로 플레이어가 포인트를 획득하는 대부분의 게임에서 볼 수 있습니다.
- 점수가 낮을수록 좋은 리더보드는 점수가 낮을수록 좋은 경우에 가끔 사용됩니다. 이러한 리더보드 유형의 가장 일반적인 예는 레이싱 게임으로, 점수가 플레이어가 레이스를 완료한 시간을 나타냅니다.
점수 표시 방식
모든 점수는 리더보드에 제출되어 내부적으로 긴 정수로 저장되지만 Play 게임즈 서비스는 여러 다양한 형식으로 사용자에게 이를 표시할 수 있습니다.
숫자 리더보드는 점수를 숫자로 표시합니다. 정수 또는 고정 소수점 이하 자릿수가 있는 실수로 표시할 수 있습니다. 점수를 정수로 제출하면 소수점이 지정된 위치에 삽입됩니다. 예를 들어 점수
314159
는 지정된 소수점 위치에 따라3.14159
또는3141.59
,314159
로 표시됩니다.시간 리더보드는 시/분/초/100분의 1초 형식으로 점수를 표시합니다. 점수를 밀리초로 제출해야 하므로
66032
는1:06.03
으로 해석됩니다.통화 리더보드는 점수를 통화 형식으로 표시합니다. 점수를 기본 통화 단위의 1/1,000,000번째로 제출합니다. 예를 들어 통화를 USD로 지정했다고 가정하면 점수 19,950,000은
$19.95
로 해석됩니다.
숫자 리더보드는 맞춤 단위도 지원합니다. 예를 들어 게임에서 최고점수를 미터 단위로 측정하는 경우 '미터'를 리더보드의 기본 단위로 지정할 수 있습니다.
번역 및 점수 표시 방식
모바일 클라이언트 라이브러리에서 Play 게임즈 서비스의 리더보드 데이터를 요청할 때는 이러한 점수를 표시할 언어를 지정합니다. REST API를 사용하면 언어 기반 언어도 지정할 수 있습니다. Play 게임즈 서비스는 해당 언어에 적합한 형식으로 지정된 리더보드 점수를 반환합니다. 이러한 형식의 점수는 리더보드에 번역을 추가했는지 여부와 관계없이 표시됩니다.
숫자 리더보드의 경우 숫자 형식은 언어마다 다르게 표시됩니다.
예를 들어 미국은 12,345.78
, 프랑스는 12 345,78
입니다. 맞춤 단위를 사용하고 게임에 번역을 추가한 경우 추가한 모든 언어의 번역된 단위를 제공해야 합니다. 그러면 서비스에서 이와 같이 번역된 단위를 적절한 시점에 표시합니다.
선택한 언어에 따라 다른 버전의 단위 이름을 제공해야 할 수도 있습니다. 영어의 경우 한 항목에 한 버전이 필요하고 그 외 항목에 또 다른 버전이 필요합니다(예: 'meter', 'meters'). 반면 폴란드어의 경우 한 단위, 몇 개의 단위, 여러 단위, 그 외 모든 단위의 버전을 제공해야 합니다. 복수형 규칙에 관해 자세히 알아보려면 수량 문자열(복수형) 페이지를 참고하세요.
시간 리더보드의 경우 시간 형식이 플레이어의 언어를 기반으로 표시됩니다. 몇 분의 1초를 사용하거나 시간(hour) 값이 3자리를 초과하는 경우 주로 눈에 띄게 표시됩니다(예: 미국의 경우 4,815:16:23.42
, 독일의 경우 4.815:16:23,42
).
통화 리더보드의 경우 플레이어의 언어에 따라 통화 형식이 표시됩니다. 그러나 통화 단위를 변경할 수는 없습니다. 예를 들어 USD로 통화를 지정하면 게임에서는 미국의 경우 $19.95
, 프랑스의 경우 19,95 $
를 표시합니다. 그러나 게임이 미국에서는 달러로, 프랑스에서는 유로로 표시하도록 지정할 수는 없습니다.
아이콘 가이드라인
아이콘은 512 x 512 PNG 또는 JPEG 파일로 만들어야 합니다. 아이콘은 대부분의 게임 클라이언트에서 축소되므로 세부내용이 너무 많은 아이콘을 만들지 않는 것이 좋습니다. 알파 채널을 사용해 아이콘을 제출하면 투명도가 유지됩니다. 리더보드 아이콘은 Android 기기에서 어두운 회색 배경에 표시되므로 이러한 상황에서 효과적인 아이콘을 선택합니다.
모든 언어에서 동일한 아이콘이 사용되므로 아이콘에 텍스트나 현지화된 콘텐츠를 포함하지 않는 것이 좋습니다.
리더보드 만들기
이 섹션에서는 새 게임이나 기존 게임의 리더보드를 만드는 방법을 설명합니다.
새 게임의 리더보드 만들기
게시되지 않은 새 게임의 리더보드를 만들려면 게임의 Google Play Console 항목으로 이동하고 성장 > Play 게임즈 서비스 > 설정 및 관리 > 리더보드로 이동한 후 리더보드 만들기 버튼을 클릭합니다.
![기본 리더보드 패널의 '리더보드 추가' 버튼](https://developer.android.com/static/images/games/pgs/leaderboardAddNew.png?authuser=0000&hl=ko)
그런 다음 해당 리더보드에 필요한 정보를 입력합니다.
!['베스트 라운드' 리더보드의 작성 양식](https://developer.android.com/static/images/games/pgs/leaderboardSampleForm.png?authuser=0000&hl=ko)
초안으로 저장을 클릭하면 리더보드가 '초안' 상태로 제공됩니다. 게임을 게시하면 게임의 모든 리더보드가 게임과 함께 게시됩니다.
게시된 게임의 리더보드 만들기
이미 게시된 게임의 리더보드를 추가로 만들려면 위와 동일한 단계를 따릅니다. 업데이트된 버전의 게임 테스트에 관한 자세한 내용은 게임 변경사항 게시를 참고하세요.
리더보드를 테스트하고 만족하면 새 리더보드로 게임을 다시 게시할 수 있고 그러면 전 세계에 공개됩니다.
리더보드 수정
이미 만든 리더보드를 수정하려면 Google Play Console의 리더보드 탭에서 리더보드를 클릭합니다. 이때 리더보드를 처음 만들 때 사용한 것과 동일한 양식이 표시되므로 원하는 대로 필드를 수정할 수 있습니다.
리더보드 수정을 완료하면 초안으로 저장 버튼을 클릭합니다. 새로 수정된 리더보드는 '초안' 상태가 되므로 테스트할 수 있습니다.
제대로 작동한다면 리더보드 양식 상단의 상자에서 변경사항 게시를 선택합니다. 그러면 업데이트된 모든 리더보드와 함께 게임을 다시 공개적으로 게시할 수 있습니다.
수정 실행취소
새로 수정한 리더보드가 만족스럽지 않아 이전 버전으로 돌아가려면 리더보드 양식 상단의 상자에서 되돌리기를 선택하기만 하면 됩니다. 리더보드가 이미 게시된 버전으로 되돌아갑니다.
리더보드 삭제
'초안' 상태이거나 게시된 리더보드는 삭제할 수 있습니다. Google Play Console에서 리더보드를 삭제하려면 리더보드 양식으로 이동한 후 양식 상단의 리더보드 삭제를 클릭합니다.
또는 Players.hide
를 호출하여 플레이어의 리더보드를 앱에서 숨길 수 있습니다.
리더보드 재설정
초안 리더보드의 플레이어 진행 상황 데이터만 재설정할 수 있습니다.
- Google Play Console에서 리더보드를 재설정하려면 해당 이벤트 양식의 상단에서 진행 상황 재설정을 클릭합니다.
- 프로그래매틱 방식으로 리더보드 데이터를 재설정하려면 Management API
Scores
메서드를 호출합니다.
리더보드 번역 추가
게임과 연결된 리더보드의 자체 번역을 지정할 수 있습니다. 이렇게 하기 전에 먼저 게임에 번역 추가에 설명된 단계를 완료해야 합니다. 또한 게임의 리더보드를 하나 이상 만들어야 합니다.
자체 리더보드 번역을 추가하려면 Google Play Console에서 게임의 리더보드 탭을 열고 기존 리더보드를 선택합니다. 리더보드 세부정보 페이지에서 이전에 게임 세부정보 탭에 추가한 언어의 탭을 클릭합니다. 해당 언어의 리더보드 세부정보 페이지에서 해당 리더보드의 번역으로 양식을 수정합니다. 저장을 클릭하여 번역된 리더보드 세부정보를 저장합니다.
리더보드 점수 숨기기
Google Play 게임즈 서비스는 조작된 것으로 의심되는 점수를 확인하여 자동으로 숨기는 리더보드 조작 방지 기능을 제공합니다. 이 기능은 Android 게임에서만 사용할 수 있습니다.
조작 방지 기능은 Android 게임용으로 만드는 새 리더보드에 기본적으로 사용 설정되지만 기존 리더보드에서는 사용 중지됩니다. 이미 게시된 기존 리더보드에 조작 방지를 사용 설정하려면 다음 단계를 따르세요.
- Google Play Console에서 게임 서비스 탭을 열고 목록에서 게임을 선택합니다.
- 리더보드 탭을 열고 조작 방지를 사용 설정할 리더보드 인스턴스를 선택합니다.
- 리더보드 조작 방지 사용 설정 옵션을 사용으로 설정합니다.
- 저장하고 계속하기를 클릭합니다.
- 게임을 게시합니다.
조작 방지가 Google Play Console에서 리더보드에 사용 설정된 후 이 기능이 적용되는 데는 최대 24시간이 걸릴 수 있습니다. 조작 방지를 사용 설정하기 전에 제출한 점수는 소급하여 숨겨지지 않습니다.
경우에 따라 조작 방지 기능을 사용 중지해야 할 수도 있습니다. 게임이 Android 외에도 웹에서 실행되고 이러한 플랫폼 간에 리더보드를 공유하는 경우를 예로 들 수 있습니다.
클라이언트 구현
플랫폼의 리더보드를 구현하는 방법은 다음 리소스를 참고하세요.