博彩数据库理论

时间:2016-07-02 13:13:03

标签: android sqlite game-development

我想为Android游戏提供数据管理理论方面的帮助。我正在开发一款角色扮演游戏,我喜欢这个角色可以通过不同的服装进行定制:帽子,强力盔甲武器等。玩家可以从商店购买这些,然后选择穿它们或改变装备,但把物品放在一个衣柜里。穿不同的时间。

到目前为止,我的大部分数据都是通过SharedPreferences保存的。但是我知道这对于玩家可以购买的100种不同类型的物品是不可持续的,然后在不同的场合保存。

通过研究,我开始相信SQLite在Android Studio中会是最好的。有人会同意这个或有更好的建议吗?

我理解SQLite会允许我预先加载“未购买”的数据。状态。什么时候买?'这种状态会发生变化,玩家可以穿着'或者“不穿”'衣服。

如果SQLite最好,我该怎么做才能做到最好?此外,SQLite需要很长时间才能加载,从而减慢了活动开放的速度吗?你能否将SQLite与SharedPreferences结合起来,以便记住最新选择的装备?

最后,SQLite是用来存储数据的其他应用程序(特别是如果通过Android Studio构建)?诸如Clash of Clans或Tapped Out等游戏如何保存网格上的拥有物品或位置等数据?

感谢您提供部分支持或理论。

1 个答案:

答案 0 :(得分: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。对于Android应用程序来说很常见,虽然(正如我之前提到的)API有点麻烦并且需要你写一些样板 - 这最终要求你花更多的时间在它上面,它可能不值得花时间一个小数据集。