's Multi-Threaded Dynamic Pathing System, Full Physics Support

Hey sorry it has been a while, but really love the progress you have made on your system! :smiley: Also congrats on becoming ‘Elite’ with your 1000th post! :stuck_out_tongue:

Have you done any analysis on the performance difference between using the nav system and your implementation, with your code only I mean, not slowing it down for so you can see how the AI is deciding it’s path (I think I read you had to slow it down for showing in video a while ago, correct me if I am wrong though)? If you are able to compare it, your system may be too advanced for a real comparison!

Looking good, keep us updated! :slight_smile:

Hi there !

Actually my current implementation is a hybrid of my own systems + UE4 nav mesh system, I am basically extending the UE4 system to do fancier things!

By subclassing and extending the base UE4 nav components I can use all of their functions and the nav mesh functions as tools to build my own complex AI systems!

It’s going very very well actually!

I even got the UE4 nav system to work for the AI units in my game that is a physics-based multiplayer game, where the AI unit is always simulating physics! I had to also use a custom character movement component for that though :slight_smile:

Great to hear from you!

:heart:

Ranged AI Units, Intense Explosiveness!

Dear Community,

I have just released a new video!

is a very sophisticated high tech demo of ranged AI units using a very special mesh provided to me by forum member !

After the first round of Sheer Intensity, you will see 's animation skills at work to animate the co…I mean ranged unit!

Many thanks to for the ranged unit model, you can find a download link to it earlier in thread!

Thanks !


**Gameplay Balance**


**Please be aware, I've carefully balanced unit, though it may require a bit more testing.**


Team Based Area of Effect Explosions

video also is a demonstration of Team-based AOE damage, where the melee allies of the ranged unit dont take damage, but opposing units are sent flying in all directions if they are not out right returned to their natural Tree-dom.

Enjoy!

https://youtube.com/EHBs5GMxxN8

That was so awesome! Fire spitting cows! :smiley:
Glad you found a use for it. :slight_smile:

That was great, good work. Now you need the flying ufos, to come in and destroy the cows. =)

Hee hee thanks again !

Ufos and Cows will join forces and to spread rainbows everywhere!

:slight_smile:

For those of you new to thread, video below and the description explains one of the core aspects of what I’ve been doing with AI in UE4, which is setting up targeting system and completely automated behavior where a human player is not even involved!

Here below you see my RTS units going and attacking RTS buildings, picking paths and spreading out to cover more surface area!

[FONT=Comic Sans MS] AI Blows Stuff Up

https://youtube.com/gjCDA_FiVxk

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.

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.

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!!!

:slight_smile:

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

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!

** AI Makes New Forests**

Hi there!

Ever wonder how forests are made?

Here’s another one of my favorite videos from thread, for your entertainment!

Features:

  1. Programmatic setting of team color, that can be completely customized in BP

  2. AI pathing around obstacles

  3. AI direct pathing to chosen target

  4. AI moving around friendly AI units to get to open spot on target

  5. AI battles!

  6. AI damage to each other

  7. AI auto targeting buildings after all defenders…transmuted.

  8. A Surprise!

https://youtube.com/QOkRnxSxUrM

Just revisiting fun video of my success with getting UE4 AI system working with physics simulating rolling balls, hee hee!

there’s no Matinee or tracks or splines in the editor involved here!

is all done via C++ AI system, and I am picking destinations for the AI units to move to and then they are going their!

I also made my own AI Jump volume, which tosses the balls into the air, forcing them to retrace their way back to their chosen destination.

's Physics Character Pathing System

I just had a major AI Victory!

I overrode and rewrote large portions of Epic’s Character AI Pathing system to work with physics simulating characters!

There’s no native support for , but using some of my own functions that I’ve been writing for my physics multiplayer game, I was able to do it!

Epic very nicely exposed as virtual all the functions I needed to override, thank you Epic!

Here is the result!

https://youtube.com/osC5GI_t7Ic

:heart:

