Up to date

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

Organización del proyecto

Introducción

Como Godot no tiene restricciones en la estructura del proyecto o el uso del sistema de archivos, organizar los archivos mientras se aprende a usar el motor puede ser exigente. Este tutorial sugiere un modo de trabajo que será bueno como punto de partida. También se cubre el caso de control de versiones con Godot.

Organización

Godot es basado en escenas por naturaleza, y usa el sistema de archivos como tal, sin metadatos o una base de datos de recursos.

A diferencia de otros motores, muchos recursos son contenidos en la escena misma, así que la cantidad de archivos es considerablemente menor.

Considerando eso, el enfoque más común es agrupar los recursos cerca de las escenas así, cuando el proyecto crece, se hace más manejable.

Como ejemplo, normalmente puedes ubicar en una sola carpeta los recursos básicos, como imágenes, mallas de modelos 3D, materiales, música, etc. y utilizar una carpeta separada para almacenar los niveles construidos que los usan.

/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

Guía de estilo

Para que haya coherencia entre los proyectos, recomendamos seguir estas directrices:

  • Usa snake_case para los nombres de carpetas y archivos (con la excepción de los scripts C#). Esto evita los problemas de sensibilidad a las mayúsculas y minúsculas que pueden surgir después de exportar un proyecto a Windows. Los scripts de C# son una excepción a esta regla, ya que la convención es nombrarlos después del nombre de la clase que debe estar en PascalCase.

  • Usa PascalCase para los nombres de los nodos, ya que esto coincide con la carcasa del nodo incorporado.

  • En general, mantenga los recursos de terceros en una carpeta addons/ de nivel superior, aunque no sean plugins de edición. Esto facilita el seguimiento de los archivos de terceros. Hay algunas excepciones a esta regla; por ejemplo, si utilizas recursos de juego de terceros para un personaje, tiene más sentido incluirlos dentro de la misma carpeta que las escenas y los scripts del personaje.

Importando

La versión de Godot anterior a la 3.0 hacía el proceso de importación de archivos fuera del proyecto. Aunque esto puede ser útil en proyectos de gran tamaño, ha resultado ser una molestia en la organización del proyecto para la mayoría de los desarrolladores.

A razón de esto, los recursos ahora son importados desde dentro de la carpeta del proyecto, transparentemente.

Ignorando carpetas específicas

Para evitar que Godot importe archivos contenidos en una carpeta específica, cree un archivo vacío llamado .gdignore en la carpeta (se requiere el `` .`` inicial). Esto puede ser útil para acelerar la importación inicial del proyecto.

Nota

Para crear un archivo que inicia con punto en Windows, coloca un punto al inicio y al final del archivo (".gdignore."). Windows removerá automaticamente el punto al final cuando confirmes el nombre.

Para crear un archivo cuyo nombre empiece con un punto en Windows, puedes usar un editor de texto como Notepad++ o usar el siguiente comando en el símbolo del sistema: type nul > .gdignore

Una vez que se ignora una carpeta, los recursos en esa carpeta ya no se pueden cargar utilizando los métodos load() y preload(). Ignorar una carpeta también la ocultará automáticamente en el panel del Sistema de Archivos (FileSystem dock), lo cual puede ser útil para reducir el desorden.

Cabe destacar que el contenido del archivo .gdignore es ignorado, por lo que este archivo debe estar vacío. No admite patrones como lo hacen los archivos .gitignore.

Sensibilidad a mayúsculas

Windows y recientes versiones de macOS usan sistemas de archivos no sensibles a mayúsculas por defecto, mientras que las distribuciones Linux usan un sistema de archivos sensible a mayúsculas por defecto. Esto puede causar problemas al exporta run proyecto ya que el sistema de archivos virtual de Godot, PCK, es sensible a mayúscylas. Para prevenir esto, es recomendado apegarse a un snake_case al nombrar todos los archivos del proyecto (y en minúsculas en general).

Nota

Puedes romper esta regla cuando la guia de estilos diga lo contrario (como la guía de estilos de C#). Aún así, mantente consistente para evitar errores.

En Windows 10, para evitar errores relacionado a la sensibilidad a mayúsculas, puedes convertir la carpeta en sensible a mayúsculas. Después de habilitar el Windows Subsystem for Linux, ejecuta el siguiente comando en una ventana 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 no tienes habilitado el Windows Subsystem for Linux, puedes poner la siguiente línea en una ventana PowerShell ejecutándose como Administrador, después reinicia cuando el sistema pregunte:

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