iPhone游戏开发,用文件或sqlite保存状态?
用于iphone游戏开发。大多数人如何保持状态?使用sqlite?或者某种文件iPhone游戏开发,用文件或sqlite保存状态?,iphone,objective-c,Iphone,Objective C,用于iphone游戏开发。大多数人如何保持状态?使用sqlite?或者某种文件 这个游戏是RPG类型的游戏。这取决于你想要什么。两者都是完全可以接受的。如果您的游戏状态非常复杂,那么使用文件可能会更简单(使用NSKeyedArchiver或其他工具对游戏状态进行编码)。然而,如果你有一个简单的游戏(玩家在这个位置处于这个级别),那么SQLite将是一个很好的选择 如果你想要最好的两个世界,你也可能想考虑使用CordaDa.如果你需要频繁地搜索/排序你的游戏数据,或者你通常只在一次加载数据的一个子
这个游戏是RPG类型的游戏。这取决于你想要什么。两者都是完全可以接受的。如果您的游戏状态非常复杂,那么使用文件可能会更简单(使用NSKeyedArchiver或其他工具对游戏状态进行编码)。然而,如果你有一个简单的游戏(玩家在这个位置处于这个级别),那么SQLite将是一个很好的选择
如果你想要最好的两个世界,你也可能想考虑使用CordaDa.
如果你需要频繁地搜索/排序你的游戏数据,或者你通常只在一次加载数据的一个子集,那么你应该考虑SQLite。 如果您只需要将对象图存储到磁盘并在启动时重新加载整个内容,请使用NSCoder将游戏对象归档到文件中(默认情况下,它存储为二进制plist)
如果您需要与服务器或其他系统交换游戏数据,您可以查看XML或JSON之类的序列化格式。对于RPG,您可能需要搜索并从大型数据集中检索元素,作为游戏本身内部功能的一部分,因此您应该使用SQLite(如果目标是OS 2.x)或者核心数据(如果目标是OS3.x)。因为你将使用一个数据库来加载你的游戏资产,所以使用它来保存状态才有意义。同样,对于RPG,您可能会为游戏状态加载和保存大量数据,对于游戏状态,数据库将比普通数据文件更快 核心数据可以让您管理复杂的对象图,甚至比调优过的SQLite还要快,可以使用更少的内存,并且可以更容易地编码,但仅在iPhone OS 3.x上可用。如果您仍然希望以2.x为目标,SQLite将是一个不错的选择 根据我的经验,除了最简单的需要数据持久性的情况外,核心数据和SQLite都比普通文件快得多