运营活动需求实现

平时游戏运营活动需求,看起来是蛮复杂的。事实上本质上任务系统或者成就系统类似。

一般需求像这样:

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发一个空的通知事件,然后就收到双倍奖励内容,后面该干什么就干什么。


这类需求头脑保持清醒。看似眼花缭乱的需求,实现起来很简洁。

原文地址:https://www.cnblogs.com/mfmdaoyou/p/7267532.html