How Much Can Be Programmed with Logic Nodes?

I recently started supporting your efforts for Armory3D via Patreon and happy to do so. Thank you for your efforts. I hope you don’t mind if I ask a few questions about Armory3D.

I am a non-programmer and find programming difficult. How much of a game would I be able to create with Armory3D using logic nodes? I know this is a broad question, but I am contemplating either (finally) learning a programming/scripting language like GDScript (Godot) or investing in learning how to create games via nodes in Armory3D. I realize that I won’t be able to do everything via nodes, but how much do you anticipate will be able to be done via Armory3D’s logic nodes?

For example, take an FPS like the old DOOM game, you would need the following (at minimum):

  • Player movement
  • Doors that open automatically (triggers), only with a key, etc.
  • Enemies that discover and chase you (basic AI)
  • The ability to collect items (guns, ammo, etc.)
  • The ability to do damage to enemies
  • The player taking damage
  • Collision detection (of course)
  • Level loading (at end of level to start next level)
  • Full screen/windowed options
  • GUI creation
  • Shooting/hitting targets/enemies
  • Setting screen resolution and other in-game preferences (sound and music volume, etc.)
  • Etc.

How much of this is currently doable via Armory3D nodes? If any of this is missing, is it planned?

Frankly, I am not planning an FPS, but understanding how Armory3D nodes would work for this sort of thing would help me to see if Armory3D is (or will be) a fit for what I want to create.

I hope you don’t mind the questions.

Thanks.

2 Likes

Player movement is possible, but I recommend you to use @zaethan s Player controller node which is a way around the problem that to my knowledge it is not possible to do proper and working jumping only with nodes, since this node basically acts like a full Haxe script.
The doors, shooting, doing and taking damage and item collection is not a problem, but there currently is exactly only one node that handles UI, so you will have to get creative with custom nodes there. Game settings are completely missing, I can’t even find an example in which you can change them via code in a game’s menu.
Enemies are possible, but the node setup is going to be messy and complicated. You will need to usea Navmesh, which I have never been able to setup on my own, I always had to use the example one and adapt it. There also is no built in line-of-sight node, but you can cheat with a physic ray.
Level loading is possible too and you probably even can save health, hp, ammo and such with the “Write/Read Storage” nodes, but I personally have no experience using them.

2 Likes

Thanks for the support! The goal is to expose full control to logic nodes. It should be ‘just’ a matter of time now to fill in the missing holes (and to not get bloated).

Game settings are coming, but no example yet:/. With Armory Project - Write Config flag enabled, a config.json file is placed alongside the exported game. This can be edited by hand, through scripting, and once ready we can also add logic nodes to control that.

4 Likes

Thanks. This is helpful.

@Lubos - I realize that we are not at a v1 release yet (still v0.3) so we are far from completion with Armory3D. Still, it’s good to know which direction this is going.

I’ve been thinking of possibly learning HAXE down the road. If I understand this correctly, I could (eventually) create my own nodes via Haxe? Or at least program my game via Haxe.

@silversurfer1221
Yeah, all logic in Armory is in haxe. Haxe is a little over my head at the moment, lol. For making new logic nodes you create the node in python and then have to create the logic for that node in haxe.

@lubos
Will we be able to code in python in the future? I thought in one of the really early videos, there was support for python coding.

This was the video, at 3:40

That will be great as for Python I can find loads of tutorials to learn! Haxe seems more obscure and hard to find tutorials for complete noob programmers.

1 Like

How far we are from that?

Probably a little while yet. The comunity has been creating some nodes but there are still issues to be worked out.

1 Like

I think it is very unlikely. The entire system is heavily built on Haxe and that is also the way that Armory can handle exporting to all of the different platforms ( through Kha which is built on Haxe for that very reason ).

There is possibly the option for you to program in Javascript if that was easier for you.