Механика социальных игр в Джанго - PullRequest
5 голосов
/ 29 марта 2010

Я хочу, чтобы пользователи получали «баллы» за выполнение различных задач в моем приложении - от таких задач, как пометка объектов до создания друзей. Я еще не нашел приложение Django, которое упрощает это.

В настоящий момент я думаю, что лучший способ накапливать баллы - это то, что каждое пользовательское действие создает эквивалент «элемента потока», а баллы рассчитываются путем подсчета значения каждого действия, опубликованного в их потоке.

Очевидно, что механика социальных игр - это огромная область, в которой в настоящее время проводится множество исследований. Но с точки зрения развития, какой самый простой способ начать? Я не на том пути или есть лучшие / более простые способы?

Редактировать: для тех, кто хочет очень простую реализацию этого:

Для всех, кто интересуется очень простой реализацией этой идеи, попробуйте создать приложение для «ведения журнала» и поместить его в ваши 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)

Обратитесь к этому документу, если вы обнаружите, что post_save излучает дважды: http://code.djangoproject.com/wiki/Signals#Helppost_saveseemstobeemittedtwiceforeachsave

1 Ответ

2 голосов
/ 29 марта 2010

«Потоковая вещь»? Никогда такого не слышал.

«Журнал» имеет смысл. Похоже, вы собираетесь регистрировать события в таблице. Суммируйте или посчитайте зарегистрированные события. Это самое простое и расширяемое.

Вы можете периодически подводить итоги (ежечасно для больших социальных групп, ежедневно для маленьких).

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...