如何实现游戏中各种排行榜的“实时”更新问题

在做我真正意义上第一个游戏产品时,游戏中有个积分排行榜的功能,当然任何游戏里面都会有排行榜,而且这个排行榜肯定不可能是实时的。BOSS是美术出身,之前也没做过游戏产品,所以就强烈希望不管是有多少玩家,全部都实时更新排行榜,当时给解释了半天,也说了通用做法,但是还是不能完全理解。

在QQ群里面问下网友呢,说Redis的Sorted Set可以完美解决这个问题,但是我认为这个只是把这个排序计算压力转移了而已,没有实际意义,后来想了下,实现一个“伪实时”更新排名不就好了么?于是果断实现之。

关键思路:

  • 维护一个排行榜,定时更新
  • 在当前游戏玩家打破了自己的记录时,拿到自己当前在排行榜中的位置,往前进行二分查找法,找到自己的一个“新的排名”即可

这样一来,给玩家的假象不就是“实时”的了吗?其实大家平常在玩游戏的时候,要是注意仔细观察和思考,这样的“伪实时”方案比比皆是。

标签: 游戏

添加新评论