Chcę, aby użytkownicy otrzymywali "punkty" za wykonywanie różnych zadań w mojej aplikacji - od takich zadań, jak oznaczanie obiektów do zawarcia znajomości. Nie znalazłem jeszcze aplikacji Django, która to upraszcza.Mechaniki gier społecznościowych w Django
W tej chwili myślę, że najlepszym sposobem na gromadzenie punktów jest to, że każde działanie użytkownika tworzy ekwiwalent "elementu strumieniowego", a punkty są obliczane poprzez zliczanie wartości każdej akcji opublikowanej w ich strumieniu.
Oczywiście mechanika gier społecznych to ogromny obszar, w którym obecnie prowadzone są liczne badania. Ale z perspektywy programowania, jaki jest najłatwiejszy sposób na rozpoczęcie? Czy jestem na niewłaściwym torze, czy też istnieją lepsze/prostsze sposoby?
Edit: dla każdego, kto chce bardzo prostą realizację tego:
Dla każdego, kto byłby zainteresowany w bardzo prosty realizacji tego pomysłu spróbuj utworzyć „Logowanie” aplikacji i umieszczenie tego w 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)
Patrz tego dokumentu, jeśli okaże się, że post_save emituje dwukrotnie: http://code.djangoproject.com/wiki/Signals#Helppost_saveseemstobeemittedtwiceforeachsave