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

Введение

Поскольку 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

Руководство по стилю

Для согласованности между проектами, мы рекомендуем следовать следующим советам:

  • Используйте стиль snake_case для имен папок и файлов (за исключением C# скриптов). Это позволяет обойти проблемы со стилем которые могут появиться после экспорта проекта в Windows. C# скрипты исключены из этого правила, их правило именования это называть их так же как имя класса которое должно быть в стиле PascalCase.
  • Используйте PascalCase для имен узлов , так как это соответствует встроенному стилю наименования узлов.
  • В общем случае, храните сторонние ресурсы в папке верхнего уровня addons/, даже если они не плагины редактора. Это упрощает отслеживание того какие файлы являются сторонними. Есть несколько исключений из этого правила; на пример, если вы используете ресурсы из сторонней игры для персонажа, есть больше смысла в том чтобы включить их в ту же папку где находятся сцены и скрипты персонажа.

Импорт

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

Благодаря этому ресурсы теперь прозрачно импортируются из папки проекта.

Игнорирование определённых папок

Чтобы запретить Godot импортировать файлы, содержащиеся в определенной папке, создайте в этой папке пустой файл с именем .gdignore (необходим ведущий .). Это может оказаться полезным для ускорения первоначального импорта проекта.

Примечание

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

Как только папка игнорируется, ресурсы в этой папке больше не могут быть загружены с использованием методов load () и preload ().

Игнорирование папки также автоматически скрывает ее от меню FileSystem, что может быть полезно для уменьшения беспорядка.

Чувствительность к регистру

Windows и недавние версии macOS используют нечувствительные к регистру файловые системы по умолчанию, тогда как дистрибутивы Linux используют чувствительные к регистру файловые системы по умолчанию. Это может вызвать проблемы после экспорта проекта, так как виртуальная файловая система Godot-а PCK чувствительна к регистру. Чтобы избежать этого, рекомендуется использовать стиль наименования snake_case для всех файлов проекта (и строчных букв вообще).

Примечание

Вы можете нарушать это правило когда руководства по стилю говорят иное (например руководство по стилю C#). И всё же будьте последовательны чтобы избежать ошибок.

В Windows 10, чтобы в дальнейшем избежать ошибок, связанных с чувствительностью к регистру, вы также можете сделать папку проекта чувствительной к регистру. После включения функции Windows Subsystem for Linux выполните следующую команду в окне 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

Если у вас не включен компонент Windows Subsystem for Linux, вы можете ввести следующее в PowerShell запущенный от администратора и перезагрузиться, когда потребуется:

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