
Привет! Расскажу вам о движке Armory, совершенно случайно наткнулся на него в сети. И знаете, он хорош. Чем, расскажу под катом. Написал его и развивает Lubos Lenco, словацкий программист. Он же и написал Armory Paint, программу для рисования PBR текстур на 3D моделях. Первая его особенность — это аддон для Blender. Да, олды вспомнят про ныне покойный Blender Game Engine. Особой популярностью он не пользовался, Blender в то время имел достаточно сложный интерфейс, да и особых инструментов облегчающих работу с движком не было, его оттуда убрали в версии 2.79. Чем же тогда хорош Armory?
- Открытый (лицензия zlib)
- Кроссплатформенный. Серьезно, не выходя из Blender, можно собрать ваш проект в несколько кликов для всех доступных платформ — ПК (Windows и Linux), консолей (PlayStation, Xbox, Switch) и Android с IOS
- Поддерживает все современные графические технологии — DirectX, Vulkan, OpenGL, Metal. Ну и конечно же PBR рендеринг. Raytracing пока в разработке.
Могуч, верно? Написан на Haxe, С/С++ и WebAssembly, поставляется в виде аддона для Blender, но спокойно интегрируется и другие пакеты 3D моделирования и анимации. Движок легкий, оптимизированный, достаточно производительный. Но в бочке меда есть и огромная ложка дегтя — все, что у вас есть, только Blender и плагины к нему.
Компоненты
Теперь о технологиях. Что же наш герой содержит:
- Рендер. У движка своя собственная система PBR рендеринга Iron. Она основана на шейдерах EEVEE/Cycles Blender, но только частично. Вот список тех которые можно использовать.
- Скриптовая система/ИИ. Скрипты в Armory используют traits (особенность, черта — так именуются сценарии в Armory, ближайший аналог Entities в Source engine), часть логики прикрепленная к объекту (о ней будет подробнее чуть ниже). Скрипты пишутся на Haxe или составляются в Logic Editor.
- Физический движок. Bullet или Oimo.
Traits в Armory четыре типа:
- LogicNodeTraits: это аналог blueprints Unreal Engine 4. Составляются в граф.редакторе.
- Haxe Traits: traits написанные на Haxe.
- Canvas Traits: UI, меню и прочее.
- WASM Traits: traits написанные на WebAssembly, Rust, C/C++.
Технологии
Движок использует Iron, KHA и Haxe:
- Iron. Внутренний рендер движка написан на WebAssembly, KHA и Haxe. Легко масштабируется, поскольку является модульным. Сам Iron обрабатывает контейнеры визуализации, поэтому на его основе можно писать свой собственный графический движок.
- Haxe. Открытый кроссплатформенный инструмент основанный на современном, высокоуровневом, строго типизированном, многопарадигмальном языке программирования и кросс-компиляторе. Который может компилировать код для целевого исходного кода платформы или двоичного кода. В своей сущности конвертер кода. Написав код на python вы сможете перенести его на lua, c++ и так далее. Очень удобно для портирования.
- KHA. SDK и мультимедийный фреймворк в одном лице. Компактный, производительный для создания кроссплатформенных приложений. KHA предоставляет API для сети, аудио. ввода, графики (Metal, Vulkan, DirectX, WebGL и OpenGL). Генерирует высокоскоростной компактный код для всех платформ.
Установка и настройка

Теперь расскажу как установить движок и сделать свой первый тестовый уровень (в следующем уроке). Перед тем как начать, вам потребуются навыки работы с Blender — это ваш основной инструмент. Если их нет, что ж, в сети достаточно уроков. От себя лично, могу порекомендовать курсы от Артема Слаквы (ни разу не реклама).
Что нам потребуется:
- Стабильная версия Blender (автор рекомендует версию 2.8, поскольку 2.9 работает с движком нестабильно).
- Аддон к Blender на официальном сайте.
Установка довольно проста — скачайте и распакуйте архив движка. Установите как аддон в установленный Blender. Edit > Preferences… -> Add-ons -> armory.py.
Armory.py находится в распакованном архиве. Далее, включите добавленный аддон галочкой в Render: Armory в Preferences: Add-ons.
Теперь нужно проверить правильность установки движка. В вкладке Render проверяем путь SDK Path. Он должен соответствовать тому где у вас лежит SDK. Например D:\ArmorySDK2011\ArmorySDK, если же нет, то щелкнув там же значок папки, выберете тот путь где у вас распакован движок.
Сохраняем .blend файл и нажимаем кнопку F5 (play) расположенную на панели Properties > Render > Armory Player. Распространенные проблемы с установкой можно посмотреть здесь.
Движок уже включает в себя Haxe и Kha, поэтому ставить отдельно их не надо.
Редактор кода

Может быть любым, в каком привыкли работать — Sublime, Atom, Notepad++ etc.
Автор рекомендует Kode Studio. Настраивается в Preference -> addons ->Render->Armory->Show advanced.
- Загрузите пакет расширений Visual Studio Code + Kha или Kode Studio.
- Укажите Code Editor Executable .exe файл установленной копии редактора.
- Для VS убедитесь в правильности путей установки расширений:
"haxe.executable": "ArmorySDK/Kha/Tools/haxe/haxe-linux64",
"kha.khaPath": "ArmorySDK/Kha",
"krom.kromPath": "ArmorySDK/Krom"
Настройка завершена.