После четырёх лет разработки опубликован релиз свободного игрового движка 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 человек. Среди ключевых изменений:
Исходные тексты движка были открыты в 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.
- Добавлена возможность работы с интерфейсом в многооконном режиме (различные панели и части интерфейса можно откреплять в виде отдельных окон).
- Добавлен новый редактор интерфейсов пользователя и новый виджет визуального проектирования.
- Добавлен новый редактор тем оформления.
- Полностью переписана система управления освещением и тенями, в которой задействована работающая в режиме реального времени технология глобального освещения SDFGI (Signed Distance Field Global Illumination). Значительно повышено качество отрисовки теней.
- Узел GIProbe, используемый для наполнения сцены отражённым светом, заменён на узел VoxelGI, оптимальный для обработки в режиме реального времени освещения в сценах с небольшими или средними интерьерами помещений. Для маломощного оборудования оставлена возможность упреждающего рендеринга света и теней при помощи карт освещения, для ускорения отрисовки которых теперь задействован GPU.
- Реализованы новые техники оптимизации рендеринга. Добавлено автоматическое окклюзивное обрезание (occlusion culling), динамически определяющее и удаляющее модели, скрытые за другими поверхностями для повышения производительности рендеринга и снижения нагрузки на CPU и GPU.
- Добавлен режим SSIL (Screen Space Indirect Lighting), позволяющий повысить качество рендеринга на высокопроизводительном оборудовании за счёт улучшения обработки тёмных областей и непрямого освещения. Кроме того, предоставлены дополнительные настройки имитации рассеянного непрямого освещения при помощи техники SSAO (Screen Space Ambient Occlusion), такие как выбор уровня влияния прямого света.
- Предложены реалистичные единицы освещённости, позволяющие корректировать интенсивность света и использовать для управления яркостью финальной сцены штатные настройки камеры, такие как диафрагма, выдержка и ISO.
- Добавлены новые инструменты для редактирования уровней для двумерных игр. Внесены радикальные изменения в процесс разработки 2D-игр. Добавлен новый редактор тайловых карт (tilemap), котором появилась поддержка слоёв, автозаполнения ландшафта, рандомизированной расстановки растений, камней и различных объектов, гибкого выделения объектов. Унифицирована работа с тайловыми картами и наборами фрагментов для построения карты (tileset). Обеспечено автоматическое расширение фрагментов в наборе для исключения пробелов между соседними фрагментами. Добавлена новая функция расстановки объектов на сцене, которую, например, можно использовать для добавления персонажей в ячейки тайловой сетки.
- При 2D-отрисовке реализована возможность использования групп холста, позволяющих смешивать перекрывающиеся элементы холста, например, можно объединить вместе несколько спрайтов и смешать их с фоном, как если бы эти спрайты были одним элементом. Добавлено свойство Clip Children, позволяющее использовать любой 2D-элемент в качестве маски. В 2D-движок также добавлена опция, позволяющая использовать метод сглаживания MSAA (Multisample Anti-Aliasing) для повышения качества изображений и создания более гладких краев.
- Улучшена работа с освещением и тенями в 2D-играх. Значительно повышена производительность при использовании нескольких источников света. Добавлена возможность имитации трёхмерности через изменение уровня освещения на картах нормалей, а также создания таких визуальных эффектов, как длинные тени, ореолы и чёткие контуры.
- Добавлен эффект объёмного тумана, использующий технику временно репроекции для достижения реалистичного вида и высокой производительности.
- Добавлены шейдеры облаков, позволяющие динамически генерировать облака, меняющиеся в режиме реального времени.
- Реализована поддержка "декалей", метода проецирования материала на поверхность.
- Добавлены применяемые для всего игрового пространства эффекты на базе частиц, использующие GPU и поддерживающие аттракторы, столкновения, шлейфы и излучатели.
- Расширены возможности интерфейса для визуального редактирования шейдеров.
- Расширен язык шейдеров, в котором появилась поддержка структур, макросов препроцессора, подстановки шейдеров (оператор include), унифицированных массивов и использования "varying" для передачи данных из обработчика фрагмента в обработчик освещения.
- Добавлена возможность применения вычислительных шейдеров, использующих GPU для ускорения алгоритмов.
- В языке сценариев GDScript улучшена система статической типизации, добавлен новый синтаксис определения свойств, предложены ключевые слова await и super, добавлены операции map/reduce, реализована новая система аннотаций, появилась возможность использования unicode-символов в именах переменных и названиях функций. Добавлен инструмент для автоматической генерации документации. Повышена производительность и стабильность GDScript runtime. В среде разработки обеспечена возможность показа сразу нескольких ошибок, добавлены новые предупреждения для типовых проблем.
- Расширены возможности разработки игровой логики на языке 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-ресурсов, поддерживающий предпросмотр и изменение настроек импортируемой сцены, материалов и физических свойств.
- В редактор добавлены новые виджеты, такие как панель для отката изменений и новый диалог выбора цвета и обновления палитры.
- Обновлены интерфейс инспектирования, панель управления сценой и редактор скриптов. Улучшена подсветка синтаксиса, добавлена возможность отображения нескольких курсоров, предоставлены средства для редактирования форматов JSON и YAML.
- Расширены возможности редактора анимации, в котором появилась поддержка смешивания фигур и улучшены процессы на базе кривой Безье. Переписан код для 3D-анимации, в котором реализована поддержка сжатия для сокращения потребления памяти. Переписана система для смешивания анимации и создания переходных эффектов. Расширены возможности для создания сложных анимаций. Для хранения и повторного использования созданных анимаций предложены библиотеки анимации.
- Добавлен режим создания фильмов, выполняющий покадровый рендеринг сцены с максимальным качеством для создания заставок и записи видео.
- Расширена поддержка 3D-шлемов и платформ виртуальной реальности. В основной состав движка встроена поддержка стандарта OpenXR, определяющего универсальный API для создания приложений виртуальной и дополненной реальности. В Windows и Linux обеспечена поддержка всех популярных 3D-шлемов, включая шлемы SteamVR, Oculus и Monado.
- Повышена стабильность подсистемы для организации сетевой игры и упрощён процесс разработки многопользовательских игр.
- Расширены возможности звуковой системы, встроена поддержка полифонии, добавлен API для синтеза речи и реализована возможность зацикливания звука.
- Обеспечена возможность запуска интерфейса Godot на Android-планшетах и в web-браузере.
- Добавлена новая система сборки игр для различных архитектур CPU. Например, теперь можно выполнить сборку для Raspberry Pi, Microsoft Volterra, Surface Pro X, Pine Phone, VisionFive, ARM Chromebook и Asahi Linux.
- В API внесены изменения, нарушающие совместимость. Переход с Godot 3.x на Godot 4.0 потребует переработки приложений, но для ветки Godot 3.x обеспечен длительный цикл поддержки, срок которого будет зависеть от востребованности старого API пользователями.
Выпуск открытого игрового движка Godot 4.0
www.opennet.ru