Work in progress

The content of this page was not yet updated for Godot 4.2 and may be outdated. If you know how to improve this page or you can confirm that it's up to date, feel free to open a pull request.

匯出專案

為何要匯出?

剛開始,Godot 中沒有能匯出專案的方法。開發人員需要編譯為適當的二進位檔,並為各個平台手動建立套件。

當更多開發人員 (甚至非程式設計師) 開始使用 Godot,或是當一間公司開始同時進行更多專案時,很明顯這就成了一個瓶頸。

在 PC 平台上

以 Godot 來發行遊戲專案很簡單。只需要將 Godot 二進位檔放在跟 project.godot 同一個資料夾內,然後壓縮專案資料夾就好了。

說起來很容易,但有幾個原因讓開發人員並不想這麼做。第一種原因是,我們可能不想要發行這麼多的檔案。有些開發者也可能不喜歡好奇使用者們都看遊戲是怎麼做的,其他開發者則覺得這樣發行很不優雅。第二種原因則是開發人員可能偏好特別編譯的二進位檔。二進位檔的檔案比較小,最佳化比較好,而且也不包含如編輯器或除錯工具等工具。

最後,Godot 中有一個簡單卻有效率的系統,可以有用來建立作為額外檔案的 DLC。

在行動平台上

同樣的情況,搬到行動平台上就稍微糟糕一點了。要在這些平台上發行專案,則必須為各個平台建置各自的二進位檔,並將遊戲資料一起新增到原生專案中。

這代表開發人員必須要在專案連匯出都還沒之前就熟悉各平台的 SDK,所以可能會很麻煩。雖然我們鼓勵大家學習各 SDK,但還沒準備好就強迫學習總是很讓人沮喪。

這種方法還有另一個問題:不同的裝置偏好以不同格式的資料來執行。主要的例子即為紋理壓縮。所有的 PC 硬體都使用 S3TC (BC) 壓縮,而且早在十年前就標準化了。但行動裝置卻使用不同的紋理壓縮格式,如 PVRTC (iOS) 或 ETC (Android)。

匯出選單

在試過各種不同的匯出工作流程之後,證明了目前的工作流程效果最佳。在本文章撰寫時,Godot 匯出還未支援所有平台,但支援的平台越來越多。

要打開匯出選單,請點擊 [匯出] 按鈕:

../../_images/export.png

接著會打開匯出選單。但,這裡完全是空的。這是因為我們還沒新增任何的匯出預設設定。

../../_images/export_dialog.png

要建立匯出預設設定,請點擊匯出選單上方的 [新增...] 按鈕。接著會打開一個列出各個平台的下拉選單,可以用來選擇要製作匯出預設設定的平台。

../../_images/export_preset.png

預設的設定通常足夠用來匯出了,所以通常不需要更改選項。但,有很多平台都需要安裝額外的工具 (SDK) 才能匯出。另外,Godot 還需要安裝匯出樣板才能建立套件。當要匯出的平台缺少某些東西時,匯出選單會顯示提示,必須解決後才能進行匯出:

../../_images/export_error.png

此時,使用者則需要回來閱讀文件,並依照指示來正確為該平台設定。

匯出樣板

除了設定平台外,還必須要安裝匯出樣板才可以匯出專案。匯出樣板可以從 Godot 網站的下載頁面 中下載 TPZ 格式的檔案 (即為重命名的 ZIP 壓縮檔)。

下載後,便可以通過編輯器中的 [安裝匯出樣板] 選項來安裝:

../../_images/exptemp.png

資源路徑

匯出時,Godot 會先列出所有要匯出的檔案,接著建立套件。有三種匯出模式:

  • 匯出專案內所有資源

  • 匯出所選場景(與其所有相依性)

  • 匯出所選資源(與其所有相依性)

../../_images/expres.png

匯出專案內所有資源 會將專案內所有的資源都匯出。 匯出所選場景匯出所選資源 則會列出專案中的場景或資源,接著則必須選擇所有欲匯出的場景或資源。

../../_images/expselected.png

備註

匯出的專案永遠不會包含名字以點開頭的檔和資料夾。這是為了防止將 .git 等版本控制資料夾加入匯出的 PCK 檔案。

在資源列表之下,是兩個可以設定的篩選器。第一個可以讓 .txt.json.csv 等非資源檔與專案一起匯出。第二個可以用來排除特定型別的檔,這樣就不必手動一個個去取消選擇了。例如 .png 檔案。

注意事項

匯出配置儲存在兩個檔案中,這兩個檔案都可以在專案目錄中找到:

  • export_presets.cfg:此檔案包含絕大多數匯出配置,可以安全地提交到版本控制。這裡沒有什麼是你通常需要保密的。

  • .godot/export_credentials.cfg:此檔案包含被視為機密的匯出選項,例如密碼和加密金鑰。通常**不**致力於版本控製或與其他人共享,除非您確切知道自己在做什麼。

由於憑證檔案通常不包含在版本控制系統中,因此如果將專案複製到新計算機,某些匯出選項將會遺失。處理此問題的最簡單方法是手動將檔案從舊位置複製到新位置。

從命令行進行匯出

在正式環境中,適用於自動建置,在 Godot 中可以使用 --export--export-debug 參數來從命令行進行匯出。但從命令行匯出依然需要匯出預設設定來指定匯出參數。該指令的基本呼叫方法如下:

godot --export "Windows Desktop" some_name.exe

假設有一個名為「Windows Desktop」的匯出預設設定,且可找到匯出樣板,則上述指令會匯出為 some_name.exe 。匯出路徑為相對於專案的路徑,或是可使用絕對路徑。匯出路徑與執行指令的路徑無關。

輸出的檔副檔名應該與 Godot 匯出過程所使用的相配對:

  • Windows 範例:

  • macOS:.zip``(所有平臺均可匯出)或 ``.dmg``(只能*從* macOS 匯出)。不直接支援 ``.app ,不過生成的 ZIP 壓縮包中包含了 .app 組合包。

  • Linux:任意副檔名(沒有也行)。64 位 x86 二進位檔案通常使用 .x86_64

  • HTML5:.zip

  • Android:.apk

  • iOS:.zip

也可以設定為只匯出 PCK 或 ZIP 檔,並讓單一匯出可以由多個 Godot 可執行檔使用。可以通過將匯出目標名稱以 .pck.zip 結尾來進行。

godot --export-pack "Windows Desktop" some_name.pck

--export 旗標也常常適合與 --path 一起使用,我們也常常會為自動匯出建立專屬的匯出預設設定:

godot --path /path/to/project --export "Windows Desktop" some_name.exe

也參考

更多有關命令行參數的資訊,請參考 命令行教學

PCK v.s. ZIP 打包檔案格式

不同格式都各有其利弊。PCK 是預設的格式,且建議用於大多數情況。但依據需求的不同,使用者可能會想用 ZIP 壓縮檔。

PCK 格式:

  • 未經壓縮的格式。檔案大小較大,但讀寫較快。

  • 在使用者的作業系統上通常沒有附帶能讀寫 PCK 格式的工具。但有一些 第三方工具 可以解包與建立 PCK 檔案。

ZIP 格式:

  • 經過壓縮。檔案大小較小,但讀寫較慢。

  • 使用者的作業系統上通常會附帶可讀寫 ZIP 格式的工具。適合用於製作較易進行 Mod 的遊戲 (也請一併參考 匯出套件、修正檔與 Mod )。

警告

由於存在一個`已知錯誤 <https://github.com/godotengine/godot/pull/42123>`__,當使用 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 命令給予啟動腳本可執行許可權.