【发布时间】:2020-03-03 02:50:42
【问题描述】:
我觉得 Godot 引擎令人印象深刻的一个特点是它是如此轻量级和快速编译。我意识到 Godot 使用其预编译的导出模板进行导出,但我对它是如何做到的感到困惑。我正在开发 macOS,所以这主要是我很好奇的。 Godot 如何将代码添加到预编译的可执行文件中。我花了几个小时查看源代码,但无法弄清楚。
【问题讨论】:
标签: macos game-engine executable godot binaries
我觉得 Godot 引擎令人印象深刻的一个特点是它是如此轻量级和快速编译。我意识到 Godot 使用其预编译的导出模板进行导出,但我对它是如何做到的感到困惑。我正在开发 macOS,所以这主要是我很好奇的。 Godot 如何将代码添加到预编译的可执行文件中。我花了几个小时查看源代码,但无法弄清楚。
【问题讨论】:
标签: macos game-engine executable godot binaries
Godot 的导出模板是使用一组特定 SCons 选项的已编译二进制文件。它们总是使用 tools=no 构建的,这会禁用编辑器功能,官方导出模板使用 target=release_debug 或 target=release 优化(分别用于调试和发布导出模板)。
请注意,Godot 在导出项目时不会编译本机代码——它只是将数据、脚本和导出模板捆绑在一起。游戏数据和脚本打包成 PCK 文件,这是一种自定义存档格式,可以存储任意文件(无需压缩)。然后导出模板运行 PCK 文件中包含的主脚本。
在发布模式下导出项目时,脚本会被编译为字节码,这会加快加载时间,但不会影响脚本的执行速度。
请参阅this page 了解为 macOS 编译二进制文件。
【讨论】: