Выпуск открытого игрового движка Godot 4.0

После четырёх лет разработки опубликован релиз свободного игрового движка Godot 4.0, подходящего для создания 2D- и 3D-игр. Движок поддерживает простой для изучения язык задания игровой логики, графическую среду для проектирования игр, систему развёртывания игр в один клик, широкие возможности анимации и симуляции физических процессов, встроенный отладчик и систему выявления узких мест в производительности. Код игрового движка, среды проектирования игр и сопутствующих средств разработки (физический движок, звуковой сервер, бэкенды 2D/3D рендеринга и т.п.) распространяются под лицензией MIT.

Исходные тексты движка были открыты в 2014 году студией OKAM, после десяти лет развития проприетарного продукта профессионального уровня, который использовался для создания и публикации многих игр для PC, игровых консолей и мобильных устройств. Движком поддерживаются все популярные стационарные и мобильные платформы (Linux, Windows, macOS, Wii, Nintendo 3DS, PlayStation 3, PS Vita, Android, iOS, BBX), а также разработка игр для Web. Готовые для запуска бинарные сборки сформированы для Linux, Android, Windows и macOS.

В ветку Godot 4.0 включено около 12 тысяч изменений и исправлено 7 тысяч ошибок. В разработке движка и написании документации приняли участие около 1500 человек. Среди ключевых изменений:

  • Предложены два новых бэкенда рендеринга (кластеризованный и мобильный) на базе графического API Vulkan, которые пришли на смену бэкендам, выполняющим отрисовку через OpenGL ES и OpenGL. Для старых и маломощных устройств интегрирован бэкенд обеспечения совместимости на базе OpenGL, использующий новую архитектуру рендеринга. Для динамической отрисовки с более низким разрешением задействована технология суперсэмплинга AMD FSR (FidelityFX Super Resolution), использующая алгоритмы пространственного масштабирования и реконструкции деталей для снижения потери качества изображения при увеличении масштаба и преобразования в более высокое разрешение. Реализован движок рендеринга на базе Direct3D 12, который позволит улучшить поддержку платформ Windows и Xbox.

    CFD0C5CECEC5D4_1677696261.png

  • Добавлена возможность работы с интерфейсом в многооконном режиме (различные панели и части интерфейса можно откреплять в виде отдельных окон).

    CFD0C5CECEC5D4_1677748504.png

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

    CFD0C5CECEC5D4_1677748563.png

  • Добавлен новый редактор тем оформления.

    CFD0C5CECEC5D4_1677748588.png

  • Полностью переписана система управления освещением и тенями, в которой задействована работающая в режиме реального времени технология глобального освещения SDFGI (Signed Distance Field Global Illumination). Значительно повышено качество отрисовки теней.

    CFD0C5CECEC5D4_1677696924.png

  • Узел GIProbe, используемый для наполнения сцены отражённым светом, заменён на узел VoxelGI, оптимальный для обработки в режиме реального времени освещения в сценах с небольшими или средними интерьерами помещений. Для маломощного оборудования оставлена возможность упреждающего рендеринга света и теней при помощи карт освещения, для ускорения отрисовки которых теперь задействован GPU.

    CFD0C5CECEC5D4_1677697000.png

  • Реализованы новые техники оптимизации рендеринга. Добавлено автоматическое окклюзивное обрезание (occlusion culling), динамически определяющее и удаляющее модели, скрытые за другими поверхностями для повышения производительности рендеринга и снижения нагрузки на CPU и GPU. CFD0C5CECEC5D4_1677738156.png

  • Добавлен режим SSIL (Screen Space Indirect Lighting), позволяющий повысить качество рендеринга на высокопроизводительном оборудовании за счёт улучшения обработки тёмных областей и непрямого освещения. Кроме того, предоставлены дополнительные настройки имитации рассеянного непрямого освещения при помощи техники SSAO (Screen Space Ambient Occlusion), такие как выбор уровня влияния прямого света.

  • Предложены реалистичные единицы освещённости, позволяющие корректировать интенсивность света и использовать для управления яркостью финальной сцены штатные настройки камеры, такие как диафрагма, выдержка и ISO.

  • Добавлены новые инструменты для редактирования уровней для двумерных игр. Внесены радикальные изменения в процесс разработки 2D-игр. Добавлен новый редактор тайловых карт (tilemap), котором появилась поддержка слоёв, автозаполнения ландшафта, рандомизированной расстановки растений, камней и различных объектов, гибкого выделения объектов. Унифицирована работа с тайловыми картами и наборами фрагментов для построения карты (tileset). Обеспечено автоматическое расширение фрагментов в наборе для исключения пробелов между соседними фрагментами. Добавлена новая функция расстановки объектов на сцене, которую, например, можно использовать для добавления персонажей в ячейки тайловой сетки.



  • При 2D-отрисовке реализована возможность использования групп холста, позволяющих смешивать перекрывающиеся элементы холста, например, можно объединить вместе несколько спрайтов и смешать их с фоном, как если бы эти спрайты были одним элементом. Добавлено свойство Clip Children, позволяющее использовать любой 2D-элемент в качестве маски. В 2D-движок также добавлена опция, позволяющая использовать метод сглаживания MSAA (Multisample Anti-Aliasing) для повышения качества изображений и создания более гладких краев.

    CFD0C5CECEC5D4_1677739984.png

  • Улучшена работа с освещением и тенями в 2D-играх. Значительно повышена производительность при использовании нескольких источников света. Добавлена возможность имитации трёхмерности через изменение уровня освещения на картах нормалей, а также создания таких визуальных эффектов, как длинные тени, ореолы и чёткие контуры.

    CFD0C5CECEC5D4_1677740013.png

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

    CFD0C5CECEC5D4_1677741271.png

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

    CFD0C5CECEC5D4_1677741302.png

  • Реализована поддержка «декалей», метода проецирования материала на поверхность.



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



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

    CFD0C5CECEC5D4_1677744623.png

  • Расширен язык шейдеров, в котором появилась поддержка структур, макросов препроцессора, подстановки шейдеров (оператор include), унифицированных массивов и использования «varying» для передачи данных из обработчика фрагмента в обработчик освещения.

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

  • В языке сценариев GDScript улучшена система статической типизации, добавлен новый синтаксис определения свойств, предложены ключевые слова await и super, добавлены операции map/reduce, реализована новая система аннотаций, появилась возможность использования unicode-символов в именах переменных и названиях функций. Добавлен инструмент для автоматической генерации документации. Повышена производительность и стабильность GDScript runtime. В среде разработки обеспечена возможность показа сразу нескольких ошибок, добавлены новые предупреждения для типовых проблем.

    CFD0C5CECEC5D4_1677745430.png

  • Расширены возможности разработки игровой логики на языке C#. Добавлена поддержка платформы .NET 6 и языка C# 10. Для скалярных значений задействованы 64-разрядные типы. Многие API переведены с типов int и float на long и double. Предоставлена возможность определения сигналов в форме событий C#. Добавлена возможность разработки расширений GDExtensions на языке C#.

  • Добавлена экспериментальная поддержка расширений (GDExtension), которые можно использовать для расширения возможностей движка его пересборки и внесения изменений в код.

  • Предложен собственный движок симуляции физических процессов Godot Physics, оптимизированный для решения задач, свойственных компьютерным играм, и доведённый до паритета в функциональности с ранее используемым движком Bullet (например, в Godot Physics добавлена обработка новых форм столкновений, поддержка карты высот и возможность использования узлов SoftBody для симуляции одежды). Проведена оптимизация производительности и расширено применение многопоточности с разделением нагрузки на разные ядра CPU при симуляции физических процессов в 2D- и 3D-окружениях. Решены многие проблемы с симуляцией.

  • Предложена новая система отрисовки текста, предоставляющая больше контроля за обрезкой и переносом текста, а также обеспечивающая высокую чёткость при любых экранных разрешениях.
  • Расширены инструменты для локализации и работы над переводом.

  • Добавлен отдельный диалог для импорта 2D- и 3D-ресурсов, поддерживающий предпросмотр и изменение настроек импортируемой сцены, материалов и физических свойств.

    CFD0C5CECEC5D4_1677749096.png

  • В редактор добавлены новые виджеты, такие как панель для отката изменений и новый диалог выбора цвета и обновления палитры. CFD0C5CECEC5D4_1677749249.png

  • Обновлены интерфейс инспектирования, панель управления сценой и редактор скриптов. Улучшена подсветка синтаксиса, добавлена возможность отображения нескольких курсоров, предоставлены средства для редактирования форматов JSON и YAML.



  • Расширены возможности редактора анимации, в котором появилась поддержка смешивания фигур и улучшены процессы на базе кривой Безье. Переписан код для 3D-анимации, в котором реализована поддержка сжатия для сокращения потребления памяти. Переписана система для смешивания анимации и создания переходных эффектов. Расширены возможности для создания сложных анимаций. Для хранения и повторного использования созданных анимаций предложены библиотеки анимации.

    CFD0C5CECEC5D4_1677750007.png

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

  • Расширена поддержка 3D-шлемов и платформ виртуальной реальности. В основной состав движка встроена поддержка стандарта OpenXR, определяющего универсальный API для создания приложений виртуальной и дополненной реальности. В Windows и Linux обеспечена поддержка всех популярных 3D-шлемов, включая шлемы SteamVR, Oculus и Monado.

  • Повышена стабильность подсистемы для организации сетевой игры и упрощён процесс разработки многопользовательских игр.

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

  • В API внесены изменения, нарушающие совместимость. Переход с Godot 3.x на Godot 4.0 потребует переработки приложений, но для ветки Godot 3.x обеспечен длительный цикл поддержки, срок которого будет зависеть от востребованности старого API пользователями.

  • Обеспечена возможность запуска интерфейса Godot на Android-планшетах и в web-браузере.

    CFD0C5CECEC5D4_1677750387.png

  • Добавлена новая система сборки игр для различных архитектур CPU. Например, теперь можно выполнить сборку для Raspberry Pi, Microsoft Volterra, Surface Pro X, Pine Phone, VisionFive, ARM Chromebook и Asahi Linux.






Источник: http://www.opennet.ru/opennews/art.shtml? num=58730

© OpenNet