Філософія архітектури Godot

Тепер, коли ви "набили руку", давайте поговоримо про дизайн Godot.

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

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

Будь ласка подивіться Відкриття Godot 3, вільний ігровий движок <https://youtu.be/4v3qge-3CqQ> _, якщо ви шукаєте огляд можливостей движка.

Об'єктно-орієнтована дизайн і композиція

Godot включає в себе об'єктно-орієнтована дизайн з його гнучкою системою сцен і ієрархією вузлів. Він намагається триматися подалі від суворих шаблонів програмування, щоб запропонувати інтуїтивний спосіб структурування вашої гри.

По-перше, Godot дозволяє вам складати (або збирати) сцени. Це як вкладені префаб: ви можете створити мерехтливе світло і сцену зі зламаним ліхтарем, який використовує мерехтливе світло. Потім створити місто наповнений такими ліхтарями. Потім поміняти колір мерехтіння, зберегти об'єкт, і всі ліхтарі тут же оновляться.

Більш того, ви можете ** успадковувати ** від цієї сцени.

Сцена Godot може бути зброєю, персонажем, предметом, дверима, рівнем, частиною рівня... всім, чим завгодно. Вона працює як клас у чистому коді, за винятком того, що ви вільні спроєктувати її лише за допомогою редактора, лише використовуючи код, або змішуючи та поєднуючи обидва способи.

Це відрізняється від збірних даних (префабів), які ви знайдете в деяких тривимірних редакторах, тому що ви можете успадкувати та розширити ці сцени. Ви можете створити сцену Маг, яка буде успадкована та розширена з вашої сцени Персонаж. Змініть Персонаж у редакторі, і Маг також оновиться. Це допомагає вам будувати свої проєкти так, щоб їх структура відповідала архітектурі гри.

image0

Також зауважте, що Godot пропонує безліч різних типів об'єктів, які називаються вузлами, кожен з певним призначенням. Вузли є частиною дерева і завжди успадковуються від батьків аж до класу Node (Вузол). Хоча редактор має такі компоненти, як форми зіткнення, вони є винятком, а не нормою.

image1

Sprite успадковується від класів Node2D, CanvasItem і Node. Завдяки цьому він має їх властивості та особливості, що дозволяє йому, наприклад, виконувати перетворення, малювати довільні фігури або використовувати сторонні шейдери.

Комплексний

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

image2

Мета полягає в тому, щоб запропонувати повний пакет для створення ігор і безперервного навчання. Ви можете працювати з зовнішніми програмами, якщо для них є плагін імпорту. Або ви можете створити його, наприклад, Tiled Map Importer <https://github.com/vnen/godot-tiled-importer>.

Це також частково тому, що Godot пропонує власні мови програмування GDscript та VisualScript разом із C#. Вони розроблені для потреб розробників ігор та дизайнерів ігор, і вони тісно інтегровані в двигун та редактор.

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

Зауважте, що за допомогою GDNative ви можете писати високоефективний код, використовуючи компільовані мови, такі як C, C++, Rust, або Python (використовуючи компілятор Cython), без перекомпіляції рушія.

image3

VisualScript - мова програмування на основі вузлів, яка добре інтегрується в редактор. Ви можете перетягувати вузли, або ресурси, в графік для створення нових блоків коду.

Зауважте, що в робочій області 3D немає такої кількості інструментів, як у робочій області 2D. Вам знадобляться зовнішні програми, або додатки, для редагування місцевості, анімації складних персонажів тощо. Godot пропонує повний API для розширення функціональності редактора за допомогою ігрового коду. Дивіться The Godot editor is a Godot game нижче.

image4

Плагін редактора State Machine (Машина станів) у Godot 2 від kubecz3k. Він дозволяє візуально керувати станами та переходами.

Відкритий код

Godot пропонує повністю відкриту кодову базу даних під ліцензією MIT. Це означає, що всі технології, що постачаються разом із нею, повинні бути безкоштовними (як і вільними). Здебільшого вони розробляються з нуля вкладниками.

Будь-хто може підключити власні інструменти для потреб своїх проєктів - вони просто не постачаються з рушієм. Це може бути Google AdMob, або FMOD. Будь-який із них може натомість може стати стороннім плагіном.

З іншого боку, відкрита база коду означає, що ви можете вивчити і розширити редактор як забажаєте. Ви також можете легко налагоджувати ігри, оскільки Godot друкує помилки із stack trace, навіть якщо вони надходять із самого движка.

Примітка

Це ніяк не впливає на роботу, яку ви робите з Godot : ніякі рядки додані до редактора, і ніяка робота з ним.

Ініціативна спільнота

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

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

Редактор Godot - це гра Godot

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

Це призводить до надійної та гнучкої системи користувацького інтерфейсу, оскільки вона приводить в дію сам редактор. За допомогою ключового слова tool ви можете запустити будь-який ігровий код у редакторі.

image5

RPG in Box - це редактор вокселів RPG , створений з Godot 2. Він використовує інструменти інтерфейсу Godot для своєї програми програмування на основі вузлів та для решти інтерфейсу.

Помістіть ключове слово tool на початку будь-якого файлу GDScript, і він запуститься в редакторі. Це дозволяє імпортувати та експортувати плагіни, створювати плагіни, такі як редактори власного рівня, або створювати скрипти з тими ж вузлами та API, які ви використовуєте у своїх проєктах.

Окремі 2D та 3D движки

Godot пропонує спеціалізовані движки 2D та 3D візуалізації. В результаті базовою одиницею для 2D сцен є пікселі. Незважаючи на те, що движки є окремими, ви можете візуалізувати 2D в 3D, 3D в 2D і накладати 2D спрайти та інтерфейси поверх вашого 3D-світу.