Итак, я расскажу вам о таком замечательном игровом движке как 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 типа:
- 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). Генерирует высокоскоростной компактный код для всех платформ.
У движка нет огромного комьюнити как Unreal или Unity, но тем не менее он заслуживает внимания. Ведь он использует все современные технологии, легкий и модульный. Автор постепенно развивает и улучшает свое детище, а исходники доступны каждому.
Установка и настройка
Теперь расскажу как установить движок и сделать свой первый тестовый уровень (в следующем уроке). Перед тем как начать, вам потребуются навыки работы с 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, поэтому ставить отдельно их не надо.
Редактор кода
Armory автоматически установит «правильный» редактор кода. Это работает так: движок сканирует переменные установленного IDE, и если например, у вас установлен Visual Studio то по умолчанию будет VS. Если нет, то будет использоваться переменная среды консольного редактора кода.
Автор рекомендует Kode Studio
- Загрузите пакет расширений 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"
Но редактор можно использовать любой: Sublime, Atom, Notepad++ etc. Только укажите в
Code Editor Executable
путь к своему редактору.В следующем уроке будет создание первого тестового уровня.
george3
«Написав код на python вы сможете перенести его на lua, c++ и так далее. Очень удобно для портирования.»
Все же на Hex. Синтаксис его не фонтан — ерш шапра с javascript, но если можно сразу конвертить сцены из blender, то это мелочь. Спасибо за инфу, надеюсь на продолжение.
grvelvet Автор
Спасибо, времени очень мало, так что следующий пост выйдет в нескоро.