Up to date
This page is up to date for Godot 4.2
.
If you still find outdated information, please open an issue.
Export balíčků, záplat a modů¶
Případy použití¶
Často se stává, že by člověk chtěl do své hry přidat funkce až po jejím vydání.
Příkladem může být...
Stahovatelný obsah: možnost přidávat do hry funkce a obsah.
Záplaty: možnost opravit chybu, která se vyskytuje v dodaném produktu.
Módy: umožňují ostatním lidem vytvářet obsah pro hru.
Tyto nástroje pomáhají vývojářům rozšířit jejich vývoj nad rámec původního vydání.
Přehled souborů PCK¶
Godot to umožňuje pomocí funkce nazvané resource packs (soubory PCK s příponou .pck
).
Výhody:
přírůstkové aktualizace/záplaty
nabízejí DLC
nabídka podpory modů
pro modifikace není třeba zveřejňovat zdrojový kód
modulárnější struktura projektu
uživatelé nemusí nahrazovat celou hru
První část jejich použití zahrnuje export a doručení projektu hráčům. Když pak někdo chce později přidat funkce nebo obsah, stačí uživatelům dodat aktualizace prostřednictvím souborů PCK.
Soubory PCK obvykle obsahují mimo jiné:
skripty
scény
shadery
modely
textury
zvukové efekty
hudbu
jakýkoli jiný zdroj vhodný pro import do hry
Soubory PCK mohou být dokonce zcela odlišným projektem Godot, který se za běhu načte do původní hry.
Generování souborů PCK¶
In order to pack all resources of a project into a PCK file open the project and go to Project/Export and click on "Export PCK/Zip". Also make sure to have an export template selected while doing so.
Další metodou je export z příkazového řádku. Pokud výstupní soubor končí příponou PCK nebo ZIP, pak proces exportu vytvoří tento typ souboru pro zvolenou platformu.
Poznámka
Pokud chce někdo ve svojí hře podporovat mody, bude potřebovat, aby jeho uživatelé podobně vytvářelii exportované soubory. Za předpokladu, že původní hra očekává určitou strukturu zdrojů PCK a/nebo určité rozhraní pro své skripty, pak buď...
Vývojář musí zveřejnit dokumentaci těchto očekávaných struktur/rozhraní, očekávat, že si moddeři nainstalují Godot Engine, a pak také očekávat, že se tito moddeři budou při vytváření obsahu modifikací pro hru řídit API definovaným v dokumentaci (aby fungovala). Uživatelé by pak k vytvoření souboru PCK použili nástroje pro export zabudované v Godotu, jak je popsáno výše.
The developer uses Godot to build a GUI tool for adding their exact API content to a project. This Godot tool must either run on a tools-enabled build of the engine or have access to one (distributed alongside or perhaps in the original game's files). The tool can then use the Godot executable to export a PCK file from the command line with OS.execute(). The game itself shouldn't use a tool-build of the engine (for security), so it's best to keep the modding tool and game separate.
Otevírání souborů PCK za běhu¶
K importu souboru PCK se používá singleton ProjectSettings. Následující příklad očekává soubor "mod.pck" v adresáři spustitelného souboru hry. Soubor PCK obsahuje v kořenovém adresáři testovací scénu "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");
}
}
Varování
By default, if you import a file with the same file path/name as one you already have in your project, the imported one will replace it. This is something to watch out for when creating DLC or mods. You can solve this problem by using a tool that isolates mods to a specific mods subfolder. However, it is also a way of creating patches for one's own game. A PCK file of this kind can fix the content of a previously loaded PCK.
Chcete-li toto chování zrušit, předejte jako druhý argument příkazu ProjectSettings.load_resource_pack().
Poznámka
V případě projektu v jazyce C# je třeba nejprve sestavit knihovnu DLL a umístit ji do adresáře projektu. Poté je třeba před načtením balíčku zdroje načíst jeho knihovnu DLL takto: Assembly.LoadFile("mod.dll")
Shrnutí¶
This tutorial explains how to add mods, patches, or DLC to a game. The most important thing is to identify how one plans to distribute future content for their game and develop a workflow that is customized for that purpose. Godot should make that process smooth regardless of which route a developer pursues.