함께 플레이하기
PlayDrop 게임의 순위표
catalogue.json에 순위표를 선언하고, sdk.leaderboards로 점수를 제출하고, 상위 순위와 플레이어 주변 순위를 보여 주세요. 점수 유형, 제한, 업데이트 규칙도 담았습니다.
순위표는 플레이어에게 다시 플레이할 이유와 공유할 순위를 줍니다. PlayDrop은 순위표마다 플레이어별 최고 점수를 저장하고 게임에 표시합니다.
순위표 선언하기
catalogue.json의 앱에 추가하세요.
json
{
"leaderboards": [
{ "key": "high-score", "displayName": "High score", "description": "Most points in one run",
"scoreType": "INTEGER", "sort": "DESC", "unitLabel": "pts" },
{ "key": "best-time", "displayName": "Fastest run", "description": "Time to reach the flag",
"scoreType": "TIME_MS", "sort": "ASC" }
]
}key: 3~64자이며 소문자로 시작하고, 그 뒤에 소문자, 숫자,_,.,-가 옵니다.scoreType과sort는 두 가지 조합만 있습니다.INTEGER와DESC(높을수록 승리, 0 이상의 점수) 또는TIME_MS와ASC(낮을수록 승리, 양의 밀리초).unitLabel은 선택 사항인 표시 텍스트입니다.
한 번 게시한 키는 삭제할 수 없으며 scoreType과 sort도 바꿀 수 없습니다. 더 이상 쓰지 않으려면 "status": "RETIRED"로 종료하세요. 순위표에는 패키지가 필요합니다.
점수 제출하고 읽기
js
const result = await sdk.leaderboards.submitScore("high-score", 1200);
// { accepted, improved, previousBestScore, bestScore, rank, previousRank, bestScoreAt, leaderboard }
if (result.improved) showNewBest(result.bestScore, result.rank);
const { leaderboard } = await sdk.leaderboards.get("high-score", { top: 10, aroundMe: 3 });
// leaderboard: { definition, top, player, playerEntry, aroundPlayer }
const { leaderboards } = await sdk.leaderboards.list();- 점수는 안전한 정수입니다. 더 좋은 점수만 최고 기록을 교체합니다.
top은 1100개 항목을,20개를 받습니다.aroundMe는 플레이어 위아래로 각각 1list({ includeRetired: true })는 종료된 순위표도 반환합니다.
매 프레임이 아니라 한 판이 끝날 때, 그리고 play 단계에서만 제출하세요. 거부된 호출은 다른 네트워크 호출처럼 처리하고, 게임은 계속 플레이할 수 있게 하세요.
게스트와 오프라인
로그인을 확인하지 않고 제출해도 됩니다. 플레이어 세션이 전혀 없으면 제출은 완료되지만 저장되지 않습니다. 오프라인 플레이를 지원하는 PlayDrop 앱처럼 기기 데이터 지원을 알리는 호스트는 오프라인에서 낸 점수를 보관했다가 나중에 동기화합니다. 이런 호스트에서 오프라인으로 읽으면 순위 없이 플레이어 본인의 최고 기록만 표시됩니다. 그 밖의 환경에서는 제출에 네트워크 연결이 필요합니다.