Eu postei isso por engano no stackoverflow e agora estou postando aqui com base em uma sugestão nesse site ...
Essa é uma questão conceitual de nível muito alto. Digamos que em um aplicativo de software eu tenho 4 ações diferentes, por exemplo: Carregar, Compartilhar, Comentar e Curtir
E quero dar distintivos de conquista a usuários como:
- Novato - Envie seus 5 primeiros arquivos
- Upload Junkie - Upload 20 arquivos em 1 dia
- Rastreador noturno - Carregar um arquivo depois da meia-noite
- Share-a-holic - Compartilhe 10 arquivos diferentes
- Likes-everything - Como 20 arquivos diferentes
Você entendeu a ideia. Qual é a melhor maneira de verificar e verificar se um usuário alcançou uma conquista específica sem precisar compilar a lógica da conquista no meu código? E .. - Manter a capacidade de adicionar novas conquistas após a compilação (xml ou db) - As conquistas devem rastrear ações específicas, número de vezes e critérios adicionais (como a hora do dia) - A detecção deve ser quase em tempo real, para que o usuário seja notificado quase instantaneamente quando uma conquista é concluída
Minha maior dúvida é: como eu detecto essas conquistas sendo alcançadas? Eu:
1) Verifique depois de cada ação para ver se ... (Em tempo real) 2) Outro programa verifica o banco de dados o tempo todo em relação a um conjunto de regras? (Mais fácil)
Existe outro paradigma que estou perdendo? Eu sinto que definitivamente existe, porque em muitos jogos (como o jetpack para iOS, por exemplo), sou notificado da conquista que desbloquei no instante em que desbloquei, o que achei bastante impressionante.
Obrigado