УДК 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 и 3, 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 также популярен в качестве учебного пособия для обучения компьютерной графики, программирования и разработки игр, и также часто используется в специализированных и общеобразовательных учебных заведениях.
Библиографический список
- Редактор Godot Engine [электронный ресурс] docs.godotengine.org – режим доступа: https://docs.godotengine.org/ru/stable/getting_started/introduction/introduction_to_godot.html (дата обращения: 10.04.2023).
- Godot 4.0 [электронный ресурс] godotengine.org – режим доступа: https://godotengine.org/article/godot-4-0-sets-sail (дата обращения: 15.04.2023).
- Концепции Godot [электронный ресурс] docs.godotengine.org – режим доступа: https://docs.godotengine.org/ru/stable/getting_started/introduction/key_concepts_overview.html (дата обращения: 12.04.2023).
- Редактор Godot [электронный ресурс] docs.godotengine.org – режим доступа: https://docs.godotengine.org/ru/stable/getting_started/introduction/first_look_at_the_editor.html (дата обращения: 12.04.2023).
- Функционал Unity [электронный ресурс] learn.unity.com – режим доступа: https://learn.unity.com (дата обращения: 14.04.2023).
- Функционал Unreal Engine [электронный ресурс] docs.unrealengine.com – режим доступа: https://docs.unrealengine.com/5.2/en-US (дата обращения: 14.04.2023).
- Функционал Construct 3 [электронный ресурс] www.construct.net – режим доступа: https://www.construct.net/en/make-games/education (дата обращения: 14.04.2023).