Organisation du projet

Introduction

Comme Godot n’a aucune restriction sur la structure du projet ou l’utilisation du système de fichiers, l’organisation des fichiers lors de l’apprentissage du moteur peut sembler difficile. Ce tutoriel propose un workflow qui devrait être un bon point de départ. Nous couvrirons également l’utilisation du contrôle de version avec Godot.

Organisation

Godot dans sa nature est un système de scène et utilise le système de fichiers tel quel, sans métadonnées ni base de données d’asset.

Contrairement à d’autres moteurs, beaucoup de ressources sont contenues dans la scène même, pour que la quantité de fichiers dans le système de fichier soit considérablement réduite.

Compte tenu de cela, l’approche la plus courante consiste à regrouper les assets à proximité des scènes, car lorsqu’un projet se développe, cette approche le rend plus facile à gérer.

A titre d’exemple, vous pouvez généralement placer dans un seul dossier vos assets de base, telles que les images de sprite, les maillages de modèles 3D, les matériaux, la musique, etc. Ils peuvent ensuite utiliser un dossier séparé pour stocker les niveaux construits qui les utilisent.

/project.godot
/docs/.gdignore  # See "Ignoring specific folders" below
/docs/learning.html
/models/town/house/house.dae
/models/town/house/window.png
/models/town/house/door.png
/characters/player/cubio.dae
/characters/player/cubio.png
/characters/enemies/goblin/goblin.dae
/characters/enemies/goblin/goblin.png
/characters/npcs/suzanne/suzanne.dae
/characters/npcs/suzanne/suzanne.png
/levels/riverdale/riverdale.scn

Style guide

For consistency across projects, we recommend following these guidelines:

  • Use snake_case for folder and file names (with the exception of C# scripts). This sidesteps case sensitivity issues that can crop up after exporting a project on Windows. C# scripts are an exception to this rule, as the convention is to name them after the class name which should be in PascalCase.
  • Use PascalCase for node names, as this matches built-in node casing.
  • In general, keep third-party resources in a top-level addons/ folder, even if they aren’t editor plugins. This makes it easier to track which files are third-party. There are some exceptions to this rule; for instance, if you use third-party game assets for a character, it makes more sense to include them within the same folder as the character scenes and scripts.

Importation

Godot, dans les versions antérieures à la 3.0, réalisait le processus d’importation depuis des fichiers extérieurs au projet. Bien que cela puisse être utile pour des gros projets, cela a entraîné des problèmes d’organisation pour la plupart des développeurs.

Pour cette raison, les assets sont maintenant importées de manière transparente à partir du dossier du projet.

Ignorer des dossiers spécifiques

Pour empêcher Godot d’importer des fichiers contenus dans un dossier spécifique, créez un fichier vide appelé .gdignore dans le dossier (le premier . est requis). Ceci peut être utile pour accélérer l’importation initiale du projet.

Note

Pour créer un fichier dont le nom commence par un point sur Windows, vous pouvez utiliser un éditeur de texte tel que Notepad++ ou utiliser la commande suivante dans une invite de commande : type nul > .gdignore

Une fois le dossier ignoré, les ressources de ce dossier ne peuvent plus être chargées en utilisant les méthodes load() et preload().

Ignorer un dossier le cachera aussi automatiquement du dock FileSystem, ce qui peut être utile pour réduire l’encombrement.

Sensibilité à la casse

Les versions Windows et MacOS récentes utilisent par défaut des systèmes de fichiers insensibles à la casse, tandis que les distributions Linux utilisent par défaut un système de fichiers sensible à la casse. Cela peut causer des problèmes après l’exportation d’un projet, puisque le système de fichiers virtuel PCK de Godot est sensible à la casse. Pour éviter cela, il est recommandé de s’en tenir au nommage snake_case pour tous les fichiers du projet (et les caractères minuscules en général).

Note

Vous pouvez enfreindre cette règle lorsque les guides de style disent le contraire (comme le guide de style C#). Néanmoins, soyez cohérent pour éviter les erreurs.

Sous Windows 10, pour éviter les erreurs liées à la sensibilité à la casse, vous pouvez également rendre le dossier du projet sensible à la casse. Après avoir activé la fonction Sous-système Windows pour Linux, exécutez la commande suivante dans une fenêtre PowerShell :

# To enable case-sensitivity:
fsutil file setcasesensitiveinfo <path to project folder> enable

# To disable case-sensitivity:
fsutil file setcasesensitiveinfo <path to project folder> disable

Si vous n’avez pas activé le sous-système Windows pour Linux, vous pouvez entrer la ligne suivante dans une fenêtre PowerShell en tant qu’administrateur puis redémarrer lorsque l’on vous le demande :

Enable-WindowsOptionalFeature -Online -FeatureName Microsoft-Windows-Subsystem-Linux