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

Вступ

Оскільки у 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().

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

Чутливість до регістру

У Windows та останніх версіях macOS за замовчуванням використовуються нечутливі до регістру файлові системи, тоді як у дистрибутивах Linux за замовчуванням використовується чутлива до регістру файлова система. Це може спричинити проблеми після експорту проєкту, оскільки віртуальна файлова система PCK Godot чутлива до регістру. Щоб цього уникнути, рекомендується дотримуватися стилю snake_case для іменування усіх файлів у проєкті (та малих символів загалом).

Примітка

Ви можете порушити це правило, коли в керівництві по стилю рекомендує інше (наприклад, в посібник зі стилю C#). Однак будьте послідовними, щоб уникнути помилок.

У Windows 10, щоб уникнути помилок, пов’язаних з чутливістю до регістру, ви також можете зробити папку проєкту чутливою до регістру. Увімкнувши функцію Windows Subsystem для 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 для Linux, ви можете ввести наступний рядок у вікні PowerShell, що працює від імені адміністратора, а потім перезавантажити на запит:

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