2016-07-02 6 views
-2

私はAndroidゲームのデータ管理理論に関する助けをしたいと思います。私はロールプレイングゲームを開発しています。帽子やパワーアーマーの武器など、さまざまな衣装でキャラクターをカスタマイズすることができます。プレイヤーはショップからこれらを購入し、着用するか衣装を交換するかを選択できます。別の時間を着用するために 'ワードローブ'のアイテム。ゲームデータベースの理論

これまでのところ、ほとんどのデータはSharedPreferencesで保存されています。しかし、私はこれが100種類のアイテムについて持続不可能であることを知っています。プレイヤーは購入して別の機会に着用することができます。

私は研究を通して、SQLiteがAndroidスタジオで最高になると考え始めました。誰かこれに同意するか、よりよい提案がありますか?

私は、SQLiteを使用して、データが「購入されていない」状態になっていることを理解しています。 「買った」とき、このステータスは変化し、プレイヤーは衣類を「着用する」か「着用しない」ことができる。

SQLiteが最善の場合、どうすればよいでしょうか?また、SQLiteは読み込みに時間がかかるので、アクティビティの開始が遅くなりますか? SQLiteとSharedPreferencesを組み合わせて、最新の選択された服を覚えていますか?

最後に、他のアプリが(特にAndroid Studioを使用して構築した場合)データを保存するために使用するものはSQLiteですか? Clash of ClansやTapped Outのようなゲームは、所有するアイテムや場所などのデータをグリッドにどのように保存しますか?

ご協力いただきありがとうございます。

+0

「私はAndroid StudioでSQLiteが一番いいと思うようになっています」 - IDEとOSを混同しないでください。これにより、良い答えを探すプロセスが大幅に簡素化されます。こんにちは、ドミトリー。 –

+0

もう少し詳しく説明しましょう:Android OSのAndroid Studioでデータベースをプログラミングし、SQLiteが自分の意図に合っているかどうかを調べたいと思っています。私はそれが助けてくれることを望みます – TBQPR

+0

Realm、Couchbase Lite、またはFirebaseは、 –

答えて

1

TL; DRはい、SQLiteは問題ありません。

クリーンコードの観点からこの質問にお答えします。

以下は初心者にとっては複雑すぎるかもしれませんが、長期的には役立つことを願っています。

あなたの実際の質問は、私が後で必要とするものをどのように保存するのですか?ほとんどの場合、データを後で確実に読み取ることができる限り、データをどのように格納するかは重要ではありません。そのため、「Xを使うべきか」という心配の代わりに、問題を解決するクラスのインターフェイスを定義することから始めます。

たとえば、それはPlayerItemsRepositoryと呼ばれ、あなたのものを保存し、それを読み返す責任があります。どうやって?私はまだ知らない、私たちは後でそれを理解することができます。

public interface PlayerItemsRepository { 

    void saveItems(List<Item> items); 

    List<Item> readItems(); 

} 

これで、SQLiteを統合できますか?これを少し待ってみましょう - これはSQLiteで動作する定型コードですので、リストをシリアライズしてファイルに保存する簡単な実装を作成します(ItemSerializableと仮定します) 。あるいは、あまりにも怠けている場合は、List<Item>をJSONに変換してSharedPreferencesに保存してください(Gsonライブラリのような使い方は簡単です)。

100個のアイテムを保存する場合(これはかなり少量です)、これらの「簡単な」ソリューションはすべて正常に機能し、ストーリー全体を忘れてしまうことは間違いありません。

あなたはリレーショナルモデルのいくつかの並べ替えを持っている必要に実行を開始します、またはシリアライズのパフォーマンスがあなたに受け入れられない場合、またはあなたがより速く、より複雑な検索の仕組みが必要場合 - 、あなたはスイッチング検討するかもしれない SQliteへ。 (前にも触れましたが)APIはやや面倒で、かなりの定型文を書く必要がありますが、最終的にはそれにもっと時間を費やす必要があります。小さなデータセット。

+0

こんにちは。ご意見をいただきありがとうございます。私はJSONオプションを調べています。私はその理論を把握していると思うが、あなたが推奨するチュートリアルやガイドを持っていれば素晴らしいだろうか?再度、感謝します。 – TBQPR

+0

JSONの場合は?形式の背後には多くの話はありません。仕様をチェックして、Gsonのような有名なJSONライブラリを試してみることをお勧めします。 SQLiteについて - ほとんどのSQLie +公式Webサイトに関する参考文献です。オンラインで入手できる資料はたくさんありますので、時間を投資するだけの問題です。 –