После семи месяцев разработки опубликован релиз свободного игрового движка Godot 4.4, подходящего для создания 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.
В результате конфликта в сообществе в прошлом году был основан форк проекта – Redot. Форк стал ответом на жёсткую политику модерации в официальных каналах общения и непринятия разработчиками Godot суждений, расходящихся с их взглядами. Причинами создания форка названо желание решить проблемы с управлением сообществом и вернуться к работе на благо сообщества, а не во имя корпоративных интересов. Проект Redot пытается построить инклюзивное сообщество, в котором принимаются любые личные убеждения разработчиков, не приемлема политизация процесса разработки и основное внимание сосредоточено только на создании игр. В настоящее время активность разработки форка существенно отстаёт от движка Godot.
Основные изменения в Godot 4.4:
- Добавлена официальная поддержка использования библиотеки Jolt в качестве альтернативного движка симуляции физических процессов.
- На платформах Linux, Windows и Android реализована возможность встраивания игры непосредственно в окно редактора (без открытия отдельного окна). Новый режим позволяет взаимодействовать и игрой как с остальными частями редактора, при том, что как и раньше игра выполняется в отдельном процессе.
- В редактор добавлен режим интерактивного изменения запущенной или приостановленной игры. Например, теперь можно на лету менять положение камеры или вносить изменение в сцену.
- В версию редактора для платформы Android добавлена поддержка стандарта OpenXR и реализована возможность редактирования игр в режиме виртуальной реальности. В настоящее время в редакторе поддерживаются 3D-шлемы Meta Quest 3, Quest 3S и Quest Pro.
- Добавлена поддержка убершейдеров (ubershader), предварительно скомпилированных универсальных вариаций каждого шейдера, которые включают в себя все возможности, необходимые для рендеринга. Убершейдеры используются в качестве резервных в моменты, когда специализированный шейдер ещё не скомпилирован, что позволяет избавиться от подвисаний, возникающих из-за ожидания завершения компиляции шейдеров на лету.
- Добавлена поддержка интерполяции при симуляции физических процессов в трёхмерном пространстве (в прошлой версии интерполяция была доступна только для 2D). Интерполяция добавляет дополнительные кадры для отрисовки промежуточных состояний между текущей и следующей позициями объекта, что делает вывод более плавным на экранах с высокой частотой обновления и на маломощных устройствах.
- Добавлена поддержка алгоритма тональной коррекции AgX (tone mapper), позволяющего добиться более реалистичных результатов при наличии пересвеченных областей, за счёт приближения ярких цветов к белому цвету по аналогии с настоящими камерами. По сравнению с реализацией из Blender, алгоритм упрощён и оптимизирован для использования при отрисовке в режиме реального времени.
- В язык GDScript добавлена поддержка типизированных словарей (ассоциативных массивов): var typed_key_value: Dictionary[int, String] = { 1: “first value”, 2: “second value”, 3: “etc” } var typed_key: Dictionary[int, Variant] = { 0: “any value”, 10: 3.14, 100: null } var typed_value: Dictionary[Variant, int] = { “any value”: 0, 123: 456, null: -1 }
- Добавлена поддержка идентификации ресурсов по уникальным идентификаторам (UID), не привязанным к файловому пути.
- В редакторе реализована возможность прикреплять (snap) 3D-объекты к другим поверхностям в сцене.
- В нижнюю панель редактора добавлена вкладка для вычисления произвольных выражений с учётом состояния, зафиксированного при срабатывании точки останова.
- В редактор GDScript добавлены подсказки с информацией из документации, всплывающие при наведении курсора на функции, переменные и классы.
- Обеспечено запоминание состояния окна редактора и его восстановление после перезапуска.
- В версии редактора для платформы Android реализована поддержка генерации и экспорта APK-пакетов и исполняемых файлов для других платформ.
- На платформе Linux реализована поддержка web-камер.
- Добавлена поддержка загрузки WAV-файлов на лету, по аналогии с файлами OGG Vorbis.
- В состав интегрирован инструментарий Betsy, применяемый для упаковки изображений в различные форматы текстур.