2

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

我想至少防止这些数据被轻易操纵。显然,只要数据与版本一起存储,就会有人通过并能够对其进行编辑。

我想知道保护这些数据的最佳途径是什么,同时仍然保持使用将来构建的工具(例如地图编辑器、项目编辑器、NPC 编辑器等)以及引擎对其进行编辑的能力本身。

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

如果您稍后再做,我将不胜感激任何可以推荐一个好的供我使用的人。

4

2 回答 2

7

我想知道保护这些数据的最佳途径是什么,同时仍然保持使用将来构建的工具(例如地图编辑器、项目编辑器、NPC 编辑器等)以及引擎对其进行编辑的能力本身。

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

于 2012-08-07T18:04:00.807 回答
2

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

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

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

于 2012-08-07T18:07:34.770 回答