Introduction
ARMORY3D
Armory3D is data-driven 3D engine written in Haxe
, C
and WebAssembly
, comes with Blender embedding but is designed to be able to be integrated into almost any 3d modelling and animation tool like Blender. It's main focus is on performance, portability and minimal footprint.
RENDERING
Armory has it own renderer (see Iron). Armory uses Cycles/EEVEE material nodes to build shaders. The renderpath is completely scriptable, with support of forward and deferred renderpath out-of-box. It is completely possible to write your own shaders(in glsl).
SCRIPTING
Scripting is done with traits
(a concept developed in Iron
: a piece of logic attached to an object).
There are 4 different Traits
:
- LOGIC NODES TRAIT: Traits can be written with
Logic Node
(similar to UE4's Blueprints) - HAXE TRAIT: Traits can be written in
Haxe
. - CANVAS TRAIT: Trait for
Canvas UI
- WEBASSEMBLY(WASM) TRAIT: Trait written in WebAssembly,
Rust
/C
/C++
can be used to write logic in after compiling it to WASM.
TARGETS
Armory support all targets that Kha support. Platform such as Desktop(MacOS, Linux, Windows)
, HTML5
, Mobile(Android, iOS)
and consoles(PS4, Xbox One, Switch)
is supported out-of-box.
Technologies
HAXE
HAXE is open source cross-platform toolkit based on modern, high-level, strictly typed, multi-paradigm programming language and cross-compiler that can compile code to target platform native source code or binary. Haxe is easy-to-learn if you know java/AS3 and other OOP languages.
(So basically, Haxe will cross-compile you code to many different language such as Python, C++, Java, Lua, etc., and then you run/compile this cross-compiled code. It is useful if you want to create cross-platform app/games. So, many birds with one stone.)
KHA
KHA is ultra-portable, high performance, open-source multimedia framework. It is low level SDK for building cross-platform games and media applications. With the help of Haxe Programming language and the Krafix shader-compiler it can cross-compile your code and optimize your assets. Kha gives you a common API to graphics, audio, input, and networking, for platforms such as Web, Mobile, Desktop, Consoles, etc and Graphics APIs such as Metal, Vulkan, DirectX, WebGL and OpenGL.
(So basically, Kha is SDL on steroid which you can use to create Engines/Games/Apps, it will use platform native Graphics API, in order to maximum utilise GPU, resulting in fast, light-weight product)
IRON
IRON is data-based, asynchronous engine used for building 3D tools, It is built with Kha, Haxe and WebAssembly. It is core engine of Armory but is designed to run stand-alone. Iron handles render & content pipelines and lets you develop a custom visual engine on top of it.
(So basically, Iron is an engine, you can use it with other libs such as Bullet for your need.)