2010-03-28 2 views
5

사용자는 응용 프로그램에서 다양한 작업을 완료하기 위해 '태그 지정'과 같은 작업부터 친구 만들기에 이르기까지 '포인트'를 받기를 원합니다. 나는 이것을 간단하게하는 Django 응용 프로그램을 찾지 못했습니다.Django의 소셜 게임 메카닉

포인트를 누적하는 가장 좋은 방법은 각 사용자 조치가 "스트림 항목"과 동일한 항목을 작성하고 해당 지점에 게시 된 각 조치 값을 계산하여 포인트가 계산된다는 것입니다.

분명히 소셜 게임 기술은 현재 많은 연구가 진행되고있는 거대한 영역입니다. 그러나 개발 관점에서 시작하는 가장 쉬운 방법은 무엇입니까? 잘못된 경로에 있거나 더 나은/간단한 방법이 있습니까?

편집 :이 매우 간단한 구현을 원하는 사람을 위해 :이 아이디어의 매우 간단한 구현에 관심이있을 수는 "로그"응용 프로그램을 작성 및 models.py이 퍼팅 시도 할 것이다 사람들을위한

: http://code.djangoproject.com/wiki/Signals#Helppost_saveseemstobeemittedtwiceforeachsave

답변

2

"스트림 항목을"당신이 post_save 두 번 방출되는 찾을 경우

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) 

은이 문서를 참조하십시오? 전에는 들어 본 적이 없어요.

"로그"가 의미가 있습니다. 테이블에 이벤트를 기록하는 것처럼 들립니다. 기록 된 이벤트를 합산하거나 카운트합니다. 그것은 가장 단순하고 확장 성이 뛰어납니다.

주기적으로 요약 할 수 있습니다 (소규모 인파에게는 큰 사회적 인파에게는 매시간).