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

Guide de style

Par souci de cohérence entre les projets, nous recommandons de suivre ces lignes directrices :

  • Utilisez snake_case pour les noms de dossiers et de fichiers (à l'exception des scripts C#). Cela permet d'éviter les problèmes de sensibilité à la casse qui peuvent survenir après l'exportation d'un projet sous Windows. Les scripts C# sont une exception à cette règle, car la convention est de les nommer d'après le nom de la classe qui doit être en PascalCase.
  • Utilisez PascalCase pour les noms de nœud, car cela correspond à la casse des nœuds intégrés.
  • En général, gardez les ressources tierces dans un dossier de haut niveau addons/, même s'il ne s'agit pas de plugins d'éditeur. Cela facilite le suivi des fichiers tiers. Il y a quelques exceptions à cette règle ; par exemple, si vous utilisez des ressources de jeu tierces pour un personnage, il est plus logique de les inclure dans le même dossier que les scènes et les scripts du personnage.

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