Up to date

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

Organização do projeto

Introdução

Uma vez que Godot não tem nenhuma restrição na estrutura do projeto ou uso do sistema de arquivos, organizar arquivos enquanto aprendendo a engine pode parecer desafiador. Este tutorial sugere um fluxo de trabalho que deve ser um bom ponto de início. Também cobriremos o uso de controle de versão com Godot.

Organização

Godot é baseado em cenas por natureza, e usa o sistema de arquivos como ele é, sem metadados ou um banco de dados de assets.

Ao contrário de outras engines, muitos recursos são contidos dentro da própria cena, então a quantidade de arquivos no sistema de arquivos é consideravelmente mais baixa.

Considerando isso, o modo mais comum de lidar com isso é agrupar recursos com as cenas, assim, quando um projeto cresce, ele fica mais gerenciável.

Como exemplo, normalmente é possível colocar em uma única pasta seus ativos básicos, como imagens de sprite, malhas de modelos 3D, materiais e música, etc. Eles podem então usar uma pasta separada para armazenar níveis construídos que os utilizam.

/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

Guia de Estilo

Para manter a consistência entre os projetos, nós recomendamos estas seguintes diretrizes:

  • Use snake_case para nomes de pastas e arquivos (com exceção de scripts C#). Isto evita os problemas de distinção entre maiúsculas e minúsculas que podem surgir após a exportação de um projeto no Windows. Os scripts C# são uma exceção a essa regra, pois a convenção é nomeá-los após o nome da classe que deve estar em PascalCase.

  • Use PascalCase para nomes de nós, pois isso combina com a caixa embutida do nó.

  • Em geral, mantenha os recursos de terceiros em uma pasta addons/ de nível superior, mesmo se eles não forem plugins do editor. Isto torna mais fácil rastrear quais arquivos são de terceiros. Existem algumas exceções a esta regra; por exemplo, se você usar recursos de jogo de terceiros para um personagem, faz mais sentido incluí-los na mesma pasta que as cenas e scripts dos personagens.

Importando

Versões do Godot anteriores à 3.0 faziam o processo de importação dos arquivos fora do projeto. Embora isto possa ser útil em grandes projetos, isso resultou em problemas de organização para a maioria dos desenvolvedores.

Por causa disso, os assets agora são importados de dentro da pasta do projeto de forma transparente.

Ignorando pastas específicas

Para evitar que Godot importe arquivos contidos em uma pasta específica, crie um arquivo vazio chamado .gdignore na pasta (o início . é necessário). Isso pode ser útil para acelerar a importação inicial do projeto.

Nota

To create a file whose name starts with a dot on Windows, place a dot at both the beginning and end of the filename (".gdignore."). Windows will automatically remove the trailing dot when you confirm the name.

Alternatively, you can use a text editor such as Notepad++ or use the following command in a command prompt: type nul > .gdignore

Uma vez ignorada a pasta, os recursos dessa pasta não podem mais ser carregados utilizando os métodos load() e preload(). Ignorar uma pasta também irá escondê-la automaticamente no painel Sistema de Arquivos, o que pode ser útil para reduzir a desordem.

Observe que o conteúdo do arquivo .gdignore é ignorado, razão pela qual o arquivo deve estar vazio. Ele não suporta padrões como os arquivos .gitignore.

Sensibilidade de caixa

Windows e versões recentes do macOS usam sistemas de arquivos sem sensibilidade de caixa por padrão, enquanto distribuições Linux usam um sistema de arquivo com sensibilidade de caixa por padrão. Isto pode causar problemas após exportar um projeto, já que o sistema de arquivos virtual do PCK do Godot tem sensibilidade de caixa, para evitar isto, é recomendado manter a nomeação snake_case para todos os arquivos no projeto (e caracteres minúsculos em geral).

Nota

Você pode quebrar esta regra quando os guias de estilo dizem o contrário (como o guia de estilo C#). Ainda assim, seja consistente para evitar erros.

No Windows 10, para evitar ainda mais erros relacionados à sensibilidade de caixa, você também pode fazer a pasta do projeto suportar sensibilidade. Após ativar o recurso Subsistema Windows para Linux, execute o seguinte comando em uma janela do 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

Se você não habilitou o Subsistema Windows para Linux, você pode inserir a seguinte linha em uma janela do PowerShell executando como Administrador e reinicializar quando solicitado:

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