根据大小优化生成

理论基础

有时,需要根据大小而不是速度来优化构建。这意味着不要从引擎编译未使用的函数,也不要使用特定的编译器标志来帮助减小构建大小。常见情况包括为移动和Web平台创建构建。

本教程旨在概述创建较小二进制文件的不同方法。在继续之前,建议先阅读前面关于为每个平台编译godot的教程。

禁用3D

对于二维游戏,拥有完整的三维引擎通常是没有意义的。因此,存在一个生成标志来禁用它:

scons p=windows target=release tools=no disable_3d=yes

必须禁用工具才能使用此标志,因为编辑器设计为在没有3D支持的情况下运行。没有它,二进制大小可以减少大约15%。

禁用高级GUI节点

大多数小游戏不需要复杂的GUI控件,如树、项列表、文本编辑器或图形。可以使用生成标志禁用它们:

scons p=windows target=release tools=no disable_advanced_gui=yes

禁用不需要的模块

Godot的许多功能都作为模块提供。您可以使用以下命令查看模块列表:

scons --help

将显示可禁用的模块列表以及所有生成选项。如果你在做一个简单的二维游戏,你可以禁用其中很多:

scons p=windows target=release tools=no module_bmp_enabled=no module_bullet_enabled=no module_csg_enabled=no module_dds_enabled=no module_enet_enabled=no module_etc_enabled=no module_gdnative_enabled=no module_gridmap_enabled=no module_hdr_enabled=no module_mbedtls_enabled=no module_mobile_vr_enabled=no module_opus_enabled=no module_pvr_enabled=no module_recast_enabled=no module_regex_enabled=no module_squish_enabled=no module_tga_enabled=no module_thekla_unwrap_enabled=no module_theora_enabled=no module_tinyexr_enabled=no module_vorbis_enabled=no module_webm_enabled=no module_websocket_enabled=no

优化尺寸而不是速度

Godot3.1以后的版本允许使用大小优化进行编译。要启用此功能,只需设置 optimize 旗到 size

scons p=windows target=release tools=no optimize=size

默认情况下,某些平台(如WebAssembly)已使用此模式。

正在剥离二进制文件

如果从源代码生成,请记住从二进制文件中除去调试符号:

strip godot.64

使用upx压缩二进制文件

如果您的目标是桌面平台, UPX 可以使用压缩机。这可以大大减小二进制文件的大小。

但是,请记住,一些防病毒程序可能会将UPX压缩的二进制文件检测为病毒。因此,如果您要发布一个商业游戏,请确保对二进制文件进行签名,或者使用一个分发它们的平台。