SFMLを使用してC ++で記述された2Dゲームがあります。ファイルまたはデータベースに行/エントリ/行を追加することで、アイテムやエンティティなどのコンテンツを簡単に追加できるように、ゲームを拡張可能にしたいと考えています。
プログラムにコンパイルする必要はないが、実行時に読み書きできるものを探しています。データベースを使用するのが適切な場合
SFMLを使用してC ++で記述された2Dゲームがあります。ファイルまたはデータベースに行/エントリ/行を追加することで、アイテムやエンティティなどのコンテンツを簡単に追加できるように、ゲームを拡張可能にしたいと考えています。
プログラムにコンパイルする必要はないが、実行時に読み書きできるものを探しています。データベースを使用するのが適切な場合
回答:
データベースが必要な場合にのみデータベースを使用してください。あれは:
ゲームのデータがこれらの条件のいずれかを満たす場合、データベースを使用することでメリットが得られる場合があります。これらはあまり一般的ではなく、おそらくあなたはそれらのどれも満たさないことに注意してください。もしそうなら、私はSQLiteか、実行中のサーバーを必要とせず、単なるライブラリーであるという同様の考えを持つ何かに行きます。
それ以外の場合は、起動時にファイルを使用してメモリにデータをロードします。ゲームを変更可能にする場合は、ゲームのディレクトリとmodsのディレクトリの両方からこのデータをロードし、競合する情報をマージする方法を定義します。
また、あなたがあれば、そのノート行うデータベースを使用し、それはまだ初期データを読み込む場合にのみゲームのロードデータベースを構築するために、ファイルを使用して、あなたと改造開発者の両方に利益をもたらすかもしれません。このデータベースの潜在的なサイズが非常に大きい(つまり、数十MiB以上)場合を除き、インメモリデータベースを使用することができ:memory:
ます。これは、データベースパスとして指定することでSQLiteで可能です。
SQLite
あなたのニーズが「複雑」または「巨大」ではない場合でも、私は非常に二番目に検討したいと思います。実際に、小さくてそのように埋め込まれたものを使用すると、データベースをすぐに使用できるという大きなメリットが得られる理由がたくさんあります。
私はゲーム開発にMongoDBが本当に好きです。パフォーマンスがとても良く、柔軟性があり、使いやすく、jsonベースです。
NoSQL Archであるため、コレクションに必要なフィールドを追加するだけでよいため、ゲームのような「動的」環境に非常に適しています。
それを与える覗いて。
何らかのMMOターンベースの戦略ゲームを開発している場合、おそらくCouchDBについて読む必要があります。これは、本当に優れたバージョン管理システムを備えたNoSQLデータベースです。