UE在打包时默认使用Zlib
作为资源的压缩算法,但是从压缩率和解压速度来看它并不是最好的选择,可以从Squash Compression Benchmark去看各种压缩算的效率对比,我选择了facebook开源的ZStandard作为替换Zlib的压缩实现,因为ZSTD在保证压缩比的同时还具有不错的解压效率。
本篇文章并不只是讲怎么在UE里集成一个压缩算法,还会简单介绍一下UE里的一些功能的模块化组织方式——ModularFeature
,使用这种方式可以比较方便地替换某些功能的实现,本文中的替换压缩算法是一个实践。
我在UE中集成ZSTD的方式是写了一个插件,源码集成,开源在Github上:hxhb/ue-zstd,支持Android和Windows、IOS以及MacOS,欢迎Star。