游戏编程:.DAT文件?

时间:2010-02-14 04:20:29

标签: c++ directx

我看过很多游戏使用的东西类似于.DAT文件或游戏本身的特定文件类型。我刚刚开始使用C ++和DirectX,我有兴趣将我的信息保存在类似于.DAT的内容中。

我最初的构想是它会保存您想要存储在.DAT文件中的文件的信息。类似于.RAR文件的东西。不幸的是,我的googleing技能并没有帮助我找到答案。

现在我只是从名为Data的文件夹中加载纹理和声音文件。

编辑:虽然我明白.DAT是数据的简称,我发现.DAT文件通常包含任何类型的信息,我仍然不确定如何去做将图像和声音文件打包成任何类型的文件并能够读取它们。

我不确定使用fstream来完成我的任务,但是我将研究与存储数据相关的流以及如何正确读取该数据。同时,如果有人根据这些新信息提供另一个答案,我们将不胜感激。

编辑:感谢答案,我偶然发现了一个关于stackoverflow的类似问题,觉得我会在这里分享。 Combining resources into a single binary file

6 个答案:

答案 0 :(得分:4)

我认为确实存在.dat文件格式之类的东西。它是“数据”的缩写,不同的应用程序只是放入一些专有的东西并称之为“.dat”。您可以阅读fstream类以在C ++中执行文件IO。请参阅Input/Output with files

您接下来要做的就是制作自己的文件格式。例如,前4个字节是int,表示.dat中的块数,对于每个块,您有4个字节表示每个块的长度,4个字节表示块的类型,可变长度数据本身。类似的东西。

答案 1 :(得分:1)

DAT显然代表数据,并且该扩展实际上指的是没有真实或事实上的标准。您对最佳文件格式的决定应基于技术考虑,而不是通过默默无闻的安全性尝试。

答案 2 :(得分:1)

专业游戏使用的技术是将所有需要的资源(模型,纹理,声音,ai,配置等)压缩/打包到一个文件中,从而使管理更快,更难更改(有些甚至可以使用)从数据文件中的内容获取虚拟文件系统。现在,根据游戏的需要和您使用的数据结构,文件内部的内容会有所不同。

如果您刚刚开始使用gamedev,我建议您坚持将所有资产分开,并且不要过多地将它们打包到一个文件中。

现在,如果你真的想开始使用打包格式,那么这是一个很好的指针: Creating a PAK File Format

答案 3 :(得分:0)

Here's a link声称 .dat 是一种电影格式,'DAT'是数字音频磁带的缩写。

我不确定我是否相信这个链接,但是我还记得微软支持的DAT格式,很久以前,当我使用早期版本的Windows时。

作为某种DATA文件的逻辑扩展更有意义。

答案 4 :(得分:0)

正如其他人所说, .dat实际上只是一个数据文件。实际上,文件扩展名除了与程序关联之外别无其他。例如,我可以制作一个文字处理器,用.mp3文件扩展名保存所有文件。这些文件无法在任何媒体软件中播放,但软件可能会尝试。文件扩展名用于帮助程序知道它们可以打开哪些类型的文件 - 但是不必遵循这些规则。

无论如何,您可以将任何类型的信息转储到文件中。程序员/软件编写者通常会选择.dat作为该文件的扩展名,因为它已成为表示“此文件只保存大量数据”的标准,并且数据不一定包含任何标准化的页眉,页脚或格式

答案 5 :(得分:0)

dat文件实际上可以包含任何内容。它可能像改变扩展名的zip存档一样简单,也可能是完全自定义的文件类型。如果您刚刚开始,您可能不想编写自己的文件格式,尽管这样做既有趣又有教育意义。如果你想将你的数据文件封装到某种容器中,你应该使用zip,paq或tar.gz。