Вышел открытый игровой движок Godot 4.0
Разработчики выпустили релиз опенсорсного игрового движка Godot 4.0 для создания 2D- и 3D-игр. Он поддерживает язык задания игровой логики, графическую среду для проектирования игр, систему развёртывания в один клик, анимацию и симуляцию физических процессов, а также встроенный отладчик.
Код игрового движка распространяются под открытой лицензией MIT. Он поддерживает стационарные и мобильные платформы (Linux, Windows, macOS, Wii, Nintendo 3DS, PlayStation 3, PS Vita, Android, iOS, BBX), а также веб-разработку. Готовые для запуска бинарные сборки сформированы для Linux, Android, Windows и macOS.
Основные изменения в Godot 4.0 включают:
два новых бэкенда рендеринга (кластеризованный и мобильный) на базе графического API Vulkan. Для старых и маломощных устройств интегрирован бэкенд обеспечения совместимости на базе OpenGL. Для динамической отрисовки с более низким разрешением появилась технология суперсэмплинга AMD FSR (FidelityFX Super Resolution). Реализован движок рендеринга на базе Direct3D 12;
новый редактор тем оформления;
обновлённую систему управления освещением и тенями с технологией глобального освещения SDFGI (Signed Distance Field Global Illumination);
автоматическое окклюзивное обрезание (occlusion culling), динамически определяющее и удаляющее модели, скрытые за другими поверхностями;
режим SSIL (Screen Space Indirect Lighting) для повышения качества рендеринга на высокопроизводительном оборудовании за счёт улучшения обработки тёмных областей и непрямого освещения. Дополнительные настройки имитации рассеянного непрямого освещения при помощи техники SSAO (Screen Space Ambient Occlusion) позволяют выбирать уровень влияния прямого света;
реалистичные единицы освещённости, чтобы корректировать интенсивность света и использовать для управления яркостью финальной сцены штатные настройки камеры;
новые инструменты для редактирования уровней для двумерных игр. Добавлен новый редактор тайловых карт (tilemap) с поддержкой слоёв, автозаполнением ландшафта, рандомизированной расстановки и гибким выделением объектов. Унифицирована работа с тайловыми картами и наборами фрагментов для построения карты (tileset), появилось автоматическое расширение фрагментов в наборе для исключения пробелов, добавлена новая функция расстановки объектов на сцене;
возможность использования групп холста при 2D-отрисовке. Добавлено свойство Clip Children, позволяющее использовать любой 2D-элемент в качестве маски. Метод сглаживания MSAA (Multisample Anti-Aliasing) внедрён для повышения качества изображений и создания более гладких краев;
улучшенную работу с освещением и тенями в 2D-играх и повышение производительности при использовании нескольких источников света. Появилась возможность имитации трёхмерности через изменение уровня освещения на картах нормалей;
эффекты на базе частиц, использующие GPU и поддерживающие аттракторы, столкновения, шлейфы и излучатели;
новые возможности интерфейса для визуального редактирования шейдеров;
расширение языка шейдеров, где появилась поддержка структур, макросов препроцессора, подстановки шейдеров, унифицированных массивов и использования «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, оптимизированный для решения задач игр;
новую систему отрисовки текста, предоставляющая с большим контролем за его обрезкой и переносом;
инструменты для локализации и работы над переводом;
отдельный диалог для импорта 2D- и 3D-ресурсов с предпросмотром и изменением настроек импортируемой сцены, материалов и физических свойств;
новые виджеты редактора, такие как панель для отката изменений и новый диалог выбора цвета и обновления палитры;
интерфейс инспектирования, панель управления сценой и редактор скриптов с улучшенной подсветкой синтаксиса, возможностью отображения нескольких курсоров, средствами для редактирования форматов JSON и YAML;
новые возможности редактора анимации с поддержкой смешивания фигур и процессами на базе кривой Безье. В коде для 3D-анимации реализована поддержка сжатия для сокращения потребления памяти и расширены возможности для создания сложных анимаций;
режим создания фильмов с покадровым рендерингом сцены с максимальным качеством для создания заставок и записи видео;
расширенную поддержку 3D-шлемов и платформ виртуальной реальности. В основной состав движка встроена поддержка стандарта OpenXR, в Windows и Linux обеспечена поддержка SteamVR, Oculus и Monado;
улучшенную стабильность подсистемы для организации сетевой игры и упрощённый процесс разработки многопользовательских игр;
новые возможности звуковой системы с поддержкой полифонии, API для синтеза речи и возможностью зацикливания звука;
возможность запуска интерфейса Godot на Android-планшетах и в браузере;
новую систему сборки игр для различных архитектур 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 обеспечен длительный цикл поддержки.