Буквально вчера, в обсуждениях затрагивали Godot. Состоялся выпуск 4.0 с обширным количеством изменений. Тк обратная совместимость "сломана" осуществлён переход на новый ведущий номер. Исходники не читал, но наверное его было бы интересно рассмотреть на компьютерной графике. Выпуск Godot Engine 4.0. Движок поддерживает простой для изучения язык задания игровой логики GDScript, графическую среду для проектирования игр, систему развёртывания игр в один щелчок, широкие возможности анимации и симуляции физических процессов, встроенный отладчик и систему выявления узких мест в производительности. Поддерживаются следующие платформы: Linux, Windows, macOS, Wii, Nintendo 3DS, PlayStation 3, PS Vita, Android, iOS, BBX, а так же Web. Обеспечена возможность запуска интерфейса Godot на Android-планшетах и в web-браузере. Распространяются под лицензией MIT. Разработка версии 4.0 заняла около четырёх лет. В неё вошло около 12 тысяч изменений и исправлено 7 тысяч ошибок. В разработке движка и написании документации приняли участие около 1500 человек. В API внесены изменения, нарушающие совместимость. Переход с Godot 3.x на Godot 4.0 потребует переработки приложений, но для ветки Godot 3.x обеспечен длительный цикл поддержки, срок которого будет зависеть от востребованности старого API пользователями. Основные особенности: - Осуществлён переход на API Vulkan вместо OpenGL ES и OpenGL. - Реализован слой абстракций, позволяющий задействовать различные варианты рендеринга и используемого графического API. - Реализованы две системы рендеринга: кластеризованный и мобильный. - В процессе развития находится реализация рендера на базе OpenGL, предназначенная для поддержки старых устройств. - Для динамической отрисовки с более низким разрешением задействована технология AMD FSR (FidelityFX Super Resolution), использующая алгоритмы пространственного масштабирования и реконструкции деталей для снижения потери качества изображения при увеличении масштаба и преобразования в более высокое разрешение. - Добавлена возможность работы с интерфейсом в многооконном режиме (различные панели и части интерфейса можно откреплять в виде отдельных окон). - Добавлен новый редактор интерфейсов пользователя и новый виджет визуального проектирования. - Добавлен новый редактор тем оформления. - Полностью переписана система управления освещением и тенями, в которой задействована работающая в режиме реального времени технология глобального освещения SDFGI (Signed Distance Field Global Illumination). Значительно повышено качество отрисовки теней. - Узел GIProbe, используемый для наполнения сцены отражённым светом, заменён на узел VoxelGI, оптимальный для обработки в режиме реального времени освещения в сценах с небольшими или средними интерьерами помещений. Для маломощного оборудования оставлена возможность упреждающего рендеринга света и теней при помощи карт освещения, для ускорения отрисовки которых теперь задействован GPU. - Реализованы новые техники оптимизации рендеринга. Добавлено автоматическое отсечение (occlusion culling), определяющее и удаляющее из отрисовки модели, скрытые за другими поверхностями, что позволяет повысить производительности отрисовки. - Добавлен режим SSIL (Screen Space Indirect Lighting), позволяющий повысить качество рендеринга на высокопроизводительном оборудовании за счёт улучшения обработки тёмных областей и непрямого освещения. Кроме того, предоставлены дополнительные настройки имитации рассеянного непрямого освещения при помощи техники SSAO (Screen Space Ambient Occlusion), такие как выбор уровня влияния прямого света. - Предложены реалистичные единицы освещённости, позволяющие корректировать интенсивность света и использовать для управления яркостью финальной сцены штатные настройки камеры, такие как диафрагма, выдержка и ISO. - Добавлены новые инструменты для редактирования уровней для двумерных игр. Внесены радикальные изменения в процесс разработки 2D-игр. Добавлен новый редактор зацикленных текстурных карт (tilemap), в котором появилась поддержка слоёв, автозаполнения ландшафта, гибкого выделения объектов, рандомизированной расстановки растений, камней и различных объектов. - Унифицирована работа с зацикленными текстурными картами и наборами фрагментов (tileset) для построения наполнения уровней. Обеспечено автоматическое расширение фрагментов в наборе для исключения пробелов между соседними фрагментами. - Добавлена новая функция расстановки объектов на сцене, которую, например, можно использовать для добавления персонажей в ячейки зацикленной сетки: https://godotengine.org/storage/blog/godot-4-0-sets-sail/03-2d-tilemap-editor.mp4 - При 2D-отрисовке реализована возможность использования групп холста, позволяющих смешивать перекрывающиеся элементы холста, например, можно объединить вместе несколько спрайтов и смешать их с фоном, как если бы эти спрайты были одним элементом. Добавлено свойство Clip Children, позволяющее использовать любой 2D-элемент в качестве маски. В 2D-движок также добавлена опция, позволяющая использовать метод сглаживания MSAA (Multisample Anti-Aliasing) для повышения качества изображений и создания более гладких краев. - Улучшена работа с освещением и тенями в 2D-играх. Значительно повышена производительность при использовании нескольких источников света. Добавлена возможность имитации трёхмерности через изменение уровня освещения на картах нормалей, а также создания таких визуальных эффектов, как длинные тени, ореолы и резкие контуры. - Добавлен эффект объёмного тумана, использующий технику временной репроекции для достижения реалистичного вида и высокой производительности. - Добавлены шейдеры облаков, позволяющие динамически генерировать облака, меняющиеся в режиме реального времени. - Реализована поддержка "декалей", метода проецирования материала на поверхность: https://godotengine.org/storage/blog/godot-4-0-sets-sail/04-vfx-decals.mp4 - Добавлены применяемые для всего игрового пространства эффекты на базе частиц, использующие GPU и поддерживающие аттракторы, столкновения, шлейфы и излучатели: https://godotengine.org/storage/blog/godot-4-0-sets-sail/04-vfx-particle-trails.mp4 - Расширены возможности интерфейса для визуального редактирования шейдеров. - Расширен язык шейдеров, в котором появилась поддержка структур, макросов препроцессора, подстановки шейдеров (оператор 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), которые можно использовать для расширения возможностей движка без его пересборки и без внесения изменений в код. Это позволяет использовать привязки для различных языков программирования (C++, Rust, Go и многих других). - Предложен по умолчанию собственный движок симуляции физических процессов Godot Physics, оптимизированный для решения задач, свойственных компьютерным играм, и доведённый до паритета в функциональности с ранее используемым движком Bullet (например, в Godot Physics добавлена обработка новых форм столкновений, поддержка карты высот и возможность использования узлов SoftBody для симуляции одежды). Проведена оптимизация производительности и расширено применение многопоточности с разделением нагрузки на разные ядра CPU при симуляции физических процессов в 2D- и 3D-окружениях. Решены многие проблемы с симуляцией. Основная причина отказа от Bullet — сильная переусложнённость использования (на низком уровне) и сопровождения. - Предложена новая система отрисовки текста, предоставляющая больше контроля за обрезкой и переносом текста, а также обеспечивающая высокую чёткость при любых экранных разрешениях. - Расширены инструменты для локализации и работы над переводом. - Добавлен отдельный диалог для импорта 2D- и 3D-ресурсов, поддерживающий предпросмотр и изменение настроек импортируемой сцены, материалов и физических свойств. - В редактор добавлены новые виджеты, такие как панель для отката изменений и новый диалог выбора цвета и обновления палитры. - Обновлены интерфейс инспектирования, панель управления сценой и редактор скриптов. Улучшена подсветка синтаксиса, добавлена возможность отображения нескольких курсоров, предоставлены средства для редактирования форматов JSON и YAML. - Расширены возможности редактора анимации, в котором появилась поддержка смешивания фигур и улучшены процессы на базе кривой Безье. Переписан код для 3D-анимации, в котором реализована поддержка сжатия для сокращения потребления памяти. Переписана система для смешивания анимации и создания переходных эффектов. Расширены возможности для создания сложных анимаций. Для хранения и повторного использования созданных анимаций предложены библиотеки анимации. - Добавлен режим создания фильмов, выполняющий покадровый рендеринг сцены с максимальным качеством для создания заставок и записи видео. - Расширена поддержка 3D-шлемов и платформ виртуальной реальности. В основной состав движка встроена поддержка стандарта OpenXR, определяющего универсальный API для создания приложений виртуальной и дополненной реальности. В Windows и Linux обеспечена поддержка всех популярных 3D-шлемов, включая шлемы линейки Vive (SteamVR), Oculus и Monado. - Повышена стабильность подсистемы для организации сетевой игры и упрощён процесс разработки многопользовательских игр. - Расширены возможности звуковой системы, встроена поддержка полифонии, добавлен API для синтеза речи и реализована возможность зацикливания звука. - Добавлена новая система сборки игр для различных архитектур CPU. Например, теперь можно выполнить сборку для Raspberry Pi, Microsoft Volterra, Surface Pro X, Pine Phone, VisionFive, ARM Chromebook и Asahi Linux. #OpenSource #Godot

Теги других блогов: обновление Godot игровой движок