关于游戏开发数据更新的一些记录

本文分享了游戏开发中避免不必要的数据库操作的方法,通过lazyupdate和记录玩家活动时间来减少每日活动和任务数据的重置次数,提高效率。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

      博主入职做游戏到现在已经是7个月的时间,框架是skynet,这段时间内,我大多写的都是游戏的活动,任务。其中这些东西都是有有效期限制的。

      比如,活动是每日重新统计,每日任务是每天重新统计,每周任务是每周一的 00:00重新统计。那么就需要一个特定时间来reset用户的数据。

 

      我刚开始的做法是,每天的 00:00,reset玩家的每日活动数据,每日任务数据。有一次我向我的经理请教问题的时候,他看了我的代码,对我的代码的评价大概是:你这么写也没什么错误,也没什么问题,但是可能会多出很多没必要的运算,比如一个玩家,他今天登陆了,之后三四天都没有登陆,但是你在这三四天也会去reset他的数据,如果有一个玩家,登陆了一次之后,再也不登陆了,你也会去reset他的数据。这样会多处很多没必要的db操作,玩家数量一上来,处理量就大了。我一听,觉得太tm的有道理了,经理果然不一样 = =!,牛逼,之后他对我进行了一下指点,做以下记录:

      1.lazy update(好像是这么叫的),需要reset数据时,再去reset,这样可以减少很多db操作。

      2.每日任务,每日活动则记录玩家的参加活动时间(任务时间),当要更新活动或者任务时,再去判断当前时间与活动时间(任务时间)是否为同一天,如果是同一天,则不用reset,如果不是同一天,则reset玩家的活动与任务数据,并更新玩家的上次参加活动时间(任务时间)。

      3.同理别的也一样,当玩家触发事件的时间如果 大于或者等于 需要更新数据的时间,则reset玩家db中的数据。

    

   

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值