基于回合制策略游戏的Python ORM

时间:2013-07-17 08:28:09

标签: python database orm game-engine

我正在考虑在Python中构建基于回合制的策略“游戏引擎”。我想使用数据库来保存有关游戏对象和ORM的信息以支持游戏逻辑。我对ORM几乎没有经验,但我对SQL很有经验。

数据库可能是:

  • 有很多数据但结构简单 - 只有几个关系和外键,没什么复杂的
  • 数据库的更新将在每个回合中“批量”,但我需要保留每个回合数据库状态的历史记录 - 所以我可以查看过去的任何游戏回合状态

我想:

  • 尽可能少地写 - 最好能够使用隐式构造函数和有用的隐式打印
  • 通过添加或删除列或更改关系而无需一切崩溃,无需更新轮次之间的数据库结构,最好只更新类

ORM会满足我的需求?它甚至有意义吗?

澄清:

历史 - 转牌#5球员看到他认为不对的东西。它可能发生在几个回合之前。我希望能够在转牌#2和#3看到比赛状态进行仔细检查。我想我可以每回合创建一个数据库备份,但我在想是否有更优雅的解决方案。

更新数据库结构 - 假设我的类包含两个属性attackdefense。我创建了许多Unit类型的对象并将其存储在数据库中。在第25轮左右,我意识到我还需要属性morale。我想用最少的工作添加它,让数据库为我更新表。我该怎么做?

1 个答案:

答案 0 :(得分:0)

SQLAlchemy符合您的大部分要求,但

除外
  

“,但我需要保留每个转弯数据库状态的历史记录 - 所以我   可以看看过去的任何游戏转弯状态“

我不确定你打算在这里打算做什么。