首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >基于浏览器的MMO最佳实践

基于浏览器的MMO最佳实践
EN

Stack Overflow用户
提问于 2010-07-20 21:50:24
回答 2查看 782关注 0票数 3

我正在用Django后端开发一个基于google地图的在线浏览器游戏,我即将决定如何实现(后端)定时事件--即NPC拥有数量的提高(例如,城市人口应该根据一些变量增长-城市规模、应用速度)。

我发现的可能解决办法是:

  • 将排队的操作放入表中,并与每个请求一起处理它们。implement

  • 问题:巨大的开销,更难实现

使用cron的

  • 或类似的
    • 问题:这是一个外部工具,我想要像这样的小外部工具

还有其他解决办法吗?

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2010-07-20 22:47:33

在游戏中运行一个计划好的任务来执行游戏中的更新,在任何时间间隔内,都会让您频繁地使用数据库。如果您的游戏逻辑依赖于所有这些数据库值同时更新(这很有可能,如果您运行的是基于间隔的更新),那么只要该cronjob正在运行,您就必须有计划的停机时间。当时间变得更长,随着玩家基础的增长,这变得非常烦人。

如果您想减少数据库开销,您应该用值的上一次更新时间和增长率来存储值,并且只有在增长的数量或速度发生变化时才更新这些行。

例如,一堆黄金,每分钟增长5金,只有当玩家从黄金中提取黄金时才会更新。当您需要知道当前金额时,它是根据上一次更新时间、当前时间、上次更新时存储的数量以及增长率来计算的。

随时间变化而不需要交互的数据不属于数据库。它属于你游戏的逻辑结尾。当玩家执行你需要记住的活动时,或者计算变得过于繁琐,无法再次生成,这就是你存储它的时候。

票数 5
EN

Stack Overflow用户

发布于 2010-07-20 22:10:35

如果我理解你的问题正确,你应该看看芹菜,这是一个分布式任务队列。http://ask.github.com/celery/

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/3294682

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档