Wiki Code Tutorials

[FONT=Comic Sans MS]Featured Tutorial

File Management, Create Folders, Delete Files, and More!


[FONT=Comic Sans MS]Rama AI Blows Stuff Up

Everything you see in the video is completely dynamically calculated by me in the C++!

Nothing is pre-scripted!

I do not even tell the AI units what to target when they are spawned!

Everything you see is my own AI system at work

  1. all the pathing is my own pathing system, from scratch

  2. I set up an Alignment system so the AI units know who is friendly and which structures to attack

  3. The AI is told by me to spread out, and keep track of which structures other friendly units are attacking.

This maximizes their usefulness to each other, as they cover maximum building surface area!

Meaning, if a new AI unit is trying to pick a target, my AI will try to pick a target that no other friendly in the area is attacking yet.

  1. Each AI unit is keeping track of all nearby friendly units during runtime, dynamically updating its personal list of friendlies every few moments.

This means each AI unit is aware of all friendlies at all times, as well as all nearby structures

  1. When a structure is destroyed, each AI unit tries to find a new target

  2. Apex destructibles block the AI pathing, so they try to get around using my dynamic physics pathing system.

  3. Each AI unit is consciously deciding how far to position itself away from the target building for ideal melee range.

  4. Each AI unit is deciding when it is close enough to the surface area of its target structure and then stops moving and begins attacking.

  5. As I said, nothing is pre-arranged, as you saw I ran multiple tests! The AI is spreading and and performing to all my specifications listed above!

  6. Yay! Victory!!!



PS: the sparks are created at the precise point in the animation sequence that I specify, using an anim notify.

This anim notify then calls my C++ AI function for doing damage.

So the visual appearance of doing damage is indeed triggering my C++ AI system !

The visual appearance and the C++ are linked together completely!

That is amazing. Any thoughts on posting some code snippets? If not, curious what you’ve put together for your custom pathing. Vector grids, some A* flavor, or just some forward looking system? Curious to hear how it might handle changes in elevation or dead ends.

Haha someone else asked that!

I write all my algorithms myself without any references, ever :slight_smile:

I always create purely from my own logic and imagination, and so everything you see me do is my own original work.

Sooo, my system does not have any algorithm names that I can reference to you, its all my own Rama Code :slight_smile:

The same is true of my code on my wiki tutorials, except where I specifically reference other people!

See my Rama Code in action in this video!


PS: I am still deep in development so I dont want to share any code yet because it is subject to change right now, but the only interface I have with UE4 character movement is right here:

CharacterMovement->Velocity += Mycode Takes Over Here

All the rest of my code base is my own calculations for when and what kind of velocities to apply to the character movement component :slight_smile:

Fortunately, thanks to Epic, just by doing my AI system this way, my AI system is already replicated perfectly , since UE4 replicates CharacterMovement so well!

Well, in that case, I’ll just call that nav system “impressive.” Well done. Your code comment actually lead me to your tutorial on custom character movement component on the wiki. Something that I might give a try, thank you for putting that together!

Hee hee thanks!


Hello Rama.
Is your C++ based GUI/HUD system (as shown in your tutorials) platform independent?
I.e. will they work the same on PC, XBox, PS4, etc?

I need an in-game list/combo box and, like you, may have to implement it myself. I’m currently looking through Slate/Widget resources to see if they can do what I need without having to start from scratch.

Hey Ash22!

Could you not create/is there not already a Combo box widget in Epic’s new UMG?
I thought they had most of the basics covered xD
(Don’t quote me on this, can’t actually remember)

But it’s worth looking into if you haven’t already!

Edit: Just had a look, it appears it does use it! :smiley:


I have it highlighting in the above image (Second down from “Misc”)

Hope this helps!


Hee hee! Thanks for answer Loken!

Nice to hear from you Ash22!


PS: to answer your question yes, my solution is platform independent as it is entirely in UE4 code, which is designed to be platform agnostic.

**New Wiki

Add Handcrafted Custom Math Curves From UE4 Editor to C++**

Here’s a tutorial on how to construct perfect hand crafted curves in the Editor and then bring them into C++!

You can thus create spring curves, dampen curves, bounce curves, any kind of curves you want, and then use them to drive your C++ code!


**New Wiki

Create Custom Console Commands in C++ to be implemented in Blueprints!**

Empower your whole team to make their own console commands in Blueprints!

Hey Rama,

I was just researching about this. I didn’t know how to do this but maybe I can figure it out now. This is great!


Shouldn’t we at least have empty implementations in C++ as a fallback?

Other than that, that’s dead simple, thanks for the guide!

Hee hee! Let me know how it goes Isaac!

Sure! if you want to!

In that case have a UPROPERTY(exec) c++ function that then calls the BP Implementable function!

More info on BP Implementable functions:

Forward Declaration Tutorial Updated

I updated this tutorial to 4.4, now that DependsOn no longer exists :slight_smile:

Added some additional info about #include in .CPP files!

**New Wiki

Integrating PhysX Code into Your Project!**



[FONT=Comic Sans MS]Featured Tutorial

Mesh Collision, Obtain Closest Point on Mesh Surface to Other Point!


**New Wiki

Game Instance

Inter-Level Persistent Data Storage**

Dear Community,

I have just published new tutorial on how to use the new Engine feature called the Game Instance class!

This is only in the engine as of 4.4, but it is very powerful!

You can use the Game Instance class to store data between level transitions!

So where previously you might have had to save stuff out to config file or use a save object, or write out to binary file, now you can carry data from one level to another using the Game Instance class!

In the example code on the wiki I show you how to count the total number of ticks that have elapsed since your game application window first opens and the first level is loaded!

You can now store any data you want between levels!


New Wiki, Network Replication

I’ve just posted a tutorial using code from my own code base showing how I do Network Replication for actions that have to be performed locally by each client as well as the server (listen server).

A new, community-hosted Unreal Engine Wiki - Announcements and Releases - Unreal Engine Forums,Using_ReplicatedUsing/_RepNotify_vars

New Plugin For Community!

I’ve posted a plugin template that you should find quite easy to adapt to your needs!

It is a fully functional plugin sample, containing some nodes that I found useful for doing AI coding in Blueprints.

But the main purpose is to give you a plugin template to use however you like!


Rama’s AI Plugin Template