Attention: Here be dragons
This is the latest
(unstable) version of this documentation, which may document features
not available in or compatible with released stable versions of Godot.
Checking the stable version of the documentation...
导出项目¶
为什么要导出?¶
起初,Godot 没有任何导出项目的方法。开发人员需要为各个平台手动编译正确的二进制文件并打包。
后来用它的开发人员(甚至是非程序员)多了起来,我们的公司也开始同时进行更多的项目,这就明显成了一个瓶颈。
在 PC 上¶
使用 Godot 在 PC 上分发游戏项目相当容易。将 Godot 二进制文件拖放到与 project.godot
文件相同的目录中,然后压缩项目目录即可。
这听起来很简单, 但开发人员可能不想这样做的原因可能有几个. 第一个原因是可能不希望分发大量文件. 一些开发人员可能不喜欢好奇的用户偷看游戏的制作方式, 其他开发人员可能会发现它不雅致, 等等. 另一个原因是, 开发人员可能更喜欢特殊编译的二进制文件, 该二进制文件的大小较小, 更优化, 并且不包含编辑器和调试器之类的工具.
最后,Godot有一个简单但有效的系统, 用于 将DLC 创建为额外的包文件 .
在移动端¶
移动设备中的相同情况会更糟糕. 要在这些设备上分发项目, 需要为每个平台构建一个二进制文件, 然后将其与游戏数据一起添加到本地项目中.
这可能很麻烦, 因为这意味着开发人员必须熟悉每个平台的SDK, 才能进行导出. 虽然总是鼓励学习每个SDK, 但在不希望的时间被迫这样做可能会令人沮丧.
There is also another problem with this approach: different devices prefer some data in different formats to run. The main example of this is texture compression. All PC hardware uses S3TC (BC) compression and that has been standardized for more than a decade, but mobile devices use different formats for texture compression, such as ETC1 and ETC2.
Configuration files¶
The export configuration is stored in two files that can both be found in the project directory:
export_presets.cfg
: This file contains the vast majority of the export configuration and can be safely committed to version control. There is nothing in here that you would normally have to keep secret..godot/export_credentials.cfg
: This file contains export options that are considered confidential, like passwords and encryption keys. It should generally not be committed to version control or shared with others unless you know exactly what you are doing.
Since the credentials file is usually kept out of version control systems, some export options will be missing if you clone the project to a new machine. The easiest way to deal with this is to copy the file manually from the old location to the new one.
从命令行导出¶
在生产中, 自动化构建很有用,Godot使用 --export
和 --export-debug
命令行参数来支持它. 从命令行导出仍需要导出预设来定义导出参数. 该命令的基本调用将是:
godot --export "Windows Desktop" some_name.exe
假设有一个名为“Windows Desktop”的预设,并且可以找到模板,它将导出为 some_name.exe
(如果导出预设的名字中存在空格或特殊字符,就必须放在引号里)。输出路径是相对于项目的路径或者绝对路径;它使用的不是命令被调用时的目录。
输出的文件扩展名应该与 Godot 导出过程所使用的相匹配:
Windows:
.exe
macOS:
.zip
(所有平台均可导出)或.dmg
(只能从 macOS 导出)。不直接支持.app
,不过生成的 ZIP 压缩包中包含了.app
捆绑包。Linux:任意扩展名(没有也行)。64 位 x86 二进制文件通常使用
.x86_64
。HTML5:
.zip
Android:
.apk
iOS:
.zip
你还可以将其配置为仅导出 PCK 或 ZIP 文件,能够让多个 Godot 可执行文件执行同一个导出的主包文件。这样做时,仍然必须在命令行中指明导出预设的名称:
godot --export-pack "Windows Desktop" some_name.pck
将 --export
标志与 --path
标志组合起来通常很有用,这样你就不必在运行命令之前 cd
到项目文件夹中了:
godot --path /path/to/project --export "Windows Desktop" some_name.exe
参见
关于从命令行使用 Godot 的更多信息,请参阅 命令行教程。
PCK 与 ZIP 打包文件格式对比¶
各个格式有它的优势与劣势.PCK 对大多数用例来说是默认和推荐格式, 但取决于您的需要, 您可能希望使用 ZIP.
PCK 格式:
未压缩的格式。文件尺寸较大,但读写较快。
尽管有 第三方工具 来提取和创建PCK文件, 但使用用户操作系统上通常存在的工具是不可读和不可写的.
ZIP 格式:
压缩格式。文件尺寸较小,但读写较慢。
可以使用用户操作系统中的常见工具读取或写入. 这对简化制作mod很有用.(另请参阅 导出包、补丁、Mod).
警告
由于存在一个已知错误,当使用 ZIP 文件作为打包文件时,导出的二进制文件不会尝试自动使用它。因此,你需要创建一个启动脚本,玩家可以双击它或从终端启动项目:
:: launch.bat (Windows)
@echo off
my_project.exe --main-pack my_project.zip
# launch.sh (Linux)
./my_project.x86_64 --main-pack my_project.zip
保存启动脚本, 并将它与导出的二进制文件放在同一文件夹中. 在Linux上, 请确保使用 chmod +x launch.sh
命令给予启动脚本可执行权限.