让游戏读取包含数据的另一个文件是否专业?

时间:2015-12-15 22:10:06

标签: python file

这个问题有点复杂,所以我将介绍情况:

我目前正在用Python编写我的第一个真实游戏,让我们称之为" game.py"它有很多具有各种统计数据和其他此类数据的字符。

截至目前,数据存储在game.py中,但随着程序变得越来越大,这将变得非常不方便,因为查找数据需要更长的时间。

然后它击中了我,我应该尝试使用"打开"让game.py读取文件,让我们说" characters.txt",并将其转换为用于game.py中字符的格式,实质上是将数据从一个文件迁移到另一个文件。

这是一个"专业"解?将它放在game.py中的可查找位置更好,还是有更好的解决方案?

3 个答案:

答案 0 :(得分:0)

正如评论中所建议的,这是处理游戏数据的正确方法。

游戏包含大量数据:游戏对象和实体,关卡,设置,材质和着色器。这些通常表示为文本文件。

传统上,XML用于存储这些类型的元素,但另一个好的选择是JSON。 JSON很简单,解析起来比XML要快。以JSON格式存储您的游戏数据,您可以轻松load将其添加到您的游戏中并像字典一样访问它。

这可能带来的一个问题是人们可以轻松篡改数据,因为JSON可以轻松读取和编辑。然而,这是一个很好的入门方式。 对于更高级的方法,您可以查看加密方法或考虑以二进制格式存储数据。

您可能对以下blog感兴趣,其中详细介绍了JSON如何用于游戏。

答案 1 :(得分:0)

您可以将其保存在另一个.py文件中,然后将其导入:

characters_data.py:

characters={'name':'Me',....
...
}

game.py:

from characters_data import characters
print characters['name']

答案 2 :(得分:0)

如果您担心最终用户可以轻松操作基础设置(即“修改”),那么您可以尝试使用pickle将文件保存为二进制文件。如果你想添加一个额外的威慑,你可以先将cryptography添加到字符串中,然后再将其保存在文件中,然后将密钥保存在.py文件中(尽管如果有人有动机,他们可以通过反向找到它) -engineering the main.pyc)