Сравнение разработки и оптимизации 2D игр на Nau engine и Godot - Студенческий научный форум

XVII Международная студенческая научная конференция Студенческий научный форум - 2025

Сравнение разработки и оптимизации 2D игр на Nau engine и Godot

Куликов О.Н. 1
1ФГБОУ ВО "Мелитопольский государственный университет"
 Комментарии
Текст работы размещён без изображений и формул.
Полная версия работы доступна во вкладке "Файлы работы" в формате PDF

Введение.В последние годы наблюдается значительный рост интереса к разработке видеоигр среди независимых разработчиков (инди-разработчиков). Это связано с доступностью современных игровых движков, которые позволяют создавать игры без необходимости глубокого погружения в низкоуровневое программирование. Среди таких инструментов выделяются два интересных движка для создания двухмерных (2D) и трехмерных (3D) игр под названиеми: Nau Engine и Godot.

Nau engine и Godot предоставляют разработчикам широкий спектр возможностей для создания и оптимизации 2D игр. В этой статье мы рассмотрим и сравним оба движка с точки зрения производительности, удобства использования, возможностей оптимизации, а также поддержки сообществом и документацией. Основная цель нашего исследования — выявить ключевые преимущества и недостатки каждого движка, чтобы помочь разработчикам сделать осознанный выбор инструмента для своих проектов. Стоит отметить, что Nau engine на данный момент находится в стадии бета-тестирования, что может влиять на его стабильность и функциональность по сравнению с более зрелым Godot.

Цель исследования заключается в сравнительном анализе двух игровых движков: Nau engine и Godot, с точки зрения разработки и оптимизации 2D игр.

Материал и методы исследования

В данном исследовании проводится сравнительный анализ разработки и оптимизации 2D игр с использованием игровых движков NAU Engine и Godot. Для достижения поставленных целей использовались игровые движки NAU Engine, который представляет собой специализированный инструмент для 2D-разработки с уникальными возможностями оптимизации и интеграции, и Godot Engine (версия 4.x), свободно распространяемый движок с открытым исходным кодом, встроенной системой рендеринга 2D-графики и скриптовым языком GDScript. В рамках исследования был разработан идентичный 2D-платформер в обоих движках с базовым набором механик, включая перемещение, анимацию персонажей, обработку столкновений и загрузку уровней. Тестирование проводилось на ПК с процессором Intel Core i7-10700, 16 ГБ ОЗУ и видеокартой NVIDIA GTX 1660 Ti под управлением операционной системы Windows 10 x64.

Методы исследования включали разработку тестового проекта, создание идентичных игровых сцен, спрайтов и анимаций в NAU Engine и Godot, а также реализацию базовых игровых механик с использованием встроенных инструментов и скриптовых возможностей движков. Оптимизация и тестирование проводились путем анализа потребления ресурсов (ЦП, ГП, ОЗУ) с помощью встроенных профайлеров и стороннего ПО, таких как MSI Afterburner и Open Hardware Monitor, а также измерения времени загрузки уровней и производительности в различных разрешениях экрана. В ходе сравнительного анализа оценивались удобство инструментов разработки, доступность документации, время, затраченное на реализацию идентичного функционала, а также масштабируемость проекта и выявление ограничений каждого движка.

Полученные результаты позволят сделать выводы о преимуществах и недостатках NAU Engine и Godot Engine в контексте разработки и оптимизации 2D-игр, а также определить наиболее эффективные подходы к созданию игровых проектов.

Результаты исследования и их обсуждение

Nau engine: это универсальный российский движок для разработки 2D и 3D игр. Активная разработка началась в начале 2023 года, проект был запущен небольшой командой. Цель проекта – создание мощного и гибкого инструмента для разработчиков, способного конкурировать с уже существующими движками. Бета -версия Nau engine вышла 26 ноября 2024 года.

Godot: этот движок был создан в 2014 году и с тех пор прошел через множество обновлений и улучшений. Кроме того, он является движком с открытым исходным кодом, и поэтому пользуется популярностью среди разработчиков, которым хочется получить полную свободу и гибкость в процессе работы. Такая программа поддерживает как 2D, так и 3D, что является удобным для того, чтобы работать над совершенно разными проектами.

Основные преимущества и недостатки

