对于2D RPG,XML与YAML对比JSON

时间:2011-12-06 12:49:02

标签: c++ xml json yaml

我无法弄清楚是否为C ++ 2D RPG使用XML,YAML或JSON。

以下是我的想法:

  • 我需要一些简单的东西,不仅可以保存玩家数据,还可以保存环境数据,例如对象(x,y)坐标;加载时间;日期;图形配置等

  • 我需要一些灵活,易于使用且重量轻但功能强大的东西。

哪个是最佳选择?我有使用JSON的经验,但不是C ++。如果这是要走的路线,那么在C ++中解析JSON有什么好的参考吗?

修改

老实说,如果一个文本文件对于像这样的东西来说似乎是最简单和最有效的解决方案(特别是如果我可以把它写成二进制文件),那么我全都听见了。

修改2

随意提供其他建议。

1 个答案:

答案 0 :(得分:20)

我会使用满足您要求的最简单的东西。

如果您不需要分层存储,那么平面表格文件比其他任何内容都更容易处理。您所要做的就是从磁盘读取行并在选项卡上拆分。

如果您正在查看更多的键/值对类型存储(而不是事物列表),那么INI files可能是合理的。这种格式具有很大的灵活性,但是当你勒索它时,它的推理可能不那么容易接受。

如果您需要分层,JSON可能会更简单。有各种语言的JSON库,听起来你已经熟悉了。

https://stackoverflow.com/questions/245973/whats-the-best-c-json-parser

sqlite可能是另一种选择。在SQL中有龙,但是在sqlite周围有一个很好的C ++包装器,可以可管理。在我看来,主要的好处是ACID。

YAML规格看起来有些冗长,所以我猜它有更多的厨房水槽。只是略读libyaml文档,API看起来有点像我过去使用过的SAX接口。我没有后天的知识,但我会保持沉默,没有充分的理由开始使用它。

XML很难处理,不要选择加入它。

无论您选择哪一个,都要编写尽可能少的代码来管理它。你真的想要编写引擎首先使用的类。然后担心序列化它们。如果你让序列化影响你的课程设计,你可能会后悔。 :)