一篇文章教你如何缩减Godot项目导出包的大小
本文假设您已经掌握了如何自己编译 Godot 导出模板
你可能也发现了,即使是 Godot 空项目,导出的游戏包体也很大。比如导出的 Windows 包有 70M 左右。
要搞清楚这个问题,我们首先需要知道 Godot 是如何实现游戏打包的。
打包时,Godot 其实是把游戏的资源和逻辑都打包到一个 .pck 文件中。pck 文件本身并不能运行游戏,需要借助导出模板(export template),而导出模板就相当于是游戏的启动器。对于同一个平台,不管最终的 pck 文件怎样,使用的导出模板都是同一个。
因此,空项目的游戏包体,主要由导出模版的大小决定。下面介绍如何缩减导出模板的大小。
1 定制导出模版
借用 Godot Build Options Generator 工具,根据你的项目裁剪不必要的模块。
1.1 步骤:
-
选择你实际项目中需要用到的模块(如:是否需要网络?是否用到导航?是否支持 3D?等)
-
下载生成的
custom.py文件 -
将
custom.py放入 Godot 源码根目录(即包含SConstruct的目录) -
编译 export 模版:
scons platform=windows target=template_release arch=x86_64✅ 编译完成后,
bin/目录下生成的.exe文件就是你的轻量化导出模版。 -
将其替换到你的导出模版目录中即可使用(或用作自定义模板)
例如将生成的godot.windows.template_release.x86_64.exe放到godot/bin/editor_data/export_templates/4.5.beta/windows_release_x86_64.exe
2 使用 strip 去除调试符号(可选)
⚠️ 注意:如果你本来就是用
release编译,基本不含符号,此步骤影响不大。
在 Windows 平台:
strip windows_release_x86_64.exe
在 macOS 上(使用 MinGW 工具链)
x86_64-w64-mingw32-strip windows_release_x86_64.exe
3 使用 UPX 压缩导出模版(大幅减小体积)
UPX 是一个可执行文件压缩工具,能极大减小 .exe 文件的体积。
⚠️ 注意:使用 UPX 压缩后,导出游戏无法再使用
内嵌 PCK配置。因为导出模板经过 UPX 压缩,原本的导出模版结构已经发生变化,文件内部是一个解压引导器+压缩二进制。Godot原本通过 PE 结构附加 PCK 的操作无法再生效了。
同样,如果先内嵌 PCK ,再进行UPX压缩,那么在游戏运行时,同样会因为无法找到 PCK 的内容位置而运行失败。
3.1 安装 UPX
-
macOS(使用 Homebrew):
brew install upx -
Windows:从 官网 下载并配置 PATH。
3.2 压缩导出模版
upx --best windows_release_x86_64.exe
⚠️ 注意:直接压缩导出模板,多少会对游戏的导出效果有影响,比如压缩后就无法自动替换游戏包的app图标了。如果介意的话,可以将压缩这一步放在最后,等导出游戏的可执行文件后,再执行压缩。
4 最终效果
| 阶段 | 体积大小(示例) |
|---|---|
| 默认导出模版 | ~70MB |
| 使用 custom.py 裁剪 | ~30MB |
| UPX 压缩后 | ~10MB |
5 附录
2d 小游戏项目的 custom.py 文件示例,在线上生成的基础上有几处小改动。
# Generated using https://godot-build-options-generator.github.io
disable_3d = "yes"
module_bmp_enabled = "no"
module_camera_enabled = "no"
module_enet_enabled = "no"
module_gltf_enabled = "no"
module_hdr_enabled = "no"
module_mobile_vr_enabled = "no"
module_multiplayer_enabled = "no"
module_navigation_enabled = "no"
module_openxr_enabled = "no"
module_webxr_enabled = "no"
module_text_server_adv_enabled = "no"
module_text_server_fb_enabled = "yes"
optimize = "size_extra"
6 参考链接
- Introduction to the buildsystem-Godot Docs 介绍构建系统的基本知识,提到了
custom.py的用法。 - Compiling for Windows-Godot Docs 介绍如何在 Windows 编译 Godot 工程和导出模板。如果要在 MacOS 编译 Windows 的导出模板,需要
brew install mingw-w64安装mingw,安装后直接通过SCons编译即可。文档中同样提到了如何生成自包含的 Godot 编辑器(在bin/目录下创建一个._sc_文件。 - Optimizing a build for size-Godot Docs 介绍如何缩减包体,不过可能主要介绍的是如何缩减生成的 Godot 编辑器的大小。


浙公网安备 33010602011771号