Lo publiqué por error en stackoverflow y ahora publico aquí en base a una sugerencia en ese sitio ...
Esta es una pregunta conceptual de muy alto nivel. Digamos que en una aplicación de software tengo 4 acciones diferentes, por ejemplo: cargar, compartir, comentar y dar me gusta
Y quiero dar insignias de logros a usuarios como:
- Novato - Sube tus primeros 5 archivos
- Upload Junkie - Sube 20 archivos en 1 día
- Night Crawler: sube un archivo después de la medianoche
- Share-a-holic - Comparte 10 archivos diferentes
- Me gusta-todo: como 20 archivos diferentes
entiendes la idea. ¿Cuál es la mejor manera de verificar y ver si un usuario ha logrado un logro particular sin tener que compilar la lógica del logro en mi código? Y ... - Conserve la capacidad de agregar nuevos logros después de la compilación (xml o db) - Los logros deben rastrear acciones específicas, número de veces y criterios adicionales (como la hora del día) - La detección debe estar cerca del tiempo real para que el usuario notifique casi instantáneamente cuando se completa un logro
Mi mayor pregunta es, ¿cómo puedo detectar estos logros? ¿Yo:
1) Verifique después de cada acción para ver si ... (La mayoría de las veces en tiempo real) 2) ¿Tiene otro programa que verifique la base de datos en todo momento con un conjunto de reglas? (Más fácil)
¿Hay otro paradigma que me falta? Siento que definitivamente lo es porque en muchos juegos (como el jetpack para iOS, por ejemplo), me notifican el logro que he desbloqueado en el instante en que lo desbloqueo, lo que me pareció bastante impresionante.
Gracias