【问题标题】:Social Game Mechanics in DjangoDjango 中的社交游戏机制
【发布时间】:2010-03-28 22:14:27
【问题描述】:

我希望用户在完成我的应用程序中的各种任务时获得“积分”——从标记对象到结交朋友等任务。我还没有找到可以简化此操作的 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

【问题讨论】:

    标签: django django-models social-networking


    【解决方案1】:

    “流项目”?以前从未听说过。

    “日志”是有道理的。听起来您要在表中记录事件。对记录的事件求和或计数。那是最简单和最可扩展的。

    您可以定期进行总结(对于大型社交人群,每小时总结一次,对于少数人群,每天总结一次)。

    【讨论】:

      猜你喜欢
      • 2015-07-15
      • 1970-01-01
      • 2012-04-08
      • 2010-10-14
      • 1970-01-01
      • 2023-03-11
      • 2016-11-14
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多