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

Pour regrouper toutes les ressources d'un projet dans un fichier PCK, ouvrez le projet, allez dans Projet/Exportation et cliquez sur "Exporter PCK/Zip". Assurez-vous également d'avoir sélectionné un modèle d'exportation.

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

Par défaut, si vous importez un fichier avec le même chemin d'accès/nom de fichier que celui que vous avez déjà dans votre projet, le fichier importé le remplacera. C'est quelque chose à surveiller lors de la création de DLC ou de mods (résolu facilement avec un outil isolant les mods vers un sous-dossier mods spécifique). Cependant, c'est aussi un moyen de créer des patches pour son propre jeu. Un fichier PCK de ce type peut fixer le contenu d'un PCK déjà chargé.

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é

Ce tutoriel devrait illustrer à quel point il est facile d'ajouter des mods, patches ou DLC à un jeu. La chose la plus importante est d'identifier comment on prévoit de distribuer le contenu futur de son jeu et de développer un flux de travail personnalisé à cette fin. Godot devrait faciliter ce processus, quelle que soit la voie empruntée par un développeur.