今のところ、あなたはまだ始まったばかりなので、テキストファイルはおそらく大丈夫です。あなたの質問には、私が対処するいくつかの懸念事項があります。
データを保護することは、おそらく思っているほど重要ではありません。ゲームがマルチプレイヤーの場合、データはサーバー側に保存されます。ゲームがシングルプレーヤーの場合、プレーヤーがデータを変更するとどうなりますか?彼らが何かを壊した場合、それは本当に彼らのせいであり、彼らは再インストールすることができます。
パフォーマンスも、適切に計画できないことが多いものです。パフォーマンスの問題を実際に測定するまで、実際に最適化すべきではありません。私の推測では、あなたはおそらくないデータの量があるでしょうということであることを大きく、そのテキストファイルがうまくあることを行っているが。
そうは言っても、最善の策は、データの保存と読み込みのルーチンを可能な限り抽象化することです。たとえば、という基本クラスを作成してDataWriter
、さまざまなメソッドのさまざまな実装を提供できます。非常に基本的な例は次のようになります。
class DataWriter {
virtual void save(GameState state) = 0;
virtual ~DataWriter() { }
};
class TextFileDataWriter : public DataWriter {
virtual void save(GameState state) {
//write to text file
}
};
class DatabaseDataWriter : public DataWriter {
virtual void save(GameState state) {
//write to database
}
};
最終的にゲームのプロファイルを作成し、パフォーマンスのボトルネックがファイル書き込みルーチンにあることに気付いたら、呼び出しコードへの最小限の変更でそのクラスの別の実装を提供できます(たとえば、データベースに書き込む)。