我需要保存一些自定义游戏数据。地图,播放器等
它们都将具有“子对象”。例如,地图和地图将具有图块的“阵列”。即分层数据。希望没有二进制文件。
什么是这些的好格式?
到目前为止,我已经考虑过:
序列化:这是快速且容易的,但是当我更改基础类时往往会中断:(
XML:我真的很讨厌解析这个。我的测试用例超过了100多行代码,即使是非常简单的格式,也似乎需要大量的“忙碌工作”。
INI:对于分层数据来说真的很笨拙。
Protobuf:从未使用过它,但请阅读,如果您更改班级,则必须做很多手动修改,然后休息。
还有其他选择吗?这就是为什么我在这里!
编辑:这是Java顺便说一句。
编辑2:
我选择了“受控二进制序列化”(见下文)。
优点:
它很快
它很小(在磁盘上),可以在读/写过程中轻松压缩/解压缩。
从游戏和工具集读取/写入非常容易。
我可以决定要包含/排除对象的内容。
对象/数据可以嵌套。
缺点:
无法手动编辑(例如XML,YAML等)
使用脚本无法轻松读取/修改它
与其他实现相比,默认情况下,Java序列化速度相当慢/膨胀,但它稳定且有效