Up to date
This page is up to date for Godot 4.2
.
If you still find outdated information, please open an issue.
匯出套件、修正檔與 Mod¶
使用例¶
通常我們會想在遊戲部署後為遊戲增加功能。
這樣的例子包含...
DLC:可在遊戲中新增功能與內容。
修正檔:用來修正存在於已出貨產品中的 Bug。
Mod:讓其他人能夠為遊戲建立內容。
這些工具可以協助開發人員在初始版本後的開發。
PCK 檔概覽¶
Godot 中通過一個 資源套件 的功能來實作該功能 (PCK 檔,副檔名 .pck
)。
優點:
漸進更新/修補
提供 DLC
提供 Mod 支援
Mod 不需要公開原始碼
專案架構更加模組化
使用者不需要換掉整個遊戲
首先,我們需要將專案匯出並行行給玩家。接著,當之後像新增功能或內容時,就可以通過 PCK 檔來提供更新。
PCK 檔通常包含但不限於下列內容:
腳本
場景
著色器
模型
紋理
音效
音樂
其他適合匯入到遊戲內的素材
PCK 檔甚至可以是完全不同的 Godot 專案,讓原本的遊戲在執行時載入。
產生 PCK 檔¶
要將專案中所有的資源都打包到 PCK 檔中,請打開專案,並前往 [專案] -> [匯出],接著點選 [匯出 PCK/Zip]。匯出時也請確保有選擇匯出樣板。
另一種方法為 在命令行中匯出 。若輸出檔案以 PCK 或 ZIP 副檔名結尾,則匯出過程會為所選平台建置該型別的檔案。
備註
如欲於遊戲中支援 Mod,則必須讓使用者能建立類似的匯出檔案。假設原始遊戲需要特定結構的 PCK 資源,或是需要腳本有特定的介面,那麼可選擇下列其中一種方法...
開發人員必須公開所需架構/介面的文件,並讓 Mod 作者安裝 Godot Engine,接著要求 Mod 作者依照文件中定義的 API 來製作 Mod (這樣才能正常運作)。使用者接著便能以上述方法通過 Godot 內建匯出工具來製作 PCK 檔案。
開發人員使用 Godot 來製作使用專案 API 的 GUI 工具。該 Godot 工具必須執行於有啟用工具功能的引擎建置,或是能存取工具功能的引擎建置 (與原始遊戲檔案一起發佈,或在遊戲檔案內發行)。該工具接著可使用 Godot 的執行檔來在命令行中以 OS.execute() 來匯出 PCK 檔。對大多數遊戲來說,都不適合在遊戲中使用工具建置 (安全性考量),而 Mod 工具則 要 啟用工具建置。
在執行時開啟 PCK 檔¶
匯入 PCK 檔只需要一行程式碼。但請記得,當匯入失敗的時候不會產生錯誤或異常,所以開發人員可能需要再多加一層驗證程式碼。下列範例會假設遊戲執行檔資料夾中有「mod.pck」檔案。該 PCK 檔的根目錄中包含一個「mod_scene.tscn」測試場景。
func _your_function():
# This could fail if, for example, mod.pck cannot be found.
var success = ProjectSettings.load_resource_pack("res://mod.pck")
if success:
# Now one can use the assets as if they had them in the project from the start.
var imported_scene = load("res://mod_scene.tscn")
private void YourFunction()
{
// This could fail if, for example, mod.pck cannot be found.
var success = ProjectSettings.LoadResourcePack("res://mod.pck");
if (success)
{
// Now one can use the assets as if they had them in the project from the start.
var importedScene = (PackedScene)ResourceLoader.Load("res://mod_scene.tscn");
}
}
警告
預設情況下,若匯入的檔案名稱或路徑已存在於專案中,則專案中的檔案會被匯入的檔案給取代。這一點是製作 DLC 或 Mod 時需要注意的 (可以輕鬆通過工具隔離 Mod 指定 Mod 子資料夾來解決此問題)。但,這也是用來為遊戲製作修正檔的一種手段。這種 PCK 檔可以修正現在載入的 PCK 檔中的內容。
若要取消此一行為,請向 ProjectSettings.load_resource_pack() 傳入第二個參數為 false
。
備註
C# 專案,則需要先建置 DLL 並放在專案資料夾中。接著,在載入資源包前必須先這樣載入 DLL: Assembly.LoadFile("mod.dll")
總結¶
本教學說明了如何簡單地給遊戲加上 Mode、修正檔與 DLC。最重要的是該如何計劃發行遊戲未來的內容,以及為此開發一個自定工作流程。Godot 依據開發人員選擇的方法,確保該流程順暢。