游戏活动如何判定是否跨天
大家好,我是Lampard
今天与大家探讨一下游戏活动如何判定跨天
在一款游戏里面难免会出现跨天的活动,比如说每日任务啊,比如说每天的累充啊等等
当过0点的时候我们就要刷新用户界面,那么我们该如何判定是否跨天呢?
(一)某个朋友说
有人说:那还不简单,当0点的时候,让服务端下发一个协议,然后利用观察者模式,在协议下发的同时触发事件,那我们不就知道咯。
没错那个人就是我...
当即我就被主程大大批评了,如果同时有很多个玩家在线,那么在0点的时候服务器压力不就很大咯?而且一个活动你要0点下发一个协议,难道多个跨天活动你就下发多个协议吗?
(二)我又可以了
好吧,这不行。那么我就脑洞大开:为了缓解0点的压力,那么我决定把协议下发的时间定在活动界面打开的时候,每次打开界面的时候我们就把当前的时间戳上行,让服务端判断是否已经跨天。
However,我又被批评了,每次打开界面你都要访问请求吗?这样效率多低,多做了多少无用的事情。
(三)最终解决方案
虽然这次的做法还不对,但是已经接近了,最后的做法就是客户端自行记录上次协议下发的时间戳,然后打开界面的时候判断当前时间戳减去上次的时间戳是否已经跨天(这样子可以把判断逻辑留在客户端),跨天才请求协议。
好吧,又长知识了,今天分享的内容就这么多,谢谢大家!!!