Выпуск открытого игрового движка 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.

Основные изменения:

  • В графическом интерфейсе появилась возможность отсоединения в отдельные плавающие окна документации и редакторов скриптов, включая редактор шейдеров, для перемещения их на другие экраны. Обеспечено запоминание раскладки окон интерфейса, что позволяет вернуться к тому же расположению окон после закрытия и повторного открытия редактора.

    CFD0C5CECEC5D4_1688914962.png

  • Добавлена поддержка экспорта в интерфейс инспектирования типизированных массивов и связанных с ними наборов узлов. CFD0C5CECEC5D4_1688915299.png

  • В менеджер проектов для упрощения навигации по большому числу проектов добавлены возможности привязки тегов к проектам и фильтрации проектов по тегам.

    CFD0C5CECEC5D4_1688915414.png

  • В системе рендеринга переработана реализация завихрения частиц, используемая в играх для создания эффектов раскидывания элементов.

    CFD0C5CECEC5D4_1688915531.png

  • Добавлены новые 3D-текстуры с визуальным шумом (NoiseTexture3D), позволяющие управлять плотностью объёмного тумана и делать его менее насыщенным в определённых местах, или имитировать ветер, воздействующий на частицы. CFD0C5CECEC5D4_1688915758.png

  • Полностью переделан алгоритм избегания столкновений при использовании AI-навигации, который избавлен от привязки к одной поверхности и теперь может применяться как в 2D, так и в 3D. Предоставлена возможность назначения приоритетов и определения слоёв, определяющих кто кого должен избегать.

    CFD0C5CECEC5D4_1688915989.png

  • Задействован основанный на быстрых хэшах алгоритм определения элементов дерева узлов, который позволил в несколько раз ускорить выполнение операций добавления и удаления узлов, наиболее важных для обеспечения высокой производительности сложных игр, активно манипулирующих узлами. Ценой данной оптимизации стало небольшое замедление редко используемых операций с узлами и повышение потребления памяти базовым классом Node примерно на 10%.

  • Добавлена экспериментальная поддержка многопоточной обработки сцен. Проведена работа по устранению проблем и ограничений, связанных с многопоточной загрузкой. В настройки узлов добавлены опции для выбора режима последовательной или параллельной обработки.

    CFD0C5CECEC5D4_1688905702.png

  • В бэкенде рендеринга на базе графического API Vulkan включено кэширование результатов компиляции графических конвейеров (pipeline), которое дополнило ранее доступное кэширование шейдеров.

  • Предложено несколько способов решения проблемы с размещением модели задом-наперёд после импорта: изменение направлений передней и задней камер в редакторе и добавление в функцию look_at () флага для использования пространства модели в качестве ориентира для выбора направления.

    CFD0C5CECEC5D4_1688907713.png

    CFD0C5CECEC5D4_1688907700.png

  • Включён по умолчанию режим сглаживания дельта-кадров (кадры, содержащие данные об изменениях относительно предыдущего кадра), позволяющий повысить плавность движений и игрового процесса.

  • В языке сценариев GDScript реализована возможность создания статических переменных для совместного доступа к общем данным из нескольких экземпляров одного скрипта, что позволяет обойтись без использования ресурсов и автозагрузки. Для определения статической переменной следует использовать ключевое слово static перед определением переменной вначале скрипта.

    CFD0C5CECEC5D4_1688914186.png

  • Переделана поддержка автоматической генерации документации для именованных классов. Добавлена возможность указания документирующих строк рядом с определением переменной или функции, а не в предыдущей строке.

  • Проведена работа по доведению возможностей скриптов на C# до паритета с возможностями GDScript. Добавлена возможность определения типа узла, используемого в редакторе, через добавление атрибута »[GlobalClass]» в скрипт. Также добавлена поддержка атрибута »[Icon]» для привязки к глобальному классу своей пиктограммы.

  • Продолжено развитие экспериментальной системы расширений (GDExtension), которые можно использовать для расширения возможностей движка без его пересборки и без внесения изменений в код. Возможности GDExtension приближены к функцилнальности скриптов на GDScript и C#. Добавлена поддержка создания при помощи GDExtension узлов шейдера и плагинов для редактора.

    CFD0C5CECEC5D4_1688914694.png

  • Закрыто более 900 сообщений об ошибках, отправленных после выпуска Godot 4.0.





Источник: http://www.opennet.ru/opennews/art.shtml? num=59412

© OpenNet