На данный момент, так как вы только начинаете, текстовые файлы, вероятно, в порядке. В вашем вопросе есть пара вопросов, на которые я отвечу.
Защита данных не так важна, как вы, вероятно, думаете. Если ваша игра многопользовательская, вы все равно сохраните данные на стороне сервера. Если ваша игра однопользовательская, что если игроки изменят данные? Если они что-то сломают, это действительно их вина, и они могут переустановить.
Производительность - это еще кое-что, что мы часто не планируем должным образом. Вы не должны действительно оптимизировать, пока не измерите проблему производительности. Я думаю, что вы , вероятно, количество данных, которое не что большие и что текстовые файлы будут просто отлично.
При этом лучше всего абстрагироваться от процедур сохранения и загрузки данных как можно лучше. Например, вы можете иметь базовый класс, скажем 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
}
};
Когда вы в конечном итоге профилируете свою игру и поймете, что узкое место в производительности находится в подпрограмме записи файла, вы можете предоставить другую реализацию этого класса (например, вместо записи в базу данных) с минимальными изменениями в вызывающем коде.