保护C ++ RPG游戏中的存储数据

时间:2012-08-07 17:58:39

标签: c++ storage sfml data-protection

我目前正在Windows上使用C ++和SFML开发RPG游戏。目前它运作良好,但当我检查所有内容时,我意识到由于所有数据(如物品,库存,生物,战斗,NPC,商店等)都存储在文本文件中,因此使用任何文本操作都非常简单编辑器。

我想防止这些数据至少被轻易操纵。显然,只要数据与发布存储在一起,就会有人通过并能够编辑它。

我想知道保护这些数据的最佳途径是什么,同时仍然保持使用将来构建的工具编辑它的能力,如地图编辑,项目编辑,NPC编辑等。作为引擎本身。

我非常喜欢自己编写,并且只是想知道如何最好地完成它,因为我主要使用它来更好地学习语言。如果有人真的认为这是愚蠢的,请告诉我,以便我可以考虑使用可选的库。

如果你这样做,我会很感激能为我推荐一个好的人使用。

2 个答案:

答案 0 :(得分:6)

  

我想知道保护这些数据的最佳途径是什么   还是会保持用工具编辑它的能力   将在未来构建,如地图编辑,项目编辑,   NPC编辑等以及引擎本身。

我认为没有最好的解决方案。最简单的一个可以加密文件,硬编码密钥在游戏中解密它们。 这不会阻止二进制文件的逆向工程来恢复密钥。

答案 1 :(得分:2)

让您的游戏引擎以文本和二进制格式读取文件。二进制格式可以像在文件目录中使用zip压缩一样简单。然后你可以在二进制文件上实现校验和。

对于开发,您将使用文本版本,但在实时游戏中,您只允许读取二进制格式,并且您拒绝未通过校验和的文件。

这不是超级安全,因为有人会对校验和进行逆向工程。但它会阻止临时用户编辑你的游戏数据。通过让游戏客户端根据服务器上已知的良好校验和验证游戏数据校验和,您可以使这更加安全。