Up to date

This page is up to date for Godot 4.2. If you still find outdated information, please open an issue.

Sistema de archivos

Introducción

El sistema de archivos gestiona cómo se almacenan los recursos y cómo se accede a éstos. Un sistema de archivos bien diseñado también permite a varios desarrolladores editar los mismos archivos y recursos de origen mientras colaboran entre sí. Godot guarda todos los recursos como archivos en su sistema de archivos.

Implementación

El sistema de archivos almacena recursos en el disco. Cualquier cosa, desde un guión hasta una escena o una imagen PNG es un recurso para el motor. Si un recurso contiene propiedades que hacen referencia a otros recursos en el disco, también se incluyen las rutas a esos recursos. Si un recurso tiene subrecursos incorporados, el recurso se graba en un único fichero junto con todos los subrecursos concatenados. Por ejemplo, un recurso de fuente a menudo se agrupa junto con las texturas de fuente.

The Godot file system avoids using metadata files. Existing asset managers and VCSs are better than anything we can implement, so Godot tries its best to play along with Subversion, Git, Mercurial, etc.

Ejemplo del contenido del sistema de archivos:

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

project.godot

El archivo project.godot es el archivo de descripción del proyecto, y siempre se encuentra en la raíz del proyecto. De hecho, su ubicación define dónde está la raíz. Este es el primer archivo que Godot busca al abrir un proyecto.

Este archivo contiene la configuración del proyecto en texto plano, usando el formato win.ini. Incluso un project.godot vacío puede funcionar como una definición básica de un proyecto en blanco.

Delimitador de ruta

Godot sólo admite / como delimitador de ruta. Esto se hace por razones de portabilidad. Todos los sistemas operativos soportan esto, incluso Windows, así que una ruta como C:\project\project.godot necesita ser escrita como C:/project/project.godot.

Ruta del recurso

Cuando se accede a los recursos, utilizar el formato del sistema de archivos del SO host puede resultar complicado y no ser portable. Para resolver este problema, se creó la ruta especial `res://.

La ruta res:// siempre apuntará a la raíz del proyecto (donde se encuentra el project.godot, por lo que de hecho res://project.godot siempre es válido).

Este sistema de archivos es de lectura-escritura sólo cuando se ejecuta el proyecto localmente desde el editor. Cuando se exporta o cuando se ejecuta en diferentes dispositivos (como teléfonos o consolas, o cuando se ejecuta desde un DVD), el sistema de archivos se convertirá en sólo lectura y la escritura ya no estará permitida.

Ruta de usuario

La escritura en disco sigue siendo necesaria para tareas como guardar el estado del juego o descargar paquetes de contenido. Para este fin, el motor se asegura de que la ruta especial user:// existe y es siempre escribible. Esta ruta es distinta dependiendo del SO en el que el proyecto está siendo ejecutado. La resolución de la ruta local está explicada en Rutas de archivo en proyectos de Godot.

Sistema de archivos del host

De forma alternativa, también se pueden utilizar las rutas del sistema de archivos del host, pero esto no se recomienda para un producto publicado, ya que no se garantiza que estas rutas funcionen en todas las plataformas. Sin embargo, usar las rutas del sistema de archivos del host puede ser útil cuando se escriben herramientas de desarrollo en Godot.

Inconvenientes

There are some drawbacks to this file system design. The first issue is that moving assets around (renaming them or moving them from one path to another inside the project) will break existing references to these assets. These references will have to be re-defined to point at the new asset location.

Para evitar esto, realiza todas tus operaciones de mover, borrar y renombrar desde Godot, en el panel de Sistema de Archivos. Nunca muevas recursos desde fuera de Godot, o las dependencias tendrán que ser arregladas manualmente (Godot detecta esto y te ayuda a arreglarlas de todos modos, pero ¿por qué ir por el camino difícil?).

La segunda es que bajo Windows y macOS los nombres de archivos y rutas no distinguen entre mayúsculas y minúsculas. Si un desarrollador que trabaja en un sistema de archivos insensible a mayúsculas guarda un recurso como "myfile.PNG", pero luego se refiere a él como "myfile.png", funcionará bien en su plataforma, pero no en otras plataformas, como Linux, Android, etc. Esto también puede aplicarse a los binarios exportados, que utilizan un paquete comprimido para almacenar todos los archivos.

It is recommended that your team clearly define a naming convention for files when working with Godot. One fool-proof convention is to only allow lowercase file and path names.