Up to date

This page is up to date for Godot 4.2. If you still find outdated information, please open an issue.

Exporter des packs, des patchs, et des mods

Cas d'utilisations

Souvent, on aimerait ajouter des fonctionnalités à son jeu une fois qu'il a été déployé.

En voici quelques exemples...

  • Contenu téléchargeable : la possibilité d'ajouter des fonctionnalités et du contenu à son jeu.

  • Patchs : la possibilité de corriger un bug présent dans un produit livré.

  • Mods : permettre à d'autres personnes de créer du contenu pour son jeu.

Ces outils aident les développeurs à étendre le développement de leur jeu au-delà de la sortie initiale.

Vue d'ensemble des fichiers PCK

Godot permet de faire cela via une fonctionnalité appelée packs de ressources (fichiers PCK, avec l'extension .pck).

Avantages :

  • mises à jour et correctifs incrémentiels

  • proposer des DLCs

  • offrir la prise en charge de mods

  • aucune divulgation du code source nécessaire pour les mods

  • une structure de projet plus modulaire

  • les utilisateurs n'ont pas à remplacer tout le jeu

La première chose à faire pour pouvoir les utiliser est d'exporter et de livrer le projet aux joueurs. Ensuite, lorsque l'on souhaite rajouter des fonctionnalités ou du contenu plus tard, on se contentera de livrer les mises à jours aux utilisateurs via les fichiers PCK.

Les fichiers PCK contiennent généralement, mais ne sont pas limités à :

  • des scripts

  • des scènes

  • nuanceurs

  • des modèles

  • des textures

  • des effets sonores

  • de la musique

  • tout autre ressource susceptible d'être importée dans le jeu

Les fichiers PCK peuvent même être un projet Godot entièrement différent, que le jeu original chargera à l'exécution.

Générer des fichiers 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.

../../_images/export_pck.png

Une autre méthode serait d'exporter depuis la ligne de commande. Si le fichier de sortie se termine par une extension PCK ou ZIP, alors le processus d'exportation compilera ce type de fichier pour la plate-forme choisie.

Note

Si l'on souhaite supporter les mods pour son jeu, il faut que ses utilisateurs créent des fichiers exportés similairement. En supposant que le jeu original s'attend à une certaine structure pour les ressources PCK et/ou une certaine interface pour ses scripts, alors ou bien...

  1. Le développeur doit publier la documentation de ces structures/ interfaces attendues, demander aux moddeurs d'installer Godot Engine, et ces moddeurs devront se conformer à l'API définie dans la documentation lorsqu'ils construiront du contenu moddé pour le jeu (pour qu'il fonctionne). Ils utiliseront alors les outils d'exportations intégrés à Godot pour créer un fichier PCK, comme décrit plus haut.

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

Ouvrir des fichiers PCK à l'exécution

Pour importer un fichier PCK, on utilise un champ dans l'option de projet. L'exemple suivant attend un fichier mod.pck dans le répertoire du binaire du jeu. Le fichier PCK contient un "mod_scene.tscn" à sa racine.

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")

Avertissement

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.

Pour éviter ce comportement, passez false comme deuxième argument à ProjectSettings.load_resource_pack().

Note

Pour un projet C#, vous devez compiler la DLL et la placer dans le répertoire de projet d'abord. Ensuite, avant de charger le paquet de ressource, vous devez charger sa DLL comme suit : Assembly.LoadFile("mod.dll")

Résumé

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.