Clasificaciones para juegos de PlayDrop
Declara clasificaciones en catalogue.json, envía puntuaciones con sdk.leaderboards y muestra los mejores puestos y los vecinos del jugador. Tipos, límites y reglas.
Las clasificaciones dan a los jugadores un motivo para volver a jugar y una posición que compartir. PlayDrop guarda la mejor puntuación de cada jugador en cada clasificación y la muestra en el juego.
Declara una clasificación
Añádela a la app en catalogue.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: de 3 a 64 caracteres, empezando por una letra minúscula y seguida de letras minúsculas, dígitos,_,.o-.scoreTypeysortvan en dos combinaciones:INTEGERconDESC(gana la más alta, puntuaciones de 0 o más) oTIME_MSconASC(gana la más baja, milisegundos positivos).unitLabeles un texto opcional que se muestra junto a la puntuación.
Una vez publicada, una clave no se puede eliminar y su scoreType y su sort no pueden cambiar. Deja de usar una con "status": "RETIRED". Las clasificaciones necesitan un paquete.
Envía y lee puntuaciones
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();- Las puntuaciones son enteros seguros. Solo una puntuación mejor reemplaza al récord.
topacepta de 1 a 100 entradas yaroundMede 1 a 20 a cada lado del jugador.list({ includeRetired: true })también devuelve las clasificaciones retiradas.
Envía la puntuación al final de una partida, no en cada fotograma, y solo en la fase play. Gestiona las llamadas rechazadas como cualquier llamada de red; mantén el juego jugable.
Invitados y sin conexión
Puedes enviar puntuaciones sin comprobar el inicio de sesión. Sin ninguna sesión de jugador, un envío se resuelve sin guardarse. Los hosts que anuncian compatibilidad con datos en el dispositivo, como las apps de PlayDrop que funcionan sin conexión, conservan una puntuación conseguida sin conexión y la sincronizan más tarde; sus lecturas sin conexión muestran solo el récord del propio jugador, sin posición. En los demás casos, enviar una puntuación requiere conexión.
Qué no hacen las clasificaciones
El SDK no ofrece regiones, reinicios programados, temporadas ni premios semanales automáticos. Para una clasificación semanal, incluye la semana en tu propio diseño, por ejemplo con una clave nueva por temporada declarada en una nueva versión.
Relacionado: logros, partidas guardadas en la nube, compartir una puntuación.