Système de fichiers

Introduction

Le système de fichier gère la façon dont les assets sont stockés et comment on y accède. Un système bien conçu permet à plusieurs développeurs d’éditer les mêmes fichiers et assets lorsqu’ils collaborent ensembles. Godot stocke toutes les ressources sous forme de fichiers dans son système de fichiers.

Implémentation

Le système de fichier stock ses ressources sur disque. Des scripts aux scènes en passant par les images en PNG sont des ressources pour le moteur. Si une ressource contient des propriétés faisant référence à d’autres ressources sur le disque, le chemin de ces ressources sont également inclus. Si une ressource est constituée d’une sous ressource, elle est sauvegardé en un seul fichier avec toutes ses sous-ressources. Par exemple, une ressource de police est souvent comprise avec une police de caractère.

Le système de fichier de Godot évite d’utiliser des fichiers de métadonnées. Les gestionnaires d’assets existants et les VCS sont tout simplement bien meilleurs que tout ce que nous pouvons mettre en œuvre, alors Godot essaie de jouer au mieux avec SVN, Git, Mercurial, Perforce, etc.

Exemple du contenu d’un système de fichier :

/project.godot
/enemy/enemy.tscn
/enemy/enemy.gd
/enemy/enemysprite.png
/player/player.gd

project.godot

Le fichier project.godot est un fichier de description de projet, et il se trouve toujours à la racine du projet. En faite la localisation définie où la racine se situe. C’est le premier fichier que Godot va regarder quand il ouvre un projet.

Ce fichier contient la configuration du projet en texte brut sous le format win.ini. Même un fichier project.godot vide peut fonctionner comme une définition basique d’un projet vide.

Délimiteur de chemin d’accès (Path delimiter)

Godot supporte uniquement / comment délimiteur de chemin d’accès pour plusieurs raisons. Toutes opérations de système supporte cela, même Windows. Un chemin tel que c:\project\project.godot doit donc être écrit c:/project/project.godot.

Chemin des ressources (Resource path)

Lorsqu’il faut accéder à des ressources, utiliser le système de fichier du système d’exploitation peut être encombrante et non portative. Pour résoudre ce problème, le chemin spécial res:// a été créé.

Le chemin res:// pointera toujours vers la racine du projet (là où project.godot est localisé, ainsi``res://project.godot`` est toujours valide).

Le système de fichier est en lecture-écriture uniquement lorsque le projet est lancé localement de l’éditeur. Lorsqu’il est exporté ou lancé sur des appareils différents (comme des téléphones, consoles, ou lancé d’un DVD), le système de fichier passe en lecture seule et l’écriture n’est plus permise.

Chemin de l’utilisateur (User path)

L’écriture sur le disque reste nécessaire lors de diverses tâches comme la sauvegarde d’une partie ou le téléchargement de contenu additionnel. Pour cela, le moteur assure le fait que le chemin spécial user:// est toujours accessible en écriture.

Système de fichier hôte (Host file system)

Autrement le système de fichier hôte peut également être utilisé. Cependant ce n’est pas recommandé pour un produit commercialisé car il n’est pas garanti que cela fonctionne sur toutes les plates-formes. Toutefois, utiliser un système de fichier hôte peut être utile lors du développement d’outils dans Godot.

Inconvénients

Il y a quelques inconvénients à ce système de fichier. Le premier problème est lorsqu’il s’agit de tourner autour des assets (les renommer, les bouger d’un endroit à un autre dans le projet), cela va casser la référence existante de ces assets. Ces références devront être redéfinie du point de leur nouvelle position.

Pour éviter ça, faites tous vos changement à l’intérieur de godot, dans l’emplacement du système de fichier. Ne jamais modifier un asset en dehors de Godot, sinon les dépendances devront être effectuées manuellement (Godot détecte ça et vous aides à le faire quand même, mais pourquoi prendre le chemin compliqué ?).

Le second est que sous Windows et macOS, les fichiers et les chemins d’accès ne sont pas sensible à la casse. Si un développeur travaille dans un environnement non sensible à la casse et sauvegarde un asset « monfichier.PNG », mais le référence à « monfichier.png », cela marchera sur sa plateforme, mais pas sur d’autres plateforme tel que Linux, Android, etc. Cela peut également s’appliquer sur les fichiers binaires exportés, qui utilisent un paquet compressé pour stocker tous les fichiers.

Il est recommandé à votre équipe de définir clairement une convention pour le nommage des fichier quand elle travaille avec Godot ! Une convention simple et infaillible est de n’autoriser que les minuscules pour les noms de fichiers et de chemins.