运输游戏图形(例如许多小的BMP文件)时的最新技术水平是什么?[关闭]


9

我们有很多小BMP文件,如果将它们组合在大TAR / ZIP /任何文件中,我认为它们会更容易复制。

运输游戏图形的最新状态是什么?

我们正在使用C#,并且知道zlib。只是集思广益,看看是否有比zlib更好的解决方案。

Answers:


7

您也可以查看SharpZipLibDotNetZip -DotNetZip使您可以Stream直接访问,这很有用,因为大多数C#库都可以从流(而不是文件)中加载。此外,DotNetZip使用Ms-PL(BSD-Like),而不是具有法律可疑异常的GPL。

另一种选择是使用纹理地图集 -而不是让许多小图像有一些大图像。如果您对如何绘制它们很了解,它们实际上加载速度会稍快一些,并且在运行时会略快一些。

最后,您可以通过相关的无损压缩程序(PNG,FLAC等)运行每种资产类型,并将它们存储在平面文件(基本上是禁用压缩的zip文件)中。请记住避免压缩压缩数据,因为在大多数情况下,压缩数据会增加大小。

一些现有技术:

  • MPQ:查找可能与游戏资产一样好,查找被设计为快速的(基于磁盘的哈希表等)。每种文件类型(受支持)都具有唯一的压缩器。
  • Quake PAK:这基本上是一个平面文件结构。
  • Doom WADDoom特有的,但值得研究。

1

一种选择是以与制作压缩纹理相同的压缩格式存储图像。这样做的好处是,您不会将一种有损格式转换为另一种有损格式,而是以有损格式存储数据。根据纹理的不同,通过将此类文件存储在压缩档案中可能仍然会有所收获。

有关压缩纹理的更多信息,请参见以下答案:https : //gamedev.stackexchange.com/a/5177/3505


0

ZLIB可能是一个很好的答案,但是如果您知道有人开始抢资产,那么您也可以制作自己的文件格式来存储资产,尽管这并不难。

是您的制作方法。

它是用C语言编写的,但学习起来并不难,因为C#与C和C ++类似。

当然,仍然具有较高知识的人可以利用您的资源,如果需要,可以添加少量加密,而不必太费力。

这可能非常有用,但是只会加入您的文件。对于压缩,您也有两种选择。

  1. 制作您的整个资源文件,将其压缩并运送。
    此方法很简单,但不是很好,如果您只想使用一种资源,则应解压缩所有内容。

  2. 压缩每个资源,并将它们压缩后添加到资源文件中。
    这也非常好,因为方法1旁边的大小会稍有增加,因为每个文件都是分别压缩的,但是如果需要灵活性,它会更好。

每种方法都有其自身的缺点,您应该明智地选择。通常,如果您的游戏的资源数量很少,则方法1应该更好;如果您有很多,则方法2应该适合您,因为所有资源的总和将压倒您获得的额外资源。

对于压缩库,您具有:

如果我想在游戏中快速访问游戏,我会选择LZO,所以如果我想要缩小文件的大小或压缩平衡,则不必担心实时解压缩;如果要缩小文件,则不必担心7-Zip压缩。
选择是你的:D

嗯,当然还有其他压缩数据的算法,您可以在谷歌搜索中找到。

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.