2009-09-18 2 views

ответ

2

Это действительно зависит от того, что вы хотите. Оба они вполне приемлемы. Если ваше игровое состояние действительно сложное, то использование файла может быть проще (возьмите свое состояние игры и закодируйте его с помощью NSKeyedArchiver или что-то еще). Однако, если у вас простая игра (игрок находится на этом уровне в этой позиции), то SQLite будет отличным вариантом.

Если вы хотите получить лучшее из обоих миров, вы также можете рассмотреть использование CoreData.

3

Если вам нужно часто искать или сортировать свои игровые данные, или вы обычно загружаете только одно подмножество данных, тогда вам следует рассмотреть SQLite.

Если вам нужно просто сохранить граф объекта на диск и перезагрузить все это при запуске, используйте NSCoder для архивирования игровых объектов в файл (по умолчанию он хранится как двоичный диск).

Если вам необходимо изменить данные игры на сервере или другой системе, вы можете посмотреть формат сериализации, такой как XML или JSON.

1

Для RPG вам, вероятно, придется искать и извлекать элементы из большого набора данных как часть внутреннего функционирования самой игры, поэтому вы должны использовать SQLite (если таргетинг OS 2.x) или Core Data (для таргетинга на OS 3.x). Поскольку вы все равно будете использовать базу данных для загрузки игровых активов, имеет смысл использовать это для сохранения состояния. Опять же, для RPG вы, вероятно, будете загружать и сохранять большой объем данных для состояния игры, для которых база данных будет быстрее, чем простой файл данных.

Основные данные позволяют управлять сложным графиком объектов, быстрее, чем даже настроенный SQLite, могут использовать гораздо меньше памяти и могут быть намного проще в кодировке, но доступны только на iPhone OS 3.x. Если вы все еще хотите настроить таргетинг на 2.x, то SQLite - это путь.

По моему опыту, как Core Data, так и SQLite были намного быстрее, чем простые файлы для всех, кроме самых простых случаев, требующих сохранения данных.

Смежные вопросы