首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >为一个非常大的游戏世界设计存储空间

为一个非常大的游戏世界设计存储空间
EN

Stack Overflow用户
提问于 2009-10-30 15:49:22
回答 3查看 821关注 0票数 7

我又要开始游戏编程了。10年前,我在qbasic中制作游戏,从那以后我就没有做过任何游戏编程,所以我很生疏。我一直在编程,不过,我现在是web开发人员/DBA/admin。我有几个问题,但我打算把每个帖子限制在一个。

我正在做的游戏将是一个巨大的,非常大的世界。它将有点像乌尔瓦,但是一个更大的世界,更像一个'RPG‘。

我一直想决定的是,什么是布局地图、保存地图和访问地图的最佳方式。我想出了用sqlite存储数据的想法。我甚至可以使用sqlite作为游戏的保存文件,非常简单。

有人知道我该怎么做,或者其他存储方法的想法吗?

以下是我的游戏要求:

  • 我需要完全随机进入游戏世界中的地点(全国人大,怪物,动物都会一直活跃)。
  • 我正在使用Stackless Python3.1,除非我做了大量的工作,否则选项是非常有限的。
  • 需要能够处理一个非常大的世界。
  • 并发支持将是一个好处,但我不认为我将需要它。
EN

回答 3

Stack Overflow用户

回答已采纳

发布于 2009-10-30 15:53:29

除非外部因素迫使您使用关系数据库,否则不要使用关系数据库。

看看Python的pickle架架

货架是快速和鳞片良好。它消除了Python和非Python表示之间的混乱转换。

编辑。

更重要的建议。不要陷入技术选择的泥潭。让地点、项目、字符、规则等发挥作用。在Python里。尽可能的简单和正确。

不要在任何东西上消耗单一的大脑热量,只需要核心模型、正确性和一个基本的功能集来证明它是有效的。

一旦您有了一个实际工作的模型,并且您可以使用一些复杂的单元测试进行练习,那么您就可以做出技术选择。

一旦你有了一个模型,你就可以有意义地把它扩展到数百万个地方,看看需要什么样的存储。模型是无法改变的--这是应用程序的本质。只有访问层和持久层才能更改以调整性能。

票数 11
EN

Stack Overflow用户

发布于 2009-10-30 16:22:35

听起来你想要的是一种空间指数。对于一个非常大的2d游戏,我建议使用四叉树。四叉树很好地工作,当你有一个大面积和活动往往发生在该地区的局部区域,这是大多数的RPG类型的游戏。它将保持您的存储需求低,并有望加快碰撞检测以及。

至于保存游戏,玩家和怪物的统计数据可以进入数据库,如果你担心这些变化频繁。对于实际的级别布局,我建议使用特定于您的游戏的二进制文件格式。通常需要在级别布局上执行的数据库类型查询不多,您可以使用自己的格式进行很好的优化。我不知道如何开始在数据库中存储类似四叉树的格式(尽管我确信这是可能的)。

票数 3
EN

Stack Overflow用户

发布于 2009-11-02 12:02:29

我使用非关系数据库存储大量数据。如果您可以在64位硬件上工作,MongoDB和它的Python驱动程序非常好。我不知道这是否适用于Stackless,但这是可能的。

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

https://stackoverflow.com/questions/1650627

复制
相关文章

相似问题

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