Attention: Here be dragons

This is the latest (unstable) version of this documentation, which may document features not available in or compatible with released stable versions of Godot.

Exporter des projets

Pourquoi exporter ?

A l'origine, Godot n'avait aucun moyen d'exporter des projets. Les développeurs compilaient les binaires appropriés et construisaient les paquets pour chaque plate-forme manuellement.

Lorsque plus de développeurs (et même des non-programmeurs) ont commencé à l'utiliser, et quand notre société a commencé à prendre plus de projets en même temps, il est devenu évident qu'il s'agissait d'un goulot d'étranglement.

Sur PC

Distribuer un projet de jeu sur PC avec Godot est assez facile. Déposez le binaire Godot dans le même répertoire que le fichier project.godot, puis compressez le répertoire du projet et vous avez terminé.

Cela semble simple, mais il y a probablement quelques raisons pour lesquelles un développeur peut ne pas vouloir le faire. La première est qu'il peut ne pas être souhaitable de distribuer des quantités de fichiers. Certains développeurs peuvent ne pas aimer que les utilisateurs curieux jettent un coup d'œil à la façon dont le jeu a été créé, d'autres peuvent simplement le trouver inélégant, etc. Une autre raison est que le développeur peut préférer un binaire spécialement compilé, qui est de taille plus petite, plus optimisé et n'inclut pas d'outils comme l'éditeur et le débogueur.

Enfin, Godot dispose d'un système simple mais efficace pour créer des DLC en tant que fichiers de paquetage supplémentaires.

Sur mobile

Le même scénario sur les plates-formes mobiles est légèrement pire. Pour distribuer un projet sur ces appareils, un binaire pour chacune de ces plates-formes est construit, puis ajouté à un projet natif avec les données du jeu.

Cela peut être gênant car cela signifie que le développeur doit se familiariser avec le SDK de chaque plate-forme avant même de pouvoir exporter. Bien que l'apprentissage de chaque SDK soit toujours encouragé, il peut être frustrant d'être forcé de le faire à un moment non désiré.

There is also another problem with this approach: different devices prefer some data in different formats to run. The main example of this is texture compression. All PC hardware uses S3TC (BC) compression and that has been standardized for more than a decade, but mobile devices use different formats for texture compression, such as ETC1 and ETC2.

Menu d'exportation

Après de nombreuses tentatives de différents flux d'exportation, le flux actuel s'est avéré être le plus efficace. Au moment d'écrire ces lignes, toutes les plates-formes ne sont pas encore prises en charge, mais les plates-formes prises en charge continuent de croître.

Pour ouvrir le menu d'exportation, cliquez sur le bouton Exporter :

../../_images/export.webp

Le menu d'exportation s'ouvrira, mais il sera complètement vide. C'est parce que nous avons besoin d'ajouter un préréglage d'exportation.

../../_images/export_dialog.webp

Pour créer un préréglage d'exportation, cliquez sur le bouton Ajouter... en haut du menu d'exportation. Cela ouvrira une liste déroulante de plates-formes parmi lesquelles choisir pour un préréglage d'exportation.

../../_images/export_preset.webp

Les options par défaut sont souvent suffisantes pour l'exportation, il n'est donc pas nécessaire de les modifier. Cependant, de nombreuses plates-formes nécessitent l'installation d'outils supplémentaires (SDK) pour pouvoir exporter. De plus, Godot a besoin de modèles d'exportation installés pour créer des paquets. Le menu d'exportation se plaindra lorsqu'il manque quelque chose et ne permettra pas à l'utilisateur d'exporter pour cette plate-forme tant que cela ne sera pas résolu :

../../_images/export_error.webp

À ce moment-là, l'utilisateur doit revenir à la documentation et suivre les instructions sur la façon de configurer correctement cette plate-forme.

The buttons at the bottom of the menu allow you to export the project in a few different ways:

  • Export All: Export the project as a playable build (Godot executable and project data) for all the presets defined. All presets must have an Export Path defined for this to work.

  • Export Project: Export the project as a playable build (Godot executable and project data) for the selected preset.

  • Export PCK/ZIP: Export the project resources as a PCK or ZIP package. This is not a playable build, it only exports the project data without a Godot executable.

Exporter des modèles

En dehors de la configuration de la plate-forme, les modèles d'exportation doivent être installés pour pouvoir exporter des projets. Ils peuvent être obtenus sous la forme d'un fichier .tpz (un fichier .zip renommé) à partir de la page de téléchargement du site Web.

Une fois téléchargés, ils peuvent être installés à l'aide de l'option Installer des modèles d'export dans l'éditeur :

../../_images/export_templates.webp

Options de ressources

When exporting, Godot makes a list of all the files to export and then creates the package. There are 5 different modes for exporting:

  • Exporter toutes les ressources du projet

  • Exporter les scènes sélectionnées (y compris les dépendances)

  • Exporter les ressources sélectionnées (y compris les dépendances)

  • Export all resources in the project except resources checked below

  • Export as dedicated server

