As the title have said, is there another way of making the AI wandering randomly without using target points ?
Yes use root motion. There is tutorial about making root motion player controller. And instead of character listening to keyboard input make it play random animation ie. walk_forward, turn etc in random order. But such AI is unaware of obstacles. To fix it you need to use navigation system and target points.
There is also another method: EQS. Enviromental query system, you kind of have target points, but you let EQS find best location in navmesh (so no need to place actors that are target points). Then you use behavioral tree to move AI around.
There is short tutorial about making behavioral tree AI: A new, community-hosted Unreal Engine Wiki - Announcements and Releases - Unreal Engine Forums3-_Random_Wandering
However it uses target points, so instead you need to create your own query context blueprint ( EnvQueryContext_BlueprintBase ) that gives points.
Or you make EQS query that returns random point around pawn:
You can test it (see how it works) with EQSTestingPawn (set its query to that you just created).
To get random result from query just pick random or best from top 25% etc. You will get your random destination on grid you created.
And here is answer how to run query from BP only (no need for behavioral tree), however btree is much easier
Here is how I’ve done it. I check the status of the ai using an enum(combat, patrol, etc) and setup my enemy with an enum variable set to public so i can change which state i want him to be in. This way you don’t have to manually place target points all over your map. If you want to use a enemy spawner, just cast to the enemy, set the enum status(roam, patrol) and set the random navigable or reachable point in radius.