@ - sounds like you have everything needed to make a truly dynamic character controller. All that’s left mainly is making the character “walk on raycasts” (use two per foot IMO) to determine when they are falling/in air, and also a center of gravity calculation. If the COG is not over the feet, make the character fall/ragdoll in the direction of the COG. It’s possible to do some extremely awesome stuff with a truly dynamic character like that. You’d want to use the PhAT collision rather than a capsule in that case as well, to get even more out of it.

Lovely to hear from you n00854180t !!

Actually these characters are simulating physics already so they are using PhAT collision, you are talking about the rolling spheres or something else?

:slight_smile:

Great to hear from you!

:heart:

[FONT=Comic Sans MS]Dynamic AI Jumping For Shortcuts

In video I am demonstrating the use of Navigation Mesh Point Projection to identify shortcuts for the navigation path that require jumping!

When you see my AI jump to take shortcuts to their goal in video, it is not pre-determined!

I am dynamically calculating whether the AI should take a shortcut by jumping, and then overriding their normal pathing system so that they pursue the shortcut instead.

Toward the end of the video you will see them jumping pretty high to reach their goal that is on higher ground!

I did all the coding for in C++ in my custom navigation component classes and the character class :slight_smile:

When the AI unit is following the jumping shortcut I do the code in the character class, and turn normal pathing off.

While in normal pathing, I am running my own custom navigation point project line tests to check for shortcuts, which is what those lines of dots are!

I stop as soon as higher ground is found that has pathing on it, and redirect the AI to use shortcut!


**Navigation Point Projection**

involves taking a 3D world space point, and using a volume extent to check if there are any nearby points in the navigation mesh that are within the z value of the extent.

In way I can check if higher or lower ground has pathing, and is thus viable to path to via a jump!

Finding the best shortcuts and telling the AI to use them involved a loooot of C++ coding on my part hee hee!

Thank you to Epic for USTRUCTS so I could expose all of to Blueprints and keep the data organized in code without creating additional classes!

Video

https://youtube.com/JZKjkWQes8I

is impressive, nothing else would I expect from you ^^
As I assume it’s fit for your client needs and will be only available to him/her (at least is what I assume), I do wonder if it worked with custom movement like double jumps or dashing or more accurate how hard would it be to implement?
But as I said: impressive work, keep it up!

That’s pretty impressive. Will your pathfinding become part of UE4 engine ? Why Epic is not hiring you ?

Looking great as always great work. I like the new butterflies in your signature! =)

It would not be hard for me to get the AI to use all kinds of custom abilities, which is what I’ll be doing for Abatron!

But I agree it will require tailoring and tweaking of various settings.

My entire AI system is exposed to BP for tweaking though, so works out just fine!

:slight_smile:

Hee hee!

Nice to hear from you

Hee hee!

Butterflies!

:heart:

Hey how much C++ code have you had to parse thru and write to get all stuff working? I’m probably about to go down a similar route and am glad to see that it’s not impossibly difficult to go deep down into the pathfinding system and override stuff in C++. Any advice on what classes and functions to look out for on that journey? I’m also running into the need for weird pathfinding on dynamically generated terrain with agents that will need to find jump points and such. I thought I was going to have to dynamically generate nav link proxies, but it seems your solution is equally robust as a different option. :slight_smile:

I did everything using just PathFollowingComponent!

I did a lot of calculations in Character class, and that’s about it!

I think you should just get started and see how it goes!

Here’s a wiki tutorial on using a custom PathFollowingComponent (by )

https://wiki.unrealengine.com/Unreal_Engine_AI_Tutorial_-_1_-_Making_AI_Jump_as_a_Part_of_Path_Following


**Video Of 's Jump Pathing AI**

In video, my AI is dynamically finding jumping routes without any help from nav links, runtime-created or placed in the editor!

I could make a whole new level setup in about 5 min and they would perform in the same way they do in video!


/0GX-1x-wACI


:)

Very slick, . Keeping an eye on for sure.

Really am loving all the updates :slight_smile:
It is a shame I cannot frequent the forums more.
Sooo much eye candy and knowledge in your threads (and others).