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
  • des shaders
  • 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. Le développeur utilise Godot pour construire un outil GUI permettant d’ajouter leur contenu API exact à un projet. Cet outil Godot doit soit fonctionner sur une version du moteur compatible avec les outils, soit avoir accès à un outil (distribué à côté ou peut-être dans les fichiers du jeu original). L’outil peut alors utiliser l’exécutable Godot pour exporter un fichier PCK depuis la ligne de commande avec OS.execute(). Il est le plus logique pour le jeu de ne pas utiliser outil de construction (pour des raisons de sécurité) et pour les outils de modding utiliser un build de moteur compatible.

Ouvrir des fichiers PCK à l’exécution

Pour importer un fichier PCK, on utilise une ligne unique. Gardez à l’esprit qu’il n’y a pas d’erreur ou d’exception si l’importation échoue. Au lieu de cela, on pourrait avoir à créer un code de validation comme un calque dessus. L’exemple suivant attend un fichier « mod.pck » dans le répertoire de l’exécutable du jeu. Le fichier PCK contient une scène de test « mod_scene.tscn » à la racine.

func _your_function():
    ProjectSettings.load_resource_pack("res://mod.pck")
    # 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()
{
    ProjectSettings.LoadResourcePack("res://mod.pck");
    // 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");
}

Avertissement

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

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.