[FAQ] The Top Things I Wish I Knew When Starting With Armory

This is a thread for all those things that are obvious in retrospect, but would have saved a lot of time if I knew when starting out.

Please add your own. Let’s just keep this thread about useful tips though rather than gripes about specific bugs (which will change over time anyway):

1. Where the heck is the Armory node editor?!!
This post will show you with a screenshot. No, it doesn’t say “Armory” on it anywhere.

2. How do I get my game to start / play? Where’s the Armory Renderer?
Push F5. It doesn’t matter what renderer you’re using to show the viewport. Armory always uses its own renderer separate from Cycles / Eevee / whatever. You can also push the “Play” button shown in point 4 below.

3. After I create a node tree, why doesn’t it DO anything?!
See the same post from point 1 on how to get node trees to apply to objects (by adding them as traits).

4. I made changes to my game. Why don’t they show up when I start the game?
Armory caches builds of the game. Sometimes you need to clean the cache. Push the “Clean” button here:
Screenshot_20190318_102646

5. How Do I Get a Node to Affect Whatever Object It’s Attached To?
Just leave the name blank, where it asks you select an object name. Simple!
noselect

6. Is Armory… cough “Production Ready”?
Depends on what you mean.

Based on what most people mean (which varies wildly from person to person), usually the answer is no (we’re at version 0.6 as I write this). However…

Do you mean ready to produce a game - any game - and publish it? Well, it’s definitely ready to make a game like Flappy Bird, sure. You’re not going to produce the next instalment of Crysis on it just yet though. So what do you want to make… and by when? Can you wait for new features and bug fixes while you learn the basics?

Armory has some very strong features underneath the hood, which long term will be a huge benefit (such as massively cross platform support via Haxe which gets full performance regardless of platform). It’s still in alpha though, so you will run into frequent bugs and features that are missing. Don’t expect either to magically vanish soon. Things are improving rapidly though, so you never know what will improve next.

Also consider that if you haven’t yet created a game the size of Flappy Bird, beginning to end, then you’re not going to create the next Fortnight / Crysis / League of Legends / Call of Duty yet, with any engine. Sorry, you’re just not. Start with Flappy Bird size first and work your way up. Armory is a great place to start your learning (the Logic Nodes system is a thing of pure beauty).

7. What language should I use for “maximum performance”?
Part of the beauty of Armory is that it uses the Haxe language, which compiles not to a binary, but to native source code for whatever language and API your platform prefers. That then compiles to a native binary that runs at full native speed. Haxe takes care of the translations to the different languages so you don’t have to (even when you’re using logic nodes!). :smiling_face_with_three_hearts:

8. Bundles are awesome! (and poorly documented)
There are all kinds of pre-built behaviours that you can apply to your game, already built in to Armory. Want a camera to follow your character? Good news! We’ve got that. How about a sidescroller game controller? We’ve got that, too! Vehicle physics? First person controller? Crowds with a navmesh? A virtual gamepad? It’s all ahem :roll_eyes: “bundled” in Armory already! And they’re super easy to add! Just add a trait to an object (see point 3) and choose “Bundled” instead of “Nodes”. Then click on the Class and choose your bundle. BUT… be aware that bundles all expect you to have set up your object(s) in a particular way or they won’t work. Helpfully (cough), there is generally no documentation with them, so be ready to experiment / ask around.

9. Running the latest Armory source code is super easy (and unstable)!
So you’re not used to compiling source code and dependencies and all that jazz? No problem! You can update to the latest source code with a single click. Just click > Edit > Preferences > Add Ons > Render: Armory > Update SDK. Do this again whenever you want to update to the latest code. Beware: This will update the Armory you’re currently running into a version that uses the unstable source code with whatever changes the devs are in the middle of making / testing. You’re probably going to still want the more stable standard release as well. I recommend downloading the release version, copying it into another folder called something like “Armory Git Version” and then just updating the one in the Git folder. That way you can always run the release version or the latest source code version.

10. Why are some faces of my games meshes invisible / backwards?
Some of your normals are probably backwards. This means that some of the faces in your mesh are pointing inwards rather than outwards. Armory doesn’t show faces from behind. See this issue for more details. You can fix this easily though by selecting the mesh with issues, going into edit mode (tab), selecting all faces (“a” key), and reclulcating normals outwards (either shift+n or mesh menu > Normals > Recalculate Outside )

