Выпуск игрового движка Open 3D Engine 24.09, открытого компанией Amazon

После года разработки некоммерческая организация 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.

Release. Ссылка here.