2012-03-23 24 views
0

複数のレベルを持ち、レベルに複数のテクスチャと図形が含まれているゲームを作成しています。iPhoneにゲームデータを保存する最も良い方法は?

このデータをiphone/ipadに保存するにはどうすればよいですか?

SQLiteやcoredataを使用して格納することを考えていました。しかし、私はまた、(ゲーム購入で)リモートサーバーからゲームデータを更新する関数を実装する必要があります。 SQLiteはこれをアーカイブする最良の方法ですか?コンテンツを更新するときにSQLiteのコンテンツを更新するにはどうすればいいですか(.zipをダウンロードしてdb /ディレクトリにインポートします)誰かがポインタを持っているなら、本当にそれを感謝します!

答えて

2

最も簡単な方法は、plist(xmlファイル)に格納することです。 SQLiteでは、ドキュメントディレクトリのアプリケーションサンドボックスの外部に格納する必要があります(元のアプリケーション内のsqliteを読み込み専用にするためです)。

それ以外の場合は、coredataを使用できます。

+0

+1は、SQLサンドボックスに言及します。 plistsの問題は、すべてのアップデートに独自のplistがある場合、すべてのplistをゲームに読み込むのが面倒だということです。また、plistの関係を探すことは遅く、痛みを伴う。 – blejzz

+0

(SQLサンドボックスではなく、アプリケーションサンドボックスですが、まだ:))あなたのオブジェクトをシリアル化してサーバーで逆シリアル化しないのはなぜですか?トリックの部分は、標準のiosルーチンを使用してそれらをシリアル化することではありません。サーバー側でもデータをデータベースに保存することができます。ユーザーがデータを要求したとき(リフレッシュするか、アプリを再インストールするか、または照会のみ)、再作成されます。それは車輪を再発明するようだが、いつかそれは必要である。 – Panagiotis

+0

さて、私は、クライアントがアップデートに付属のアイテムを保管しているのが本当に好きです。私が本当にアーカイブしたいのは、怒っている鳥がこれをどう扱うか(アップデートで新しいレベルを得ることができる)と似たものです。 – blejzz

1

SQLiteとCore Dataがテーブルにもたらすものについて考えるのは良いことです。両方ともクエリには非常に適していますが、ほとんどの場合、指定されたIDのオブジェクトをフェッチするだけです。その場合は、単純なファイルストレージを検討することもできます。私たちは、いくつかのゲームデータを格納するためにplistインデックスと通常のファイルを使用しましたが、これは技術的なオーバーヘッドが低い単純なソリューションです。

+0

私はすべてのレベルとすべてのレベルの要素を取得し、その中からオブジェクト(スプライトと物理形状)を構築する必要があります。それはなぜSQLiteを使うのですか?リモートサーバーからコンテンツを更新するのは苦痛ではありません(更新するファイルがあれば、すべてのデータを新しいファイルに保存する必要があります)。 – blejzz

+0

私はSQLiteがあなたのために読み込みを容易にするとは思わない。アップデートに関しては、あなたのユースケースを正確に想像することはできないので、私はそれについてコメントすることはできません。 – zoul

+0

もし私がSQLを使用するのであれば、ゲームに関連するすべてが単一のデータベースに格納されるため、ゲームはこのデータベースから初期化されるので、ローディングは簡単です。また、更新は、更新データベースの内容をローカルデータベース(N個のファイルからではなく)にコピーすることによって行われます。 – blejzz

関連する問題