2010-03-28 21 views
5

Quiero que los usuarios reciban 'puntos' para completar varias tareas en mi aplicación, desde tareas como etiquetar objetos hasta hacer amigos. Todavía no he encontrado una aplicación Django que simplifique esto.Social Game Mechanics en Django

Por el momento estoy pensando que la mejor manera de acumular puntos es que cada acción del usuario crea el equivalente de un "elemento de secuencia" y los puntos se calculan contando el valor de cada acción publicada en su secuencia.

Obviamente, la mecánica de juegos sociales es un área enorme con mucha investigación en curso en este momento. Pero desde una perspectiva de desarrollo, ¿cuál es la forma más fácil de comenzar? ¿Estoy en la senda equivocada o hay formas mejores/más simples?

Editar: para cualquier persona que quiera una aplicación muy simple de esto:

Para cualquier persona que estaría interesado en un muy simple aplicación de esta idea intentar crear una aplicación de "registro" y poner esto en su models.py :

log_models = [Tag, Post, Vote] 

class Point(models.Model): 
    # model fields 

def increase_score(sender, instance, signal, *args, **kwargs): 
    # score logic 

for model in log_models: 
    post_save.connect(increase_score, sender=model) 
    post_delete.connect(decrease_score, sender=model) 

se refieren a este documento si encuentra que post_save emite dos veces: http://code.djangoproject.com/wiki/Signals#Helppost_saveseemstobeemittedtwiceforeachsave

Respuesta

2

"elemento Stream"? Nunca escuché eso antes.

"Log" tiene sentido. Parece que va a registrar eventos en una tabla. Sumar o contar los eventos registrados. Esa es la más simple y más extensible.

Puede resumir periódicamente (cada hora para grandes multitudes sociales, diariamente para pequeñas multitudes).