Преимущества Nau engine:

  • простота использования: Интерфейс Nau Engine интуитивно понятен даже для новичков, это позволяет быстро освоить основные функции и приступить к разработке игры.

  • высокая производительность: Nau Engine использует современные технологии рендеринга, что позволяет достигать высокой производительности даже на слабых устройствах.

  • скриптинг: поддерживает несколько языков программирования для написания скриптов, включая C++ и C# также в движке есть система агностического скриптования, которая позволяет подключать другие языки программирования.

  • богатый набор встроенных функций: Nau Engine включает в себя мощные инструменты для анимации, физики, звукового сопровождения и многое другое.

  • оптимизация: Возможности для тонкой настройки производительности, несмотря на стадию бета-тестирования.

  • поддержка современных стандартов: Nau Engine поддерживает новейшие графические API, такие как Vulkan и DirectX 12, что обеспечивает совместимость с современными устройствами и операционными системами.

  • активное развитие: несмотря на то, что движок еще не вышел из стадии бета-тестирования, разработчики активно работают над его улучшением и добавлением новых функций.

Недостатки:

  • ограниченная документация: из-за статуса бета-версии, документация по nau engine пока недостаточно развита, что может затруднить освоение движка новичками.

  • отсутствие стабильного релиза: бета-статус означает, что возможны ошибки и нестабильная работа некоторых функций, что может привести к проблемам при разработке крупных проектов.

  • не все функции доступны: некоторые важные функции, такие как поддержка сетевой игры или продвинутые инструменты анимации, могут быть недоступны или находиться в стадии разработки.

Преимущества Godot:

  • редактор: интегрированный редактор сцен с поддержкой визуального скриптинга и node-based архитектуры.

  • открытый исходный код: это позволяет разработчикам вносить изменения в сам движок и адаптировать его под свои нужды.

  • простота освоения: интерфейс godot интуитивен и удобен для начинающих разработчиков, что делает его отличным выбором для тех, кто только начинает свой путь в геймдеве.

  • скриптинг: использует собственный язык gdscript, а также поддерживает c#, visualscript и другие.

  • физика: встроенные 2d и 3d физические движки для реалистичных эффектов.

  • инструменты для анимации: богатый набор инструментов для анимации, включая animationplayer и animationtree.

  • оптимизация: оптимизирован для высокой производительности и гибкости с поддержкой мультиплатформенной разработки.

  • большое сообщество: благодаря активной поддержке сообщества, существует множество учебных материалов, форумов и ресурсов, где можно найти помощь и советы по использованию godot.

Недостатки:

  • производительность: хотя Godot обладает хорошей производительностью, она может уступать некоторым коммерческим движкам, особенно в сложных проектах с большим количеством объектов и эффектов.

  • сложности с оптимизацией: оптимизация игр на Godot может потребовать дополнительных усилий, так как некоторые функции и механизмы движка могут работать менее эффективно, чем ожидалось.

  • некоторые ограничения функционала: несмотря на богатую функциональность, Godot может не поддерживать определенные специфичные функции, необходимые для реализации сложных механик или технологий.

  • проблемы с поддержкой старых версий: при переходе на новые версии Godot иногда возникают проблемы с совместимостью старых проектов, что требует дополнительного времени на адаптацию.

Поддерживаемые платформы

Nau engine - момент поддерживает основные платформы, включая Windows, MacOS и Linux. Планируется расширение поддержки для мобильных и консолей.

Godot - широкая поддержка платформ, включая Windows, MacOS, Linux, Android, iOS и поддержка веб-платформ через HTML5.

Представление сравнительного анализа движков Nau engine и Godot можно представить в виде следующей таблицы (табл.1)

Таблица 1 - Сравнительный анализ движков Nau engine и Godo

Характеристика

Nau Engine

Godot

Тип лицензии

3-Clause BSD

MIT

Язык программирования

C++, C#

C++, GDScript, C#,GDNative

Открытый исходный код

Да

Да

Размер движка

От 125 до 329 Мб.

от 20 до 50 МБ.

Графический API

OpenGL, Vulkan, DirectX 12

OpenGL, Vulkan, DirectX, WebGL

2D поддержка

Базовая

Продвинутая

3D поддержка

Продвинутая

Продвинутая

Редактор

Полноценный встроенный

Полноценный встроенный

Кроссплатформенность

Windows, Mac, Linux

Windows, Mac, Linux, Web, Mobile

Сообщество

Маленькое

Большое и активное

Документация

Ограниченная(бета версия движка)

Обширная

Готовые ассеты

Мало(бета версия движка)

Много

Физический движок

Bullet Physics

Bullet Physics

Поддержка скриптов

Ограниченная

Широкая

Кривая обучения

Зависит от пользователя

лёгкая

Производительность

Высокая

Хорошая

Инструменты разработки

Минимальные

Обширные

Поддержка шейдеров

Базовая

Продвинутая

Анимация

Базовая

Продвинутая

