УДК 004.946
Информационные технологии
Ломайкин Алексей Сергеевич, студент магистратуры, ФГБОУ ВО «МГУ им. Н.П. Огарёва»
GODOT ENGINE В СОВРЕМЕННОЙ ИГРОВОЙ ИНДУСТРИИ
Аннотация: Игровые движки являются фундаментальной основой игры. Это объединение прикладных программ, обрабатывающих графику, звуки, перемещение персонажей взаимодействие со скриптами и многое другое. Godot Engine является кроссплатформенным движком для создания 2D и 3D игр.
Ключевые слова: Игровой движок, разработка игр, графика, персонажи, анимации, физика.
Abstract: Game engines are the fundamental backbone of a game. This is a combination of application programs that process graphics, sounds, character movement, interaction with scripts, and much more. Godot Engine is a cross-platform engine for creating 2D and 3D games.
Key words: Game engine, game development, graphics, characters, animation, physics.
Введение. В настоящее время игровые движки являются неотъемлемой частью процесса разработки игр. Они являются платформой для создания и запуска игровых проектов, предоставляя разработчикам возможность сосредоточиться на создании контента и геймплея, а не на написании кода для всех функций игры с нуля.
Одним из современных игровых движков является Godot Engine -бесплатный и открытый движок, разработанный с нуля. Движок разработан на C++ и использует язык GDScript, являющийся легким для изучения и использования благодаря своей простоте. Godot - это 2D и 3D игровой движок,
использующийся для создания игр или приложений, которые можно запускать на компьютерных или мобильных платформах, а таже на приставках и в web. Godot полностью бесплатный и имеет открытый исходный код.
Движок поставляется вместе с полноценным игровым редактором, имеющим инструменты для решения самых распространенных задач, и включает в себя редактор кода, анимации, тайлмапов, шейдеров, а также отладчик профайлер и многое другое [1].
История создания и развития. Разработка Godot началась в 2007 году дизайнером и разработчиком видеоигр Хуаном Лоренцо Грайтнером из Аргентины. В начале он создал движок с использованием языка Python, который назывался "GDScript Engine".
Однако в 2014 году он принял решение переписать движок на C++, чтобы улучшить производительность. Этот новый движок и стал известен как Godot Engine. Он был выпущен в свободное пользование в 2014 году под лицензией MIT.
С тех пор Godot Engine постоянно развивается и улучшается благодаря вкладам сообщества открытых разработчиков со всего мира. Движок получил репутацию надежного и гибкого инструмента для создания игр, использующих различные платформы и технологии. Сегодня Godot Engine активно используется для создания многих инди-игр и некоторых коммерческих проектов.
Версия 3.0 была выпущена 29 января 2018 года, добавив совершенно новый рендерер PBR реализовано в OpenGL ES 3.0, совместимость с виртуальной реальностью и поддержка C # (через Mono). Версия 3.0 также добавила физический движок Bullet в дополнение к встроенной в него 3D-физике и стала первой версией Godot, включенной в Debian.
1 марта 2023 года, после многочисленных альфа и бета версий, вышла версия 4.0, значительно улучшившая работу с графикой, физикой, редактором, а также сделавшая работу с Godot Engine в разы удобнее [2].
Архитектура Godot Engine. Godot Engine - это кроссплатформенный
движок для создания видеоигр, поставляющийся с открытым исходным кодом. Он имеет модульную архитектуру, которая позволяет разработчикам добавлять и изменять функциональность движка, используя готовые модули или создавая свои собственные. Архитектура подразделяется на четыре основных компонента, приведенных ниже.
Консоль (ядра): ядро движка Godot предоставляет основную функциональность, такую как поддержка графики, звука, ввода, физического движка, GUI, анимации и др. Ядро движка выполнено на C++ и полностью доступно в исходных кодах.
Сцены являются одним из основных компонентов архитектуры Godot Engine. Они состоят из дерева узлов, где каждый узел представляет игровой объект, такой как персонаж, камера, свет, объекты, звуки и т. д. Узлы могут быть объединены в один или несколько объектов и могут быть масштабированы, перемещены, вращены и т.д.
Скрипты. Godot Engine поддерживает несколько языков программирования для написания скриптов, включая GDScript, C#, Python, Visual Scripting. Скрипты позволяют создавать настроенное поведение для каждого объекта и определять различные взаимодействия между объектами и игроком.
Ресурсы. Примерами ресурсов в Godot Engine являются текстуры, звуки, модели, анимации и т. д. Эти ресурсы могут быть загружены в сцену и использоваться в игре. Важным аспектом архитектуры Godot Engine является то, что ресурсы могут быть переиспользованы в разных проектах.
Чтобы создавать игры с помощью Godot Engine, разработчики могут использовать встроенные инструменты, такие как редактор анимации, редактор материалов, редактор пути, редактор шейдеров и т.д. Благодаря модульной архитектуре, разработчики могут расширять функциональность Godot Engine, создавая свои собственные модули, что дает им возможности создать уникальные проекты.
Концепции. Архитектура проекта в Godot Engine представлена в виде
дерева узлов, которые объединяются в сцены и работают с помощью сигналов и других способов [3].
Узлы - это минимальные функциональные единицы архитектуры, из которых состоит проект. Узел выполняет несколько функций и имеет следующие атрибуты: уникальные наименование, изменяемые свойства, способность расширяться и использовать функции, связь для обработки кадров, подключение к другим узлам в качестве дочернего. Узлы различаются по назначению: изображение, отображение моделей, воспроизведение звуков. При подключении узлов получается дерево узлов, которое обладает относительно более сложным функционалом. На основе этого строится основный принцип разработки на Godot.
Сцены - это иерархическое дерево объединенных узлов, имеющие следующие атрибуты: один корневой узел, сохранение и загрузка в редактор, создание экземпляров, подгрузка одних сцен в другие во время выполнения. Сценами могут быть персонажи, предметы, локации, полноценные уровни и другие части игрового мира, пользовательский интерфейс и т.д. Они обладают двумя важными свойствами: выступают в виде заготовок в изначальной структуре и экземплярах, вкладываются друг в друга.
Дерево сцен - это объединенные иерархической связью сцены. В проекте прописывается последовательность их выполнения, а сам движок при этом является редактором, в котором разработчик продукта определяется порядок и способ исполнения взаимосвязанных сцен. При запуске проекта сначала инициируется корневая сцена, которая последовательно запускает остальные.
Особенности и возможности. Godot Engine имеет ряд уникальных функций, которые делают его отличным выбором для разработки игр. Одной из ключевых особенностей является его система управления ресурсами, позволяющая оптимизировать использование ресурсов и уменьшить нагрузку на процессор.
Другой важной особенностью является наличие графической подсистемы, которая поддерживает многие фишки современных графических API, в том
числе OpenGL ES 2 и B, Vulkan и Metal. Благодаря этому возможно создавать игры с потрясающей графикой и наивысшей производительностью. Godot поддерживает эффекты отражения, динамических теней, статичного и динамичного глобального освещения, полноэкранной постобработки.
Движок также поддерживает реалистичную физику - систему частиц (дыма, пара, взрывов, тумана и т. д.), свойств динамичных и статичных тел, столкновений и разрушений, трассировки лучей и других физических процессов.
Кроме того, Godot Engine имеет встроенные утилиты для обработки физики, анимации, звука, аудиоэффектов и многое другое, что позволяет разработчикам легко реализовывать те функции, которые нужны для создания игры. Движок поддерживает сетку навигации - алгоритм нахождения игровым объектом оптимального маршрута в сложном пространстве, а также процедурную генерацию - автоматическое создание внутриигрового контента (окружения, NPC, объектов, предметов для использования с помощью алгоритмов.
Godot имеет встроенный редактор сцен, позволяющий создавать сцены и добавлять объекты с помощью drag-and-drop. Редактор предоставляет удобный и интуитивно понятный пользовательский интерфейс, облегчающий редактирование и настройку различных объектов [4].
Еще одной важной особенностью Godot Engine легко расширяемая архитектура. Движок имеет модульную архитектуру, позволяющую разработчикам добавлять и менять функциональность движка, используя при этом готовые модули или создавая свои собственные.
Сравнение с популярными движками. Godot Engine имеет свои преимущества и недостатки по сравнению с другими популярными игровыми движками.
Unity является одним из самых распространенных движков, который также имеет мощную среду разработки и набор уникальных возможностей. Однако, Unity не является бесплатным и в наличии только с определенной
степенью функциональности. Unity, как и Godot Engine, позволяет быстро и легко создавать игры на различных платформах благодаря его широкому набору настроек и редакторам сцен. Однако, Unity обладает более обширным набором функций и возможностей, которые позволяют работать со сложными игровыми механиками и создавать игры с отличной графикой [5]. Кроме того, Unity лучше интегрируется с широкой экосистемой инструментов и платформ.
Unreal Engine - еще один из наиболее популярных игровых движков. Unreal Engine позволяет разработчикам создавать игры с качественной графикой, в том числе виртуальную реальность, благодаря использованию мощного графического движка и инструментария для разработки. Unreal Engine также хорошо известен своей поддержкой для широкого диапазона компьютерных платформ и мощных инструментов для создания игровых механик [6]. Однако Unreal Engine не такой доступный как Godot Engine, которому не нужны дополнительные утилиты для разработки. Кроме того, при обороте от 1млн. долларов придется платить 5% роялти.
Construct 3 - популярный игровой движок, который имеет уникальный, визуально ориентированный подход к программированию и созданию игр [7]. Construct 3 предоставляет простые и понятные инструменты для создания игрового контента, что позволяет обходиться без знаний программирования, в отличие от Godot Engine.
Однако, Godot Engine предоставляет более широкий набор инструментов для создания сложных игровых механик и редактирования сцен. Кроме того, Godot Engine обладает графической системой, которая позволяет создавать хорошую графику, а Construct 3 не включает такую функциональность.
Каждый из этих игровых движков имеет свои сильные и слабые стороны. Godot Engine - это бесплатное и открытое программное обеспечение, которое позволяет создавать игры на различных платформах, обладает мощной графикой и легок в использовании. При выборе игрового движка, разработчики должны учитывать набор инструментов и возможностей, которые нужны для создания конкретной игры, и определяться с выбором исходя из своих
потребностей и опыта.
Заключение. Godot Engine - это мощный игровой движок, имеющий набор полезных функций и возможностей. Он может стать отличным выбором для разработчиков, которые хотят создавать игры с высокой производительностью и хорошей графикой.
Одно из главных преимуществ Godot Engine - это полностью открытый исходный код и бесплатная лицензия, что делает его доступным для любого, что позволяет независимым разработчикам и студиям с небольшим бюджетом создавать игры и выпускать их на различных платформах.
Кроме того, Godot Engine имеет поддержку для 2D и 3D графики, встроенные инструменты для создания анимации, поддержку нескольких языков программирования и утилиты для создания сетевых игр. Благодаря этому Godot позволяет разработчикам создавать сложные и качественные игры.
Движок подойдет как новичку, так и опытному разработчику. Godot также популярен в качестве учебного пособия для обучения компьютерной графики, программирования и разработки игр, и также часто используется в специализированных и общеобразовательных учебных заведениях.
Библиографический список:
1. Редактор Godot Engine [электронный ресурс] docs.godotengine.org -режим доступа: https://docs.godotengine.org/ru/stable/getting_started/introduction/ introduction_to_godot.html (дата обращения: 10.04.2023).
2. Godot 4.0 [электронный ресурс] godotengine.org - режим доступа: https://godotengine.org/article/godot-4-0-sets-sail (дата обращения: 15.04.2023).
3. Концепции Godot [электронный ресурс] docs.godotengine.org - режим доступа: https://docs.godotengine.org/ru/stable/getting_started/introduction/ key_ concepts_overview.html (дата обращения: 12.04.2023).
4. Редактор Godot [электронный ресурс] docs.godotengine.org - режим доступа: https: //docs. godotengine. org/ru/stable/getting_started/introduction/ first_look_ at_the_editor.html (дата обращения: 12.04.2023).
5. Функционал Unity [электронный ресурс] learn.unity.com - режим доступа: https://learn.unity.com (дата обращения: 14.04.2023).
6. Функционал Unreal Engine [электронный ресурс] docs.unrealengine.com - режим доступа: https://docs.unrealengine.com/5.2/en-US (дата обращения: 14.04.2023).
7. Функционал Construct 3 [электронный ресурс] www.construct.net -режим доступа: https://www.construct.net/en/make-games/education (дата обращения: 14.04.2023).