About to start working on some simple AI - would love some feedback

Been using UE4 for only a week now but would really like to get started on some Blueprint scripting and check out the Behavior Tree system.

Now, I’ve looked around YouTube and the online documentation and it seems that the kind of AI I’d like to create is thankfully fairly common.
A simple patrolling bot who’ll start chasing the player once detected.

There’s however a few minor differences in the AI I had in mind and this is about as simple as I could make it for now before improving it in the future.
(Link to diagram)](

  • The bot patrols around various points defined in the Editor. For now it’s always 3 different points to keep it simple.
  • The three main behavior cycles are patrolling (unaware of player), hunting (looking for player) and chasing (confirmed player’s presence and location).
  • At the start I could probably add a condition whether it sees the player without delay and have it immediately start chasing after being spawned (to use the same blueprint for both patrolling bots and scripted chases).

So instead of a specific Blueprint problem, I suppose my question here is — how doable would this really be for a beginner? I’m currently well on my way practicing animations with blend spaces but would love to start on AI soon.
Additionally, how easy would you say it’s for a beginner to expand on this? Like:

  • Give the player a 1 second head start before beginning to chase.
  • Introduce an “Aggression” variable where it becomes increasingly suspicious and responds to possible player presence faster.
  • Tweak detection timing and angle so it’s affected by the player’s movement, whether he’s crouching, near light source, etc.

Thanks in advance! Loving UE4 so far.

You will need behavior trees, and it’s very doable.

Dig into behavior trees and Enviromental Querry Systems.
When you have some idea about how it all works:

  • make blueprinnt dummy actor that is NavPont.
  • make query function that finds them in level, choose most desired one with eqs query
  • use behavior tree to execute move to target