Rama's In-Game AI Creator, the Power of C++, Blueprints, and UMG Combined

**UMG, Blueprints, And C++ Combined! **

**Most people pick C++ or Blueprints, and a lot of people think UMG is just for menus/HUD display… **

Well I’ve combined all 3 to make an in-game AI Creator for per-instance user-driven AI creation in a packaged game!

In this video I demo my AI creator!

It has these features:

  1. Fully usable in a packaged game, Editor not required, it runs from within the game itself.

  2. End-user / player can create their own AIs, and save them to hard disk! File sizes are tiny.

  3. The entire engine is in C++, UMG is used for accessing and tweaking variables, but all math and logic is done at highest speeds in C++!

Blueprints is used only in the context of UMG, but that is what makes the UMG so easy to use, providing me with the middleware framework I needed for making the UI system to expose my custom C++ engine to the end-user.


**A Fully Realized Example of Going Straight from C++ To UMG**

What you see in my video is me going straight from versatile runtime-editable C++ AI engine to UMG and back again, constantly!

Each and every time I tweak one of the UMG settings I am compiling all the data from the UMG widgets back down to C++ code and then installing that in the unit being edited!

Then I re-set the UMG from the unit's newly updated AI!

**So this is basically a real-time UMG reflection of the C++ AI of the unit as I edit it!**

And you can watch the unit's behavior instantly change as I tweak the UMG vars because I am doing the whole UMG -> C++ and C++ -> UMG process that fast!

All AI Runs in C++

Again please note, all of the AI that you see in the video runs at highest speeds in C++, and in the normal game, you’d be loading AI profiles from hard disk straight to C++ and the whole process stays there.

However it is UE4’s amazing UMG system that allows me to expose my C++ custom AI engine to the end user so they can construct their own unique AIs for their units!


**Rama ♥ UMG**

I promised Nick I'd show off some of the fancy things I've been able to do with UMG, well this is the height of them!

In this video you really are seeing me go straight from UMG to my action-based C++ AI system and back again, constantly!

The result is that people who play the game in packaged form can code, save, and load their own AI using a friendly user interface!

Live Updates From C++ to UMG

As you see in the video, when, I link the Circle and the Line actions together, I am able to send “Live Updates” from C++ to UMG, causing the UMG widgets to change color, indicating when they are running and when they are not!

Live updates enable me to help the AI author to really see how their AI code is running and what is/is not working the way they expect!

This kind of instant feedback is essential for an AI creator!


**AI Script**

The most powerful feature you see in the video is that I was able to make my own dynamic UMG-editable reference system!

Basically I can create my own variables using just UMG, and link different AI actions to each other, all using UMG!

**This means I have created a UMG scripting language that compiles down to raw C++ code that runs at highest speeds!
**
 
My ability to give the end-user the power to create and name their own variables, in a packaged game with the editor closed, means that I truly have a UMG-based scripting language that compiles down to C++ code during runtime!

You see me do this throughout the whole video, its just so fast you dont really notice!

Each time I change a variable, the AI responds instantly, and UMG is getting updated constantly!

My scripting system is robust enough that I can rename the actions and the UMG variable references update immediately! 

New Generation of RTS Games, Code Your Own AI!

With my AI Creator I am facilitating the birth of a new generation of RTS games, where you as the pro gamer / single player / co-op ally create the AI for your units before the match, and then your units use the AI you provide them with during the main game!

This means a whole new level of Strategy in Real-time Strategy games!

My AI options are sophisticated enough to also entertain hard core first/third person action gamers who want the AI to be really really good!


**Per Unit Instance AI**

Please note my system supports coding unique AI for each instance of a unit, not just a unit type!

So you can have 10 of the same unit with 10 different and unique AI system driving them as created using my AI creator!

Enjoy the video!

Rama

Rama, you’re nuts. In a very very good way.

Going to have to look into this more in detail later on but this looks awesome! As usual.

:heart::heart::heart: :wink:

Very cool! I’d love to see if we could add slightly more complex AI instruction, like stop/start/wait and custom mouse drawing of the nav lines. That would blow my mind.

Well, this is already blowing my mind, so I don’t know if I can handle any more. Instant recompile of AI engine in-game without requiring an editor? Jeez the possibilities for players is insane!

You never cease to amaze me Rama. This is awesome, incredible, unique! I also had a lot of fun listening to you :smiley:

Cheers.
.

Hee hee!

Great to hear from you , , and RumbleMonk!

Rama

Really cool ! Can you combine it with your jumping thingy too ?

Hee hee thanks !

Sure I could! Actually I developed my jumping AI for Abatron originally, so you will see jumping AI as part of my AI creator at some point soon!

:slight_smile:

Rama

This sounds cool as heck. I’ll be checking this out once I get to the AI part of my current projects.

Hee hee!

Great to hear from you Jared!


**Custom UMG Widget Component**

I just finished writing my very first custom UMG component to spiff up the visuals of my AI Creator!

Enjoy!

https://youtube.com/watch?v=1prIYTfng9g

Rama
Rama

Wow. UMG/AI magic! You’ve been very busy as usual… :slight_smile:

Thanks!

[FONT=Comic Sans MS]Welcome to the forums prototypesp!

Rama

wow, this is great rama!.. you’re a genius… wonder when would it be available… :o

Thanks for the compliments Yanzco!

:slight_smile:

Rama