2012-03-23 3 views
0

im создает игру с несколькими уровнями, а уровни содержат несколько текстур и фигур.Лучший способ хранения игровых данных на iPhone?

Каким будет лучший способ сохранить эти данные на iphone/ipad?

Я думал об использовании SQLite или coredata для его хранения. Но мне также нужно реализовать функцию, которая будет обновлять данные игры с удаленного сервера (при покупке игры). Является ли SQLite лучшим способом архивирования этого? Как обновить содержимое SQLite при обновлении содержимого (загрузить .zip, извлечь его и импортировать в каталог db /)? Если у кого есть какие-то указатели, я бы очень признателен!

ответ

2

Самый простой способ - сохранить их в plist (который представляет собой файл xml). SQLite потребует, чтобы вы сохранили его вне изолированной программной среды приложения в каталоге документов (потому что включение sqlite внутри исходного приложения только для чтения).

Кроме этого, вы можете использовать coredata.

+0

+1 для упоминания песочницы sql. Проблема с plists заключается в том, что если каждое обновление имеет свой собственный plist, было бы грязно загружать каждый plist в игру. А также поиск отношений в plist будет медленным и больным. – blejzz

+0

(Btw это песочница приложений, а не SQL Sandbox - пока :)) Почему бы не сериализовать ваши объекты и десериализовать их на вашем сервере. Тройной частью было бы не сериализовать их, используя стандартные подпрограммы ios. Затем вы можете хранить данные также на стороне сервера, в базе данных и когда пользователь запрашивает данные (для обновления или при установке своего приложения или только для запроса) они будут воссозданы. Кажется, изобретать колесо, но когда-то это необходимость. – Panagiotis

+0

Ну, мне бы очень понравилось, что клиент хранит элементы, которые поставляются с обновлением. То, что я действительно хотел бы архивировать, похоже на то, как сердитые птицы справляются с этим (вы можете получать новые уровни через обновление). – blejzz

1

Хорошо подумать о том, что SQLite и Core Data приносят в таблицу. Оба очень хороши для запросов, но вам в основном нужно будет искать объекты для данного ID? В этом случае вы также можете рассмотреть простое хранилище файлов. Мы использовали индекс plist плюс обычные файлы для хранения некоторых игровых данных, это простое решение с низкими техническими накладными расходами.

+0

Мне нужно будет извлечь все уровни и все элементы уровней и построить объекты (спрайты и физическую форму) из них. Вот почему я, хотя и использую SQLite. И обновление контента с удаленного сервера было бы менее болезненным (если бы я сохранил все данные в файлах, которые я бы хотел иметь для каждого обновления, новый файл - что было бы беспорядок, если бы было много обновлений) – blejzz

+0

Я не думаю, что SQLite упростит загрузку. Что касается обновлений, я не могу точно представить ваш вариант использования, поэтому я не могу комментировать это. – zoul

+0

ну, если я буду использовать SQL, загрузка будет простой, потому что все, что связано с игрой, будет храниться в одной базе данных, поэтому игра будет инициализироваться из этой базы данных. А также обновление будет выполнено только путем копирования содержимого баз данных обновлений в локальную базу данных (а не из N файлов). – blejzz

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