2017-01-02 20 views
9

私はTVOSゲームのSKSceneのアーカイブとしてステージのデータを保存しようとしていました。私はそれをシミュレータで作業させた。しかし、TVOSはアーカイブを格納するためのローカルストレージを持っていないようです。TVOS spritekitゲームデータの保存場所

アーカイブを置くことができる唯一の他の場所は、バンドル自体(何らかの理由でぶつかる)とクラウド(実際にゲームに付いてくるはずのゲームデータを読み込むためにクラウドに接続することは愚かに思われます)。

私はどのような正しい方法で進むべきかはわかりません。

答えて

1

tvOSにローカルストレージがあります。ただし、4 GBに制限されています。

2017年1月12日現在、Appleは現在、最大4GBのtvOSアプリケーションバンドルを受け入れています。ここでの発表を参照してください:Now Accepting Larger tvOS Binaries

tvOSアプリバンドルのサイズの上限は4ギガバイトに200メガバイトから増加しているので、あなたの投稿でより多くのメディアが含まれており、インストール時に完全な、リッチなユーザー体験を提供することができます。また、tvOSアプリケーションは、オンデマンドリソースを使用して、App Storeに最大20 GBの追加コンテンツをホストすることができます。


先立ち2017年1月12日に - それは200メガバイトに制限されていました。 Appleのドキュメントは、この変更を反映するように更新されています。

documentationから:

アプリのローカルストレージがtvOSアプリバンドルの最大サイズ 200メガバイト4ギガバイト

制限されています。さらに、アプリケーションは、(NSUserDefaultsクラスを使用して)デバイスのローカルな500 KBの永続ストレージにのみアクセスできます。この限られたローカルストレージの外では、他のすべてのデータは、スペースが少ないときにオペレーティングシステムによってパージ可能でなければなりません。これらのリソースを管理するためのオプションがいくつかあります。

  • アプリはiCloudでユーザーデータを保存および取得できます。

  • あなたのアプリは、必要なデータをキャッシュディレクトリにダウンロードできます。ダウンロードしたデータは、アプリの実行中は削除されません。ただし、スペースが少なく、アプリが実行されていない場合、このデータは削除される可能性があります。キャッシュ領域全体を使用しないでください。予期しない結果が生じる可能性があります。

  • アプリは、オンデマンドリソースを使用して読み取り専用アセットをパッケージ化できます。その後、実行時にアプリは必要なリソースを要求し、オペレーティングシステムは自動的にそれらのリソースをダウンロードして管理します。ユーザーの関与を維持しながら新しいアセットをいつ、どのように読み込むかを知ることは、成功したアプリを作る上で非常に重要です。オンデマンドリソースの詳細については、On-Demand Resources Guideを参照してください。

これは、新しいApple TVのために開発されたすべてのアプリがiCloud上にデータを格納することが可能と優れた顧客体験を提供方法でそれを取得しなければならないことを意味します。

あなたのバンドルが 200メガバイト4ギガバイト制限を超えた場合は、Appleは上記の説明のオプションのいずれかを採用する必要があります。進むべき正しい方法は、ゲームのアーキテクチャ、具体的にはこのアーキテクチャがオンデマンドアセットをどのように処理できるかによって異なります。

+0

これはゲームコンテンツではなく、ゲームデータの保存に関するものです。 – Confused

1

UserDefaultsは500kb、iCloud KVSは1MBです。他のすべてはiCloudにある必要があります。

私はあなたのシーングラフのplist/dictがどれくらい大きいかを見て、どこからそれを保存するかを決定します。

Apple TVのストレージは限られているため、次回ユーザーがアプリケーションを開いたときにデバイスに保存されている情報を利用できる保証はありません。また、複数のデバイス間でユーザーのデータを共有するには、Apple TV以外のユーザーの情報を保存する必要があります。 Appleは、iCloud Key-Value Storage(KVS)とCloudKitの2つの共有ストレージオプションをApple TVに提供しています。

1 MB未満の小さな容量のストレージの場合、アプリはiCloud KVSを使用できます。 iCloud KVSは、すべてのユーザーのデバイス間で情報を自動的に同期します。 iCloud KVSが保存した情報には、アプリの所有者のみがアクセスできます。アプリの他のユーザーはこの情報にアクセスできません。詳細については、「iCloudでのKey-Valueデータの設計」を参照してください。

1MBを超える大容量のストレージでは、CloudKitを実装する必要があります。 CloudKitを使用すると、あるユーザーが保存した情報に別のユーザーがアクセスできるようになります。これは、あるユーザの行動が別のユーザのオプションに影響を与える場合に非常に有用です。例えば、他のユーザに直接影響を与える、ゲームターン中にユーザによって行われたアクション。それは小さなだ場合

https://developer.apple.com/library/content/documentation/General/Conceptual/AppleTV_PG/iCloudStorage.html#//apple_ref/doc/uid/TP40015241-CH10-SW1

私はそれが迅速かつ簡単だとしてだけUserDefaultsを使用すると、プラットフォーム間で同じコードを使用します。

1

私はTVOSゲームのSKSceneのアーカイブとしてステージのデータを保存しようとしていました。私はそれをシミュレータで作業させた。しかし、TVOSは明らかにアーカイブを置くためにローカルストレージを持っていません。

あなたは、ローカルストレージの少量を持っている...

私は置くことを理解することができる唯一の他の場所アーカイブは、あなたは、ローカルとiCloudのKVS 1メガバイト(1024のキーまで)その他の小型ストレージ用UserDefaults 500キロバイトを持っている(何らかの理由で眉をひそめている)バンドル自体

です。

とクラウド(実際にゲームに付いてくるはずのゲームデータを読むためにクラウドに接続する必要があります)。

あなたはアップルのライブラリを使用

、あなたは最終的には、愚かなことをやってに慣れる:{

私は続行する正しい方法は、今、何であるか本当にわかりません。

使用UserDefaultsまたはCloudKitあなたのグラフはどのように大きなに応じて、その後、アップルに怒りのメールを書く(我々はすべてがすべきのように)。

関連する問題