Logros para juegos de PlayDrop
Declara logros estándar e incrementales con iconos en catalogue.json, desbloquéalos e informa del progreso con sdk.achievements.
Los logros marcan objetivos en tu juego, con un icono y una descripción que los jugadores ven en PlayDrop. Funcionan para invitados y para jugadores con la sesión iniciada.
Declara los logros
{
"achievements": [
{ "key": "first-win", "displayName": "First flag", "description": "Reach the flag once",
"kind": "STANDARD", "icon": "achievements/first-win.png" },
{ "key": "collector", "displayName": "Collector", "description": "Collect 100 stars",
"kind": "INCREMENTAL", "maxProgress": 100, "icon": "achievements/collector.png" },
{ "key": "secret-room", "displayName": "Secret room", "description": "Find the hidden room",
"kind": "STANDARD", "hidden": true, "icon": "achievements/secret-room.png" }
]
}keysigue el mismo formato que las claves de las clasificaciones.kindesSTANDARD(se desbloquea una vez) oINCREMENTAL(se desbloquea cuando el progreso llega amaxProgress, un entero positivo).icones un PNG incluido en el paquete. Usa una imagen cuadrada y clara que se entienda en tamaños pequeños.hidden: truemantiene en secreto el nombre y la descripción hasta que se desbloquea.
Las claves publicadas no se pueden eliminar, y kind, maxProgress y hidden no pueden cambiar. Retira un logro con "status": "RETIRED".
Desbloquea e informa del progreso
await sdk.achievements.unlock("first-win");
await sdk.achievements.setProgressAtLeast("collector", starsCollected);
const { achievements } = await sdk.achievements.list();
const { achievement } = await sdk.achievements.get("collector");setProgressAtLeastrecibe el total acumulado hasta el momento, nunca un incremento. El progreso solo sube, tiene como límitemaxProgressy desbloquea el logro al alcanzarlo.- Ambas llamadas devuelven
{ accepted, changed, unlocked, progress, unlockedAt, achievement };changedes false cuando no ha pasado nada nuevo, así que puedes mostrar tu propio aviso una sola vez. list({ includeHiddenDefinitions: true, includeRetired: true })incluye las definiciones ocultas y retiradas.
Desbloquea logros solo durante partidas reales, nunca en vistas previas ni capturas. Sin ninguna sesión de jugador, las llamadas se resuelven sin guardarse.
Buenos logros
Combina logros iniciales que enseñen a jugar con objetivos a largo plazo. Nombra la acción, no la recompensa: «Gana sin recibir daño» dice qué hay que hacer. Una docena de logros bien pensados vale más que cien triviales.