ターン制ストラテジー「ゲームエンジン」をPythonで構築しようと考えています。データベースを使用してゲーム オブジェクトに関する情報を保持し、ORM を使用してゲーム ロジックをサポートしたいと考えています。ORM の経験はほとんどありませんが、SQL の経験はあります。
データベースはおそらく次のようになります。
- データは多いが構造は単純 - 関係と外部キーが少ないだけで、複雑なことは何もない
- データベースへの更新はターンごとに「バッチ」で行われますが、各ターンのデータベース状態の履歴を保持する必要があるため、過去のゲーム ターンの状態を確認できます。
私はしたいと思います:
- できる限り書き込みを少なくする - できれば暗黙のコンストラクターと便利な暗黙の出力を使用できるようにする
- できればクラスを更新するだけで、すべてがバラバラになることなく、列を追加または削除したり、関係を変更したりして、ターン間でデータベース構造をシームレスに更新します
どの ORM が私のニーズを満たすでしょうか? それは理にかなっていますか?
説明:
歴史- ターン #5 のプレイヤーは、自分が正しくないと思う何かを見つけました。おそらく数ターン前の出来事だろう。ターン 2 とターン 3 でゲームの状態を確認して再確認できるようにしたいと考えています。ターンごとにデータベースのバックアップを作成できると思いますが、もっとエレガントなソリューションがあるかどうかを考えていました。
データベース構造の更新- 2 つの属性を持つクラス Unit があるattack
としdefense
ます。Unit 型のオブジェクトをたくさん作成し、データベースに保存します。ターン #25 あたりで、アトリビュート も必要であることに気付きましたmorale
。最小限の作業で追加し、データベースにテーブルを更新させたいと思います。どうすればいいですか?