匯出專案

為何要匯出?

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

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

在 PC 平台上

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

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

Finally, Godot has a simple but efficient system for creating DLCs as extra package files.

警告

God目前尚未支援超國兩GB的PCK檔案。若匯出的專案資料大於2GB,將會需要將其分開匯出到多個PCK檔案。

在行動平台上

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

這代表開發人員必須要在專案連匯出都還沒之前就熟悉各平台的 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

從命令行進行匯出

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

godot --export "Windows Desktop" some_name

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

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

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

godot --path path/to/project --export "pck" game_name.pck

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

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

PCK 格式:

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

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

ZIP 格式:

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

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

警告

Due to a known bug, when using a ZIP file as a pack file, the exported binary will not try to use it automatically. Therefore, you have to create a launcher script that the player can double-click or run from a terminal to launch the project:

:: 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

Save the launcher script and place it in the same folder as the exported binary. On Linux, make sure to give executable permissions to the launcher script using the command chmod +x launch.sh.