Armory Engine. Введение

Итак, я расскажу вам о таком замечательном игровом движке как Armory3D. Написал его и развивает Lubos Lenco, словацкий программист. Он же и написал Armory Paint, программу для рисования PBR текстур на 3D моделях. Расскажу чем он примечателен:

  • Открытый (лицензия zlib)
  • Кроссплатформенный (Windows, Android, IOS, Linux, macOS)
  • Совершенно бесплатный (вы можете пожертвовать автору на развитие).

Движок написан на Haxe, С/С++ и WebAssembly, поставляется в виде аддона для Blender, но спокойно интегрируется и другие пакеты 3D моделирования и анимации. Движок оптимизирован на производительность, переносимость и легковесность кода в отличии от таких монстров как Unity, Unreal, CryEngine etc.

Компоненты движка

Движок состоит из нескольких компонентов о которых расскажу ниже:

  • Рендер. У движка своя собственная система рендеринга Iron. Она основана основана шейдерах EEVEE/Cycles Blender, но только частично. Вот список тех которые можно использовать.
  • Скриптовая система. Скрипты в Armory используют traits (особенность, черта), часть логики прикрепленная к объекту (о ней будет подробнее чуть ниже)
  • Мультиплатформенность. Движок поддерживает «из коробки» все доступные популярные платформы -ПК (Windows, Linux, macOS), консоли (Xbox One — Series X, PS4, Nintendo Switch, и мобильные OS(Android, IOS).

Теперь о скриптах, в движке их 4 типа:

  1. LogicNodeTraits: это аналог blueprints Unreal Engine 4.
  2. Haxe Traits: traits написанные на Haxe.
  3. Canvas Traits: UI, меню и прочее.
  4.  WASM Traits: traits написанные на WebAssembly, Rust, C/C++.

Технологии движка

Движок использует Iron, KHA и Haxe:

  • Iron. Внутренний рендер движка написан на  Iron, KHA и Haxe. Легко масштабируется, поскольку является модульным. Сам iron обрабатывает контейнеры визуализации, поэтому на его основе можно писать свой собственный движок
  • Haxe. Открытый кроссплатформенный инструмент основанный основанный на современном, высокоуровневом, строго типизированном, многопарадигмальном языке программирования и кросс-компиляторе. Который может компилировать код для целевого исходного кода платформы или двоичного кода. В своей сущности конвертер кода. Написав код для python вы сможете перенести его на lua, c++ и так далее. Очень удобно для переноса
  • KHA. SDK и мультимедийный фреймворк  в одном лице. Компактный, производительный для создания кроссплатформенных приложений. KHA предоставляет API для сети, аудио. ввода, графики (Metal, Vulkan, DirectX, WebGL и OpenGL). Генерирует высокоскоростной компактный код для всех платформ.

У движка нет огромного комьюнити как Unreal или Unity, но тем не менее он заслуживает внимания. Ведь он использует все современные технологии, легкий и модульный. Автор постепенно развивает и улучшает свое детище, а исходники доступны каждому.

В следующем посте я расскажу как установить движок и сделать первый тестовый уровень.

 

Источник

armory3d, игровой движок

Читайте также