Выпуск открытого игрового движка Godot 4.1
После четырёх месяцев разработки опубликован релиз свободного игрового движка Godot 4.1, подходящего для создания 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.
Основные изменения:
В графическом интерфейсе появилась возможность отсоединения в отдельные плавающие окна документации и редакторов скриптов, включая редактор шейдеров, для перемещения их на другие экраны. Обеспечено запоминание раскладки окон интерфейса, что позволяет вернуться к тому же расположению окон после закрытия и повторного открытия редактора.
Добавлена поддержка экспорта в интерфейс инспектирования типизированных массивов и связанных с ними наборов узлов.
В менеджер проектов для упрощения навигации по большому числу проектов добавлены возможности привязки тегов к проектам и фильтрации проектов по тегам.
В системе рендеринга переработана реализация завихрения частиц, используемая в играх для создания эффектов раскидывания элементов.
Добавлены новые 3D-текстуры с визуальным шумом (NoiseTexture3D), позволяющие управлять плотностью объёмного тумана и делать его менее насыщенным в определённых местах, или имитировать ветер, воздействующий на частицы.
Полностью переделан алгоритм избегания столкновений при использовании AI-навигации, который избавлен от привязки к одной поверхности и теперь может применяться как в 2D, так и в 3D. Предоставлена возможность назначения приоритетов и определения слоёв, определяющих кто кого должен избегать.
Задействован основанный на быстрых хэшах алгоритм определения элементов дерева узлов, который позволил в несколько раз ускорить выполнение операций добавления и удаления узлов, наиболее важных для обеспечения высокой производительности сложных игр, активно манипулирующих узлами. Ценой данной оптимизации стало небольшое замедление редко используемых операций с узлами и повышение потребления памяти базовым классом Node примерно на 10%.
Добавлена экспериментальная поддержка многопоточной обработки сцен. Проведена работа по устранению проблем и ограничений, связанных с многопоточной загрузкой. В настройки узлов добавлены опции для выбора режима последовательной или параллельной обработки.
В бэкенде рендеринга на базе графического API Vulkan включено кэширование результатов компиляции графических конвейеров (pipeline), которое дополнило ранее доступное кэширование шейдеров.
Предложено несколько способов решения проблемы с размещением модели задом-наперёд после импорта: изменение направлений передней и задней камер в редакторе и добавление в функцию look_at () флага для использования пространства модели в качестве ориентира для выбора направления.
Включён по умолчанию режим сглаживания дельта-кадров (кадры, содержащие данные об изменениях относительно предыдущего кадра), позволяющий повысить плавность движений и игрового процесса.
В языке сценариев GDScript реализована возможность создания статических переменных для совместного доступа к общем данным из нескольких экземпляров одного скрипта, что позволяет обойтись без использования ресурсов и автозагрузки. Для определения статической переменной следует использовать ключевое слово static перед определением переменной вначале скрипта.
Переделана поддержка автоматической генерации документации для именованных классов. Добавлена возможность указания документирующих строк рядом с определением переменной или функции, а не в предыдущей строке.
Проведена работа по доведению возможностей скриптов на C# до паритета с возможностями GDScript. Добавлена возможность определения типа узла, используемого в редакторе, через добавление атрибута »[GlobalClass]» в скрипт. Также добавлена поддержка атрибута »[Icon]» для привязки к глобальному классу своей пиктограммы.
Продолжено развитие экспериментальной системы расширений (GDExtension), которые можно использовать для расширения возможностей движка без его пересборки и без внесения изменений в код. Возможности GDExtension приближены к функцилнальности скриптов на GDScript и C#. Добавлена поддержка создания при помощи GDExtension узлов шейдера и плагинов для редактора.
Закрыто более 900 сообщений об ошибках, отправленных после выпуска Godot 4.0.
Источник: http://www.opennet.ru/opennews/art.shtml? num=59412
© OpenNet