gpt4 book ai didi

python - 基于浏览器的 MMO 最佳实践

转载 作者:太空宇宙 更新时间:2023-11-03 13:24:16 27 4
gpt4 key购买 nike

我正在开发一个在线浏览器游戏,基于谷歌地图,使用 Django 后端,我已经接近需要决定如何实现(后端)定时事件的地步 - 即 NPC 拥有数量提高(例如,城市人口的增长应基于一些变量——城市规模、应用程序速度)。

我找到的可能的解决方案是:

  • 将排队的操作放入表中,并与每个请求一起处理它们。
    • 问题:开销巨大,难以实现
  • 使用 cron 或类似的东西
    • 问题:这是一个外部工具,我想要尽可能少的外部工具。

还有其他解决方案吗?

最佳答案

以任何时间间隔运行计划任务以在游戏中执行更新,将使您的数据库使用量激增。如果您的游戏逻辑依赖于所有这些数据库值同时更新(这很可能,如果您运行的是基于间隔的更新),那么您必须计划停机时间定时任务正在运行。当那个时间变长时,随着你的玩家群的增长,这会变得非常烦人。

如果您试图减少数据库开销,您应该存储值及其上次更新时间和增长率,并且仅在数量或增长率发生变化时更新这些行。

例如,一个金库以每分钟 5 个金币的速度增长,只有当玩家从中取出金币时才会更新。当需要知道当前数量时,根据上次更新时间、当前时间、上次更新时存储的数量、增长率计算。

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

关于python - 基于浏览器的 MMO 最佳实践,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3294682/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com