18-05-2012, 01:09 AM
J'aimerais proposer pour mon jeu un système d'achievements (aka succès ou trophés) mais je me trouve devant un problème technique. En effet, il y a deux problèmes :
- Décrire un succès : mettre dans la base de donnée "tuer votre premier monstre et moquez-vous de lui" ne suffit pas pour exploiter un succès une fois le champ de la table récupéré. Niveau programmation ça se présenterait bêtement :
Une idée pourrait être de stocker les actions souhaitées pour valider un succès
- Ce qui nous amène au deuxième problème, comment savoir quand un succès doit être déclenché ?
Bien sûr on pourrait faire à l'aide de plein de if. Cependant ça encombrerait le code, et obligerait à le modifier à chaque nouveau succès.
L'idéal serait une sorte de surcouche "capturant" chaque action du joueur, et regarderait si elle suivrait le schéma (en JSON par exemple) pour débloquer un achievement.
Si quelqu'un s'est déjà confronté au problème ou a des idées pour le résoudre, je suis preneur
- Décrire un succès : mettre dans la base de donnée "tuer votre premier monstre et moquez-vous de lui" ne suffit pas pour exploiter un succès une fois le champ de la table récupéré. Niveau programmation ça se présenterait bêtement :
if (monstre.isDead() && perso.isLaughin()) {
achievements[id].unlock();
}
Une idée pourrait être de stocker les actions souhaitées pour valider un succès
{
"1" : "attack()",
"2" : "isDead()",
"3" : "laugh()"
}
- Ce qui nous amène au deuxième problème, comment savoir quand un succès doit être déclenché ?
Bien sûr on pourrait faire à l'aide de plein de if. Cependant ça encombrerait le code, et obligerait à le modifier à chaque nouveau succès.
L'idéal serait une sorte de surcouche "capturant" chaque action du joueur, et regarderait si elle suivrait le schéma (en JSON par exemple) pour débloquer un achievement.
Si quelqu'un s'est déjà confronté au problème ou a des idées pour le résoudre, je suis preneur