Організація проекта

Вступ

Оскільки у Godot немає обмежень щодо структури проекту, або використання файлової системи, організація файлів під час вивчення движка може здатися складною. Цей посібник пропонує робочий процес, який повинен стати гарним стартом. Ми також розглянемо використання контролю над версіями з Godot.

Організація

Godot є сценічним за своєю природою і використовує файлову систему такою, якою є, без метаданих, або бази даних ресурсів.

На відміну від інших движків, багато ресурсів містяться в межах самої сцени, тому кількість файлів у файловій системі значно нижча.

Враховуючи це, найпоширенішим підходом є групування ресурсів якомога ближче до сцен; коли проект росте, це робить його більш акуратним.

Як приклад, зазвичай можна розмістити в одній теці свої основні ресурси, такі як спрайтові зображення, 3D моделі, матеріали та музику тощо. Потім можна використовувати окрему теку для зберігання побудованих рівнів, які використовують їх.

/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

Style guide

For consistency across projects, we recommend following these guidelines:

  • Use snake_case for folder and file names (with the exception of C# scripts). This sidesteps case sensitivity issues that can crop up after exporting a project on Windows. C# scripts are an exception to this rule, as the convention is to name them after the class name which should be in PascalCase.
  • Use PascalCase for node names, as this matches built-in node casing.
  • In general, keep third-party resources in a top-level addons/ folder, even if they aren't editor plugins. This makes it easier to track which files are third-party. There are some exceptions to this rule; for instance, if you use third-party game assets for a character, it makes more sense to include them within the same folder as the character scenes and scripts.

Імпортування

Версії Godot до 3.0 виконували процес імпорту з файлів поза проектом. Хоча це може бути корисно у великих проектах, це створило організаційні клопоти для більшості розробників.

Через це ресурси тепер прозоро імпортуються з папки проекту.

Ігнорування конкретних папок

Щоб Godot не імпортував файли, що містяться в певній теці, створіть в ній порожній файл, який називається .gdignore``(крапка ``. обов'язкова). Це може бути корисно для пришвидшення імпорту початкового проекту.

Примітка

Щоб створити файл, ім'я якого починається з крапки в Windows, ви можете скористатися текстовим редактором, таким як Notepad++, або скористатися такою командою в командному рядку: type nul > .gdignore

Після того, як тека буде проігнорована, ресурси в ній вже не можна завантажувати за допомогою методів load() і preload().

Ігнорування теки також автоматично приховає її від панелі Файлова система, що може бути корисно для зменшення безладу.

Case sensitivity

Windows and recent macOS versions use case-insensitive filesystems by default, whereas Linux distributions use a case-sensitive filesystem by default. This can cause issues after exporting a project, since Godot's PCK virtual filesystem is case-sensitive. To avoid this, it's recommended to stick to snake_case naming for all files in the project (and lowercase characters in general).

Примітка

You can break this rule when style guides say otherwise (such as the C# style guide). Still, be consistent to avoid mistakes.

On Windows 10, to further avoid mistakes related to case sensitivity, you can also make the project folder case-sensitive. After enabling the Windows Subsystem for Linux feature, run the following command in a PowerShell window:

# To enable case-sensitivity:
fsutil file setcasesensitiveinfo <path to project folder> enable

# To disable case-sensitivity:
fsutil file setcasesensitiveinfo <path to project folder> disable

If you haven't enabled the Windows Subsystem for Linux, you can enter the following line in a PowerShell window running as Administrator then reboot when asked:

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