Godot Engine — открытый кроссплатформенный игровой движок для разработки 2D/3D-видеоигр и приложений для ПК, мобильных устройств, веб-платформ. Адаптирован ко всем распространенным операционным системам, включая Linux, macOS, Windows, Android и iOS.
Godot разработали в 2007 году два программиста из Аргентины — Хуан Линецкий и Ариэл Манзур. Первоначально его использовали несколько игровых студий Латинской Америки. В 2014 году разработчики выложили движок на GitHub по лицензии MIT. В декабре того же года вышла первая стабильная версия 1.0. С этого момента началось развитие проекта и его распространение в других странах.
Возможности Godot
Встроенный функционал «Годо» позволяет разработчику с нуля создать полноценную игру или приложение без использования внешних инструментов.
- Работа с двух- и трехмерной графикой — поддержка эффектов отражения, динамических теней, статичного и динамичного глобального освещения, полноэкранной постобработки (засветки, глубины резкости, гамма-коррекции и т.д.).
- Поддержка реалистичной физики — системы частиц (дыма, тумана, пара, взрывов и т.д.), свойств динамичных и статичных тел, столкновений и разрушений, трассировки лучей и других физических процессов.
- Работа с анимацией — опции создания скелетной анимации, наложения объектов, кат-сцен в реальном времени.
- Сетка навигации (Navigation mesh) — алгоритм нахождения игровым агентом оптимального маршрута в сложном пространстве.
- Поддержка мультимедиа — воспроизведение аудио- и видеофайлов с помощью подключаемых кодеков Theora, OGG Vorbis, WAV.
- AR/VR — встроенный мобильный интерфейс дополненной и виртуальной реальности с использованием 3DOF-датчиков на телефоне.
- Подключение устройств ввода — клавиатуры, мыши, геймпада и сенсорного экрана.
- Процедурная генерация — автоматическое создание внутриигрового контента (окружения, NPC, объектов, оружия и т.д.) с помощью алгоритмов.
- Поддержка языков — «Годо» имеет свой собственный высокоуровневый язык программирования GDScript, также можно использовать С# и C++.
Возможности Godot можно расширить с помощью плагинов и сторонних приложений. Например, движок позволяет импортировать сцены из Blender с настроенным освещением, камерами, физикой столкновений, анимированными персонажами и т.д. Также есть возможность подключать разработанные самостоятельно или сторонние плагины виртуальной/дополненной реальности, кодеки для воспроизведения видео и аудио, визуальные редакторы.
Ключевые концепции Godot
Работа движка Godot основана на представлении игры как дерева узлов, которые группируются в сцены и взаимодействуют друг с другом с помощью сигналов и других способов.
Узлы. Минимальные функциональные единицы игровой архитектуры, «кирпичики», из которых собирается вся игра. Каждый узел может выполнять несколько специализированных функций и имеет следующие атрибуты:
- уникальное наименование;
- изменяемые свойства;
- способность расширяться и получать новые функции;
- обратную связь для обработки кадров;
- способность присоединяться к другим узлам в качестве дочернего.
Узлы различаются по своему назначению. Одни показывают изображение, другие отображают 3D-модели, третьи воспроизводят звук. Подключая один узел к другому, можно получать дерево узлов, обладающее более сложным функционалом. На этом строится основной принцип разработки игры.
Сцены. Это дерево иерархически соединенных друг с другом узлов. Имеет следующие атрибуты:
- один корневой узел, к которому, подобно ветвям, подсоединяются дочерние;
- возможность сохранения на диск и загрузки обратно в редактор;
- возможность создания экземпляров (реплик);
- возможность подгружать одни сцены в другие в runtime.
Сценами могут быть персонажи, оружие, локации, целые уровни и другие объекты игрового мира, пользовательский интерфейс в приложениях и т.д. Они обладают двумя важными свойствами:
- выступают в качестве префабов — «заготовок», задающих изначальную структуру и свойства для экземпляров;
- вкладываются друг в друга — например, персонажа можно разместить на уровне, а в руки ему дать оружие или магический посох.
Дерево сцен. Это совокупность иерархически связанных сцен. Создаваемый в Godot проект (игры, приложение) — последовательность их выполнения. А сам движок — редактор, в котором разработчик продукта определяет порядок и способ исполнения взаимосвязанных сцен. При запуске проекта сначала инициируется основная (корневая) сцена, которая последовательно запускает остальные.
Сигналы. Это сообщения, отправляемые узлами, когда с ними совершается какое-либо действие. Например, когда пользователь кликает на кнопку, она испускает сигнал. Подключенные узлы реагируют на него и вызывают ответную функцию. При этом узлы, взаимодействующие с помощью сигналов, не ссылаются друг на друга. Это ограничивает их связанность и делает код более гибким.
Вместо программирования по строгим шаблонам Godot предлагает разработчику более гибкий, интуитивно понятный метод создания игр и приложений. Но для использования потенциала движка потребуется знать основы объектно-ориентированного программирования.
Преимущества Godot
Простота. Godot — сравнительно простой в освоении и использовании игровой движок. Работать с ним могут как опытные разработчики, так и начинающие энтузиасты. Встроенный язык программирования GDScript имеет почти такой же синтаксис, что и Python, и прост для изучения. Интуитивно понятный редактор, возможность интеграции со сторонними плагинами и приложениями также снижают порог вхождения.
Дополнительные функции, шаблоны, плагины и прочий контент можно скачивать по мере необходимости, не перегружая компьютер. Особенность «Годо» — одинаковый уровень производительности движка и созданных с его помощью игр.
Поддержка сторонних языков. В ядро Godot уже встроена возможность работы на GDScript, C# и C++. Также модуль GDNative позволяет привязать к ядру движка код, написанный на других языках программирования. С помощью системы VisualScript программировать можно без кода, работая на уровне узлов. Это подходящий вариант для новичков не только в геймдеве, но и в программировании в целом.
Гибкость. Система деревьев узлов и сцен позволяет разрабатывать игры на интуитивно понятном уровне. Хотя тем, кто работал с другими игровыми движками, подход кажется непривычным.
Независимое 2D и 3D. Godot создавался как двухмерный игровой движок, 3D-редактирование появилось позже. Разработчики оставили для каждого режима свой редактор, а не стали использовать псевдодвухмерный. Возможность работы с пиксельным 2D упрощает разработку и оптимизацию двухмерных игр. Это ценят разработчики небольших инди-проектов.
Открытый исходный код. Godot — бесплатное программное обеспечение, распространяемое по лицензии MIT. Созданные игры и приложения являются собственностью разработчика. Кроме того, открытость движка способствует появлению множества расширений и инструментов. При отсутствии функции в ядре «Годо» ее можно получить, скачав подходящее дополнение с официального сайта или ресурсов, входящих в экосистему.
Кроссплатформенность. Godot существует в версиях для Windows, Mac, Linux, Android, iOS. Также есть поддержка универсальной платформы UWP от Microsoft, на которой можно разрабатывать приложения для Windows 10, Windows Mobile, Xbox One и виртуальной среды HoloLens без необходимости переписывать код под каждую ОС.
Обширная документация. По «Годо» есть множество информационных материалов (мануалов, справочников, статей и т.д.) от официальных разработчиков, сторонних профессионалов и энтузиастов-любителей. На любой вопрос по работе с движком можно найти ответ в сообществе.
Недостатки Godot
Недостаточная проработка 3D. По этому параметру Godot уступает конкурентам вроде Unity или Unreal Engine. «Годо» развивался как 2D-движок, трехмерный редактор был добавлен позже. В последних версиях работа с 3D значительно улучшена.
Сложности с разработкой консольных приложений. Разработчики отмечают проблемы при создании или портировании «Годо»-игр на консоли. Это требует использования сторонних инструментов и большого опыта. Одна из возможных причин проблемы — закрытый характер консольных инструментов, что противоречит открытости самого движка.
Использование Godot
Открытый исходный код, простота и особенности редактора «Годо» сделали движок популярным в среде разработчиков инди-игр. Из известных гейм-девелоперов, использовавших его в своих проектах, — аргентинская компания OCAM Studio и LRDGames, Inc., выпустившая в 2021 году сатирическую стратегию Rogue State Revolution. Также этот движок применяется в разработке:
- мобильных игр, в том числе многопользовательских (платформеров, пазлов, головоломок);
- приложений — мультиплееров, планировщиков, музыкальных редакторов и т.д.
Godot популярен в качестве учебного пособия для обучения азам компьютерной графики, программирования и геймдева. Он часто используется в специализированных и общеобразовательных учебных заведениях.
В сегменте игр категории АА и ААА игровой движок Godot Engine пока не получил распространения. Но в последних версиях начал развиваться 3D-редактор, появились функции и встроенные инструменты для работы с трехмерной высокополигональной графикой.
0 комментариев