../../_images/export_resources.webp

Exporter toutes les ressources du projet exportera toutes les ressources du projet. Exporter les scènes sélectionnées et Exporter les ressources sélectionnées vous donne une liste des scènes ou des ressources du projet, et vous devez sélectionner chaque scène ou ressource que vous souhaitez exporter.

../../_images/export_selected.webp

Export all resources in the project except resources checked below does exactly what it says, everything will be exported except for what you select in the list.

Export as dedicated server will remove all visuals from a project and replace them with a placeholder. This includes Cubemap, CubemapArray, Material, Mesh, Texture2D, Texture2DArray, Texture3D. You can also go into the list of files and specify specific visual resources that you do wish to keep.

Note

Les fichiers et dossiers dont le nom commence par un point ne seront jamais inclus dans le projet exporté. Ceci est fait pour empêcher les dossiers de contrôle de version comme .git d'être inclus dans le fichier PCK exporté.

Below the list of resources are two filters that can be setup. The first allows non-resource files such as .txt, .json and .csv to be exported with the project. The second filter can be used to exclude every file of a certain type without manually deselecting every one. For example, .png files.

Fichiers de configuration

The export configuration is stored in two files that can both be found in the project directory:

  • export_presets.cfg: This file contains the vast majority of the export configuration and can be safely committed to version control. There is nothing in here that you would normally have to keep secret.

  • .godot/export_credentials.cfg: This file contains export options that are considered confidential, like passwords and encryption keys. It should generally not be committed to version control or shared with others unless you know exactly what you are doing.

Since the credentials file is usually kept out of version control systems, some export options will be missing if you clone the project to a new machine. The easiest way to deal with this is to copy the file manually from the old location to the new one.

Exporter à partir de la ligne de commande

In production, it is useful to automate builds, and Godot supports this with the --export-release and --export-debug command line parameters. Exporting from the command line still requires an export preset to define the export parameters. A basic invocation of the command would be:

godot --export-release "Windows Desktop" some_name.exe

Ceci exportera vers some_name.exe en supposant qu'il existe un preset nommé "Windows Desktop" et que le modèle puisse être trouvé. (Le nom du preset d'exportation doit être écrit entre guillemets s'il contient des espaces ou des caractères spéciaux) Le chemin de sortie est relatif au chemin du projet ou absolu, il ne prend pas en compte le répertoire d'où la commande est appelée.

L'extension du fichier de sortie devrait correspondre à celui défini lors du processus d'exportation de Godot :

  • Windows : .exe

  • macOS: .app or .zip (or .dmg when exporting from macOS)

  • Linux : Tous les extensions (même aucune). .x86_64 est souvent utilisé pour les binaires x86 en 64 bits.

  • HTML5 : .zip

  • Android : .apk

  • iOS : .zip

Vous pouvez également le configurer pour exporter seulement le fichier PCK ou ZIP, ce qui permet d'utiliser un seul fichier pack principal exporté avec plusieurs exécutables Godot. Dans ce cas, l' export preset doit toujours être spécifié sur la ligne de commande :

godot --export-pack "Windows Desktop" some_name.pck

It is often useful to combine the --export-release flag with the --path flag, so that you do not need to cd to the project folder before running the command:

godot --path /path/to/project --export-release "Windows Desktop" some_name.exe

Voir aussi

Voir Tutoriel de ligne de commande pour plus d'informations sur l'utilisation de Godot depuis la ligne de commande.

Formats de fichiers PCK contre ZIP pack

Chaque format a ses avantages et ses inconvénients. PCK est le format par défaut et recommandé pour la plupart des cas d'utilisation, mais vous pouvez utiliser une archive ZIP à la place selon vos besoins.

Format PCK :

  • Format non compressé. Taille de fichier plus importante, mais plus rapide à lire/écrire.

  • Non lisible et éditable à l'aide d'outils normalement présents sur le système d'exploitation de l'utilisateur, même s'il existe des outils tiers pour extraire et créer des fichiers PCK.

Format ZIP :

  • Format compressé. Taille de fichier plus petite, mais plus lent à lire/écrire.

  • Lisible et éditable à l'aide d'outils normalement présents sur le système d'exploitation de l'utilisateur. Cela peut être utile pour faciliter le modding (voir aussi Exporter des packs, des patchs, et des mods).

Avertissement

Due to a known bug, when using a ZIP file as a pack file, the exported binary will not try to use it automatically. Therefore, you have to create a launcher script that the player can double-click or run from a terminal to launch the project:

:: launch.bat (Windows)
@echo off
my_project.exe --main-pack my_project.zip

# launch.sh (Linux)
./my_project.x86_64 --main-pack my_project.zip

Sauvegardez le script de lancement et placez-le dans le même dossier que le binaire exporté. Sous Linux, assurez-vous de donner les droits d'exécution au script de lancement en utilisant la commande chmod +x launch.sh.