|
@@ -18,11 +18,11 @@ Examples of this include...
|
|
|
These tools help developers to extend their development beyond the initial
|
|
|
release.
|
|
|
|
|
|
-Overview of \*.pck files
|
|
|
-------------------------
|
|
|
+Overview of PCK files
|
|
|
+---------------------
|
|
|
|
|
|
-Godot enables this via a feature called **resource packs**
|
|
|
-(\*.pck files).
|
|
|
+Godot enables this via a feature called **resource packs** (PCK files,
|
|
|
+with extension ``.pck``).
|
|
|
|
|
|
**Advantages:**
|
|
|
|
|
@@ -35,9 +35,9 @@ Godot enables this via a feature called **resource packs**
|
|
|
|
|
|
The first part of using them involves exporting and delivering the project to
|
|
|
players. Then, when one wants to add functionality or content later on, they
|
|
|
-just deliver the updates via \*.pck file to the users.
|
|
|
+just deliver the updates via PCK files to the users.
|
|
|
|
|
|
-\*.pck files usually contain, but are not limited to:
|
|
|
+PCK files usually contain, but are not limited to:
|
|
|
|
|
|
- scripts
|
|
|
- scenes
|
|
@@ -48,51 +48,51 @@ just deliver the updates via \*.pck file to the users.
|
|
|
- music
|
|
|
- any other asset suitable for import into the game
|
|
|
|
|
|
-The \*.pck files can even be an entirely different Godot project, which the
|
|
|
+The PCK files can even be an entirely different Godot project, which the
|
|
|
original game loads in at runtime.
|
|
|
|
|
|
-Generating \*.pck files
|
|
|
------------------------
|
|
|
+Generating PCK files
|
|
|
+--------------------
|
|
|
|
|
|
-In order to pack all resources of a project into a \*.pck file open the project
|
|
|
+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.
|
|
|
|
|
|
.. image:: img/export_pck.png
|
|
|
|
|
|
-Another method would be to `export from the command line
|
|
|
-<https://docs.godotengine.org/en/latest/getting_started/editor/command_line_tutorial.html#exporting>`_.
|
|
|
-If the output file ends with a \*.pck or \*.zip file extension, then the export
|
|
|
+Another method would be to :ref:`export from the command line <doc_command_line_tutorial_exporting>`.
|
|
|
+If the output file ends with a PCK or ZIP file extension, then the export
|
|
|
process will build that type of file for the chosen platform.
|
|
|
|
|
|
.. note::
|
|
|
- If one wishes to support mods for their game, they will need their users to
|
|
|
- create similarly exported files. Assuming the original game expects a
|
|
|
- certain structure for the \*.pck's resources and/or a certain interface for
|
|
|
- its scripts, then either...
|
|
|
-
|
|
|
- 1. The developer must publicize documentation of these expected structures/
|
|
|
- interfaces, expect modders to install Godot Engine, and then also expect
|
|
|
- those modders to conform to the documentation's defined API when building
|
|
|
- mod content for the game (so that it will work). Users would then use
|
|
|
- Godot's built in exporting tools to create a \*.pck file, as detailed
|
|
|
- above.
|
|
|
- 2. 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
|
|
|
- :ref:`OS.execute <class_OS_execute>`. It makes the most sense for the
|
|
|
- game to not use a tool-build though (for security) and for the modding
|
|
|
- tools to *do* use a tool-enabled engine build.
|
|
|
-
|
|
|
-Opening \*.pck files at runtime
|
|
|
--------------------------------
|
|
|
-
|
|
|
-To import a \*.pck file, one uses a one-liner. Keep in mind, there is no
|
|
|
+
|
|
|
+ If one wishes to support mods for their game, they will need their users to
|
|
|
+ create similarly exported files. Assuming the original game expects a
|
|
|
+ certain structure for the PCK's resources and/or a certain interface for
|
|
|
+ its scripts, then either...
|
|
|
+
|
|
|
+ 1. The developer must publicize documentation of these expected structures/
|
|
|
+ interfaces, expect modders to install Godot Engine, and then also expect
|
|
|
+ those modders to conform to the documentation's defined API when building
|
|
|
+ mod content for the game (so that it will work). Users would then use
|
|
|
+ Godot's built in exporting tools to create a PCK file, as detailed
|
|
|
+ above.
|
|
|
+ 2. 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
|
|
|
+ :ref:`OS.execute <class_OS_execute>`. It makes the most sense for the
|
|
|
+ game to not use a tool-build though (for security) and for the modding
|
|
|
+ tools to *do* use a tool-enabled engine build.
|
|
|
+
|
|
|
+Opening PCK files at runtime
|
|
|
+----------------------------
|
|
|
+
|
|
|
+To import a PCK file, one uses a one-liner. Keep in mind, there is no
|
|
|
error or exception if the import fails. Instead, one might have to create some
|
|
|
validation code as a layer on top. The following example expects a “mod.pck”
|
|
|
-file in the directory of the games executable. The \*.pck file contains a
|
|
|
+file in the directory of the games executable. The PCK file contains a
|
|
|
“mod_scene.tscn” test scene in its root.
|
|
|
|
|
|
.. tabs::
|
|
@@ -113,11 +113,12 @@ file in the directory of the games executable. The \*.pck file contains a
|
|
|
}
|
|
|
|
|
|
.. warning::
|
|
|
- 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 (solved easily with a tool isolating 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.
|
|
|
+
|
|
|
+ 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 (solved easily with a tool isolating 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.
|
|
|
|
|
|
Summary
|
|
|
-------
|
|
@@ -126,4 +127,4 @@ This tutorial should illustrate how easy adding mods, patches or DLC to a game
|
|
|
is. 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.
|
|
|
+developer pursues.
|