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 ensemble. Godot stocke toutes les assets sous forme de fichiers dans son système de fichiers.

Implémentation

Le système de fichier stock ses ressources sur le disque. Des scripts aux scènes en passant par les images en PNG, tous 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 le fichier de description du projet, et il se trouve toujours à la racine du projet. En faite sa 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, au 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 ne prend en charge que / comme délimiteur de chemin. Cela est fait pour des raisons de portabilité. Tous les systèmes d'exploitation le prennent en charge, même Windows, donc un chemin tel que C:\project\project.godot doit être saisie sous la forme C:/project/project.godot.

Chemin des ressources (Resource path)

Lors de l'accès aux ressources, l'utilisation du système de fichiers du système d'exploitation hôte peut être lourde et non portable. Pour résoudre ce problème, le chemin d'accès spécial res:// a été créé.

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

Le système de fichier est en lecture-écriture uniquement lorsque le projet est lancé localement depuis l'éditeur. Lorsqu'il est exporté ou lancé sur différents appareils (comme des téléphones, consoles, ou lancé depuis 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 est toujours nécessaire pour des tâches telles que la sauvegarde de l'état du jeu ou le téléchargement de packs de contenu. À cette fin, le moteur s'assure qu'il existe un chemin spécial user:// qui est toujours accessible en écriture. Ce chemin se résout différemment selon le système d'exploitation sur lequel le projet s'exécute. La résolution du chemin local est expliquée plus en détail dans Chemins de données.

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

Il est également possible d'utiliser des chemins de système de fichiers hôtes. Cependant ce n'est pas recommandé pour un produit commercialisé car il n'est pas garanti que cela fonctionne sur toutes les plates-formes. Cependant, l'utilisation de chemins de système de fichiers hôtes peut être utile lors de l'écriture d'outils de développement dans Godot.

Inconvénients

Ce design simple de système de fichiers présente quelques inconvénients. Le premier problème est lorsqu'il s'agit de bouger des assets (les renommer, les bouger d'un endroit à un autre dans le projet), cela va casser les références existantes à ces assets. Ces références devront être redéfinies pour pointer vers le nouvel emplacement de l'asset.

Pour éviter cela, effectuez toutes vos opérations de déplacement, de suppression et de renommage depuis Godot, dans le dock du système de fichiers. Ne déplacez jamais des assets depuis l'extérieur de Godot, ou les dépendances devront être réparées manuellement (Godot détecte cela et vous aide à les réparer de toute façon, mais pourquoi se compliquer la vie ?).

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 myfile.PNG, mais le référence comme myfile.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.