После года разработки некоммерческая организация Open 3D Foundation (O3DF) опубликовала выпуск открытого игрового 3D-движка Open 3D Engine 24.09 (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 модулей, поставляемых в виде отдельных библиотек, пригодных для замены, интеграции в сторонние проекты и использования по отдельности. Например, благодаря модульности разработчики могут заменить рендер графики, звуковую систему, поддержку языков, сетевой стек, физический движок и любые другие компоненты.
Среди изменений в новой версии:
- Добавлена возможность создавать проекты с готовым инсталлятором, не требующие компиляции кода на C++ и содержащие только скрипты на Lua и Script Canvas.
- Существенно ускорен запуск редактора – для крупных проектов с большим числом ассетов сокращение времени запуска может достигать 90%.
- Добавлен высокопроизводительный конвейер рендеринга для мобильных устройств (Mobile Render Pipeline), позволяющий до 400% повысить производительность игр для iOS, Android и устройств виртуальной/дополненной реальности. Значительно снижено потребление памяти в системе рендеринга.
- В бэкенды DX12 и Vulkan добавлена поддержка геометрических шейдеров и шейдеров пересечений (intersection shader).
- Для использования в симуляторах добавлен компонент Georeference, поддерживающий разбор данных в формате Gazebo, а также компонент ROS2FrameComponent.
- Версии движка симуляции физических процессов PhysX 4 и PhysX 5 разделены на отдельные пакеты, что позволило упростить переключение между версиями PhysX в готовых сборках игр.
- Добавлен графический интерфейс для экспорта проекта, поддерживающий экспорт для iOS, Android, Linux и Windows.
- Добавлены настройки, позволяющие значительно (до 90%) сократить размер сервера для работы в режиме без экрана (headless).
- Добавлены специфичные для мобильных устройств графические конвейеры (rendering pipeline), позволяющие пользователю легко включать и выключать различные возможности рендеринга.
- Предоставлены настройки качества, привязываемые к возможностям устройств. Например, доступно три уровня производительности (низкий, средний и высокий), выбираемые в зависимости от параметров CPU, GPU и памяти.
- Предложено несколько вариантов шейдеров, позволяющих при отрисовке автоматически выбирать наиболее производительный шейдер, подходящий для заданных параметров рендеринга.
- Реализована техника “Entity Silhouette“, позволяющая выделить границы объекта, например, для определения какие части объекта должны быть отрисованы, а какие можно игнорировать.
- Добавлен фреймворк для взаимодействия с большими языковыми моделями машинного обучения.
- При высокой нагрузке на CPU для предотвращения разрыва сетевого соединения по таймауту реализована отправка heartbeat-пакетов.
- Добавлена поддержка изображений в формате PGM.