Аудио система

Базовая

Продвинутая

Оптимизационные методы в игровом движке Godot

  1. Batching (объединение) Batching – это техника, которая объединяет несколько отдельных объектов в одну группу для их одновременного рендеринга. Это уменьшает количество вызовов отрисовки и повышает общую производительность. В Godot batching реализован через механизм «CanvasItem» и работает следующим образом: Все объекты, имеющие одинаковый материал и трансформацию, объединяются в одну большую текстуру. Эта текстура затем отправляется на GPU единожды, что значительно снижает нагрузку на процессор.

  2. Tilemaps Tilemaps позволяют создавать большие уровни из небольших повторяющихся элементов (тайлов). Использование тайловых карт имеет два основных преимущества: Экономия памяти за счет того, что одни и те же тайлы могут быть использованы многократно. Упрощенная система коллизий, поскольку тайлы имеют фиксированные размеры и координаты.

  3. Culling (отсечение невидимых объектов) Culling – это метод, позволяющий не отображать объекты, находящиеся вне поля зрения камеры. В Godot этот процесс автоматизирован благодаря системе "Viewport", которая определяет видимые области сцены и исключает ненужные вызовы рендера. Это особенно полезно для больших уровней, где множество объектов находятся за пределами экрана.

  4. Атласирование текстур Атласирование текстур заключается в объединении множества маленьких изображений в одно большое. Это позволяет уменьшить количество переключений между текстурами во время рендеринга, что ускоряет процесс обработки графики. В Godot атласы создаются автоматически при использовании встроенного редактора ресурсов.

Оптимизационные методы в игровом движке Nau Engine

  1. Sprite Batching, как и в случае с Godot, Nau Engine поддерживает объединение спрайтов для уменьшения числа вызовов рендеринга. Однако здесь данный процесс управляется вручную через API движка, что дает больше контроля над оптимизацией.

  2. Ограничение частоты кадров (FPS Cap) Одной из уникальных особенностей Nau Engine является возможность установки ограничения на частоту кадров (FPS), что позволяет снизить нагрузку на систему, когда игра выполняется на более слабых устройствах. Этот подход полезен для мобильных платформ, где энергопотребление играет важную роль.

  3. Сжатие текстур Nau Engine предлагает различные алгоритмы сжатия текстур, такие как DXT и ETC, которые уменьшают размер файлов без значительной потери качества изображения. Это помогает сократить потребление памяти и ускорить загрузку ресурсов.

  4. Мультипроцессорность Nau Engine активно использует возможности современных многоядерных процессоров для параллельного выполнения задач. Например, физика и рендеринг могут выполняться одновременно на разных ядрах, что увеличивает общую скорость работы приложения.

Выводы. Выбор между Nau Engine и Godot зависит от конкретных требований проекта и уровня подготовки команды разработчиков. Nau Engine предлагает высокую производительность и гибкие настройки, но на текущем этапе развития имеет ряд недостатков, связанных с нестабильностью и недостатком документации. Godot, напротив, является более зрелым продуктом с богатым набором функций и активным сообществом, хотя и может столкнуться с проблемами производительности и сложности оптимизации.

Тем не менее, мой выбор остается за Nau Engine. Это объясняется тем, что Godot является готовым изделием с начальными возможностями для создания приложений, тогда как Nau Engine предлагает лучшую производительность и большую настраиваемость. Конечно, это связано с риском, поскольку пока этот движок еще слишком “сырой, слабо информационный и нестабильный. Для небольших и комфортных проектов, особенно для новичков и проектов средней сложности, лучше использовать Godot. Если же речь идет о амбициозном проекте работы с множеством данных и высокой производительности — лучше присмотреться к Nau Engine.

Список литературы

  1. Документация NauEngine. [Электронный ресурс]. ‒ Режим доступа: URL:https://nauengine.org/docs/beta/user-doc/ (Дата обращения 26.12.2024)

  2. Документация Godot. [Электронный ресурс]. ‒ Режим доступа: URL:https://docs.godotengine.org/ru/4.x/ (Дата обращения 26.12.2024)

  3. Mansur, A., Marques, G. Godot Engine Game Development in 24 Hours. — Boston: Sams Publishing, 2018. — 300 с.

  4. GLES2 renderer optimization - 2D batching. [Электронный ресурс]. ‒ Режим доступа: URL: GLES2 renderer optimization - 2D batching – Godot Engine (Датаобращения 28.12.2024)

  5. Diller, J. Optimizing Performance in Godot: A Developer's Guide. — Game Development Review, 2023. — № 4. — С. 113-119.

Просмотров работы: 9