Conquistas para jogos do PlayDrop
Declare conquistas padrão e incrementais com ícones no catalogue.json, desbloqueie-as e informe o progresso com sdk.achievements.
As conquistas marcam objetivos no seu jogo, com um ícone e uma descrição que os jogadores veem no PlayDrop. Elas funcionam para convidados e jogadores logados.
Declare as conquistas
{
"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" }
]
}keysegue o mesmo formato das chaves de placar.kindéSTANDARD(desbloqueada uma vez) ouINCREMENTAL(desbloqueada quando o progresso chega amaxProgress, um inteiro positivo).iconé um PNG dentro do pacote. Use uma imagem quadrada e nítida, que continue legível em tamanhos pequenos.hidden: truemantém o nome e a descrição em segredo até o desbloqueio.
Chaves publicadas não podem ser removidas, e kind, maxProgress e hidden não podem mudar. Aposente uma conquista com "status": "RETIRED".
Desbloqueie e informe o progresso
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");setProgressAtLeastrecebe o total até agora, nunca um incremento. O progresso só aumenta, é limitado amaxProgresse desbloqueia a conquista nesse ponto.- As duas chamadas retornam
{ accepted, changed, unlocked, progress, unlockedAt, achievement };changedé falso quando nada de novo aconteceu, então você pode mostrar seu próprio aviso uma única vez. list({ includeHiddenDefinitions: true, includeRetired: true })inclui as definições ocultas e aposentadas.
Desbloqueie só durante o jogo de verdade, nunca em prévias ou capturas. Sem nenhuma sessão de jogador, as chamadas são resolvidas sem que nada seja armazenado.
Boas conquistas
Misture conquistas iniciais, que ensinam o jogo, com objetivos de longo prazo. Dê nome à ação, não à recompensa: "Vença sem levar dano" diz o que fazer. Uma dúzia de conquistas bem pensadas vale mais que cem triviais.