用于存储播放器保存文件的文件格式是什么?

时间:2010-06-17 01:54:05

标签: java file-format

我正在使用Java制作游戏,我需要一个好的文件格式来存储播放器保存的数据。

有什么建议吗?

如果需要,请随意在代码中提供示例。

编辑:这是一个服务器 - 客户端游戏,因此保存的数据将在服务器的机器上。另外,我不想使用序列化。

4 个答案:

答案 0 :(得分:3)

到目前为止,所有答案似乎都是关于XML的,这不是一个糟糕的格式,但是您可能会发现其他有用的选项,这会使您的启动时间更快:

Json:常见并且比我接下来的两个建议更长。

Thrift:Facebook使用的内容。应该比Json更快,由更少的语言支持。

Protocol Buffers:由Google使用。可能是最快的,也很容易扩展。

或者只是让您的课程支持Serializable

答案 1 :(得分:2)

XML

让我们以标准格式保存您可能拥有的任何数据结构,并且您不需要为它编写自己的解析器/编写器

如果您需要从游戏玩家“保护”文件来改变他们的分数/进度/ ...(不确定文件存储在哪里?或者这是否重要?)您可以通过加密算法传递XML或加密将数据元素放入XML之前的数据元素

答案 2 :(得分:2)

如果您说,信息将保存在服务器上,它肯定应该在数据库中。典型的游戏协议是将用户信息存储在数据库中 - 当他们登录时将其拉入内存,对数据库进行延迟更新以更新内存中的对象(保持游戏性能高),因为他们玩游戏并更新他们的“in”记忆“用户游戏状态对象。

不要仅仅因为它可能稍微容易一些就开始使用基于文件的存储来限制游戏的可扩展性。

答案 3 :(得分:1)

从您的游戏开始,您可以自己定义文件格式。为了保存游戏的状态,直接序列化和存储就行了。至于玩家保存的数据(可能是他的等级进度,游戏得分等),你可以使用XML。

<?xml version="1.0"?>
<Game>
<player  id="01d">
     <name>
             John
      </name>
      <skill>
        Rookie
      </skill>
      <score>
       122
      </score>      
</player>
</Game>

当然你可以加密它以使其成为防黑客