11. Where are the best places to go to learn more?
The Docs are a good place although they’re pretty incomplete. It’s a wiki though, so help out!
The Armory YouTube Channel. Fairly infrequent uploads, but you’ll get the newest major announcements here.
Armory, Blender, Game is a YouTube channel with tutorials, run by our very own @Monte_Drebenstedt
Game From Scratch has a good set of YouTube tutorials for getting started with Armory. They cover other engines, too, so who knows how much Armory stuff they’ll put out in the future.
Jayanam is another YouTube channel covering a range of engines. They did another good set of YouTube tutorials though. Let’s hope they do more.
Discord While personally I dislike proprietary, digital soul-stealing silos like Facebook et al, there is a Discord channel for Armory that’s pretty popular where you can ask questions. Yeah, you’ll find me there, too (grumble). We can haz official Armory Matrix channel?
Armory Example Files - There are some fantastic and very useful example files here that show you how to do just about everything including controllers, actions, animated materials, ragdoll physics, streaming scenes from a server, demo games, 2D animated tilesheets… you name it! Highly recommended. Submit a commit to add your own!

Thanks:
Thanks to everyone who has contributed to this post, either by asking questions or helping answer them! If you see something relevant that is missing / wrong, please comment below so I can incorporate it! Thanks especially for the direct contributions by:
@BlackGoku36
@zicklag

10 Likes

Hey this is a great idea! I think it would be great to add this information to the Armory Docs. If you could submit a PR when you get the time, I think it could really help the community. Having it in the docs will make it much easier to find, than if the page disappears into the forum history.

Here’s another one:

10. Why are the faces of my model all messed up when I run my game?
Link to Lubos’s answer.

Created PR here: https://github.com/armory3d/armory_docs/pull/35
Seperated it in FAQ and Common pitfalls
(Added credits too, if you don’t like credits system then i will remove it)

2 Likes

Thanks. I’ve been meaning to do this, I’ve just been a bit busy. I plan on maintaining this both here and in the docs as both give a place for different users to come across this info.

I like the credits idea by the way. Anything that encourages people to contribute is a good thing in my book!

3 Likes

Any chance of getting the original post pinned @Monte_Drebenstedt / @AndreaMonzini ? It would save a lot of answering the same questions over and over, and also help new users get up and running…

1 Like

I have a question about the visual nodes.

I’m currently making a game with Unreal Engine and I’m using the Visual Scripting that comes with it, Blueprints.

I’m already thinking about putting some calculations in C++ because Blueprints perform slower even with the Nativization process.

So what about Armory, is there a performance reduction when you use Visual Scripting through nodes or are they also compilated to native code and therefore perform equally to writing Haxe code?

Also, if I wanted to make a 2D platformer, would Armory be suitable for that task? Is there any sort of functionality to manage sprites or could I maybe write my own nodes for that easily?

And finally, is there a way to package games for SBCs like Raspberry or Orange Pi?

Thanks.

Nope, nodes compile right to Haxe, which compiles to the same code as the rest of Armory.

My brothers have had some success writing an Asteroids remake with Armory only using logic nodes, but there is a lot of bugs that you have to work around. If you are OK with that, then you should be able to accomplish something decent. For dealing with sprites, you can create tilesets with animations as actions that I’m pretty sure you can control with nodes already. If you do need to write your own nodes it is super easy to do so.

I don’t know if there is a way to export Armory games for Rasspberry Pi yet, but Kha has a Raspberry Pi target, so it should be possible, unless there are some fundamental limitations that the Raspberry Pi has from a graphics standpoint. I know its not the same thing, but the Nintendo 3DS apparently doesn’t support fragment shaders and would therefore require a custom renderer; as long as there aren’t any problems like that, Armory should be able to target it already or without much additional work. This is more a question for @lubos.

1 Like

Added that point 6 above applies even when talking about Logic Nodes.

1 Like

This is so f-ing awesome, I wish I had more time to tinker with Armory, I hope I can contribute in the future when I finish some of my top priorities.

Another doubt I have is networking, Godot integrated Enet for that which is a very cool library. But Haxe is still quite mysterious to me, if I wanted to integrate Enet by myself what would I have to do since it’s written in a different language?

1 Like

@Armored_Blob, @zicklag please your own individual PR adding your points in FAQ and Common pitfalls and add credit yourself(don’t mind copy pasting it yourself), see this https://github.com/armory3d/armory_docs/pull/35#issuecomment-477512120