我正在用Django后端开发一个基于google地图的在线浏览器游戏,我即将决定如何实现(后端)定时事件--即NPC拥有数量的提高(例如,城市人口应该根据一些变量增长-城市规模、应用速度)。
我发现的可能解决办法是:
的
使用cron的
还有其他解决办法吗?
发布于 2010-07-20 22:47:33
在游戏中运行一个计划好的任务来执行游戏中的更新,在任何时间间隔内,都会让您频繁地使用数据库。如果您的游戏逻辑依赖于所有这些数据库值同时更新(这很有可能,如果您运行的是基于间隔的更新),那么只要该cronjob正在运行,您就必须有计划的停机时间。当时间变得更长,随着玩家基础的增长,这变得非常烦人。
如果您想减少数据库开销,您应该用值的上一次更新时间和增长率来存储值,并且只有在增长的数量或速度发生变化时才更新这些行。
例如,一堆黄金,每分钟增长5金,只有当玩家从黄金中提取黄金时才会更新。当您需要知道当前金额时,它是根据上一次更新时间、当前时间、上次更新时存储的数量以及增长率来计算的。
随时间变化而不需要交互的数据不属于数据库。它属于你游戏的逻辑结尾。当玩家执行你需要记住的活动时,或者计算变得过于繁琐,无法再次生成,这就是你存储它的时候。
发布于 2010-07-20 22:10:35
如果我理解你的问题正确,你应该看看芹菜,这是一个分布式任务队列。http://ask.github.com/celery/
https://stackoverflow.com/questions/3294682
复制相似问题