Некоммерческая организация Open 3D Foundation (O3DF) представила выпуск открытого игрового 3D-движка Open 3D Engine 23.10 (O3DE), пригодного для разработки современных игр класса AAA и высокоточных симуляторов, способных работать в режиме реального времени и обеспечивать качество кинематографического уровня. Код написан на С++ и опубликован под лицензией Apache 2.0. Имеется поддержка платформ Linux, Windows, macOS, iOS и Android.
Исходные тексты движка O3DE были открыты в июле 2021 года компанией Amazon и основаны на коде ранее развиваемого проприетарного движка Amazon Lumberyard, построенного на технологиях движка CryEngine, лицензированных у компании Crytek в 2015 году. После открытия развитие движка курирует некоммерческая организация Open 3D Foundation, созданная под эгидой Linux Foundation. Помимо Amazon к совместной работе над проектом подключились такие компании, как Epic Games, Adobe, Huawei, Microsoft, Intel и Niantic.
Движок включает в себя интегрированную среду для разработки игр, многопоточную систему фотореалистичного рендеринга Atom Renderer с поддержкой Vulkan, Metal и DirectX 12, расширяемый редактор 3D-моделей, систему анимирования персонажей (Emotion FX), систему разработки полуфабрикатов (prefab), движок симуляции физических процессов в реальном режиме времени и математические библиотеки, использующие инструкции SIMD. Для определения игровой логики может использоваться среда визуального программирования (Script Canvas), а также языки Lua и Python.
Проект изначально рассчитан на возможность адаптации под свои нужды и имеет модульную архитектуру. Всего предлагается более 30 модулей, поставляемых в виде отдельных библиотек, пригодных для замены, интеграции в сторонние проекты и использования по отдельности. Например, благодаря модульности разработчики могут заменить рендер графики, звуковую систему, поддержку языков, сетевой стек, физический движок и любые другие компоненты.
Среди изменений в новой версии:
- В среду визуального программирования скриптов (Script Canvas) добавлена поддержка компактных узлов (node), занимающих меньше визуального пространства и предназначенных для обработки простых операций. Новая возможность позволяют сделать граф узлов более компактным и простым в отладке.
- Добавлен экспериментальный фреймворк DPE (Document Property Editor) для создания редакторов свойств, не углубляясь в тонкости разработки интерфейсов пользователя на Qt и не заботясь об отдельной реализации средств для сортировки и фильтрации элементов. Разработчику достаточно оформить раскладку элементов, поведение редактирования и свойства интерфейса в виде XML-документа, который преобразуется в необходимый интерфейс при помощи виджета DocumentPropertyEditor. Первым инструментом, реализованным при помощи DPE, стал интерфейс “Консоль переменных” (“Console Variables”).
- Добавлен экспериментальный интерфейс для переопределения
полуфабрикатов (Prefab Overrides), позволяющий в произвольной форме изменять содержимое экземпляров полуфабриката. - Представлены возможности для автоматизации создания пользовательских репозиториев с модулями-дополнениями (Gem), шаблонами и проектами.
- Для упрощения установки скомпилированной версии Open 3D Engine сформированы snap-пакеты для Ubuntu 20.04 и 22.0.
- Расширены возможности экспорта проектов, созданных при помощи Open 3D Engine для Windows, Linux, Linux Server и iOS. В ближайшее время ожидается поддержка экспорта проектов для Android.
- В системе рендеринга Atoм проведена работа по повышению производительности и качества отрисовки, добавлена поддержка мобильных устройств на базе iOS и Android. Добавлен фреймворк для работы одновременно с несколькими GPU. Реализована поддержка отражений на базе трассировки лучей. Добавлена поддержка механизмов выделения памяти VMA (Vulkan Memory Allocator) и DX12MA (DirectX Memory Allocator).
- Расширены возможности для создания симуляторов роботов. Значительно улучшена система шаблонов проектов для роботов. Добавлен шаблон для быстрого создания роботов-манипуляторов. Предложена документация по запуску шаблонов проектов при помощи платформы Robot Operating System (ROS2). Добавлена поддержка призматических соединений для передачи крутящего момента. Повышена производительность и расширены возможности по настройке компонента с камерой. Предложены два вида захватов: вакуумный и пальцевый. Добавлен компонент с контактным датчиком.