Разработка игр для iPhone, сохранение состояния с помощью файлов или sqlite? - PullRequest
5 голосов
/ 18 сентября 2009

Для разработки игр для iphone.Как большинство людей сохраняют государство?Используете sqlite?или какой-то файл.

Игра представляет собой игру типа RPG.

Ответы [ 3 ]

3 голосов
/ 18 сентября 2009

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

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

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

2 голосов
/ 18 сентября 2009

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

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

1 голос
/ 19 сентября 2009

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

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

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

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...