1. 程式人生 > >運營活動需求實現

運營活動需求實現

這樣的 獎勵 事情 可能 平時 即使 活動 div 清除

平時遊戲運營活動需求,看起來是蠻復雜的。事實上本質上任務系統或者成就系統類似。

一般需求像這樣:

1. 活動有開始時間和結束時間要求。

2. 活動給出的獎勵也有開始時間和結束時間要求。

3. 完畢活動須要做完幾件事情(我們稱作事件或者條件事件)。

4. 相比較任務和成就系統,這樣的活動條目非常少。


分享一下我們的做法:

1. 獨立實現一個活動server。存儲的DB也是獨立。這種優點是,活動server和主邏輯server的全然分離的,DB數據能夠隨便清除,很easy維護。

2. 主邏輯server,不斷將事件通過網絡協議的方式通知活動server;

3. 主邏輯server,通知事件後。活動server將可能返回已完畢的活動條目。


主邏輯server,沒有什麽好說的。考慮活動的特點。我們僅僅要無腦地將事件發給活動server。

活動server實現幾個地方略微講究一下。

1. 每次收到玩家登錄消息時,就將全部未接受的活動項。自己主動接受下來。這裏註意的一點事,即使這個活動開始時間未到。我們也接受下來。

2. 收到事件通知時,要註意一下活動是否已經開始,和活動是否已經結束。1&2這樣做的目的是,某個活動的開始的時候。玩家不用又一次登錄。這個是比較重要體驗問題。

3. 完畢活動後,給主邏輯server發獎勵的話,需要推斷一下,當前時間是否是獎勵發放時間範圍內。


舉一個實際的樣例:

2014.10.1~2014.10.7充值的玩家,在2014.10.5~20.10.7期間,能獲得雙倍掉落的獎勵。

接受時間:2014.10.1~2014.10.7

事件:充值

獎勵時間:2014.10.5~20.10.7

獎勵內容:雙倍掉落

1. 某個玩家登錄時,活動server生成這個 活動任務 對象。

2. 這個玩家充值的時候,活動server收到這個充值事件,僅僅要在2014.10.1~2014.10.7內。就推斷該活動是否完畢。

3. 玩家登錄後。主邏輯server發一個空的通知事件,然後就收到雙倍獎勵內容,後面該幹什麽就幹什麽。


這類需求頭腦保持清醒。看似眼花繚亂的需求,實現起來很簡潔。

運營活動需求實現