7
|
Echo says Reinstate Monica · 技术社区 · 15 年前 |
1
11
不要乱动关系数据库,除非你被外部因素强迫使用它们。
看看巨蟒的
架子快,伸缩性好。它消除了Python和非Python表示之间的混乱转换。 编辑。 更重要的建议。不要陷入技术选择的泥潭。将位置、项目、字符、规则等获取到 工作 . 在蟒蛇中。尽可能简单和正确。 除了核心模型、正确性和证明事物的基本特性外,不要在任何东西上燃烧一个大脑卡路里。 工作 . 一旦你有了一个模型 作品 ,您可以通过一些复杂的单元测试进行练习,然后您可以做出技术选择。 一旦你有了一个模型,你就可以有意义地将它扩展到数百万个位置,看看需要什么类型的存储。模型不能改变——这是应用程序的本质。只有访问层和持久层可以更改以调整性能。 |
2
3
听起来你想要的是 spacial index . 对于非常大的二维游戏,我建议使用 quadtree . 当你有一个大的区域,并且活动往往发生在该区域的局部区域时,四叉树工作得很好,这是大多数RPG类型游戏的情况。它将使您的存储需求保持在较低的水平,并有望加速碰撞检测。 至于保存游戏,如果你担心经常发生的变化,像玩家和怪物的统计数据可以进入数据库。对于实际的级别布局,我建议使用特定于您的游戏的二进制文件格式。对于级别布局,通常需要执行的数据库类型查询不多,您可以使用自己的格式进行优化。我不知道如何开始在数据库中存储类似四叉树的格式(尽管我确信这是可能的)。 |
3
1
我使用非关系数据库来存储大量数据。如果您可以在64位硬件上工作, MongoDB 用它 Python driver 真的很好。我不知道Stackless是否可以这样做,但这是可能的。 |