I’m new to Blueprint and AI. So I don’t really know where to start this, but my goal is to recreate the Doom monster AI for my game as close as possible. I’m sure this sounds like a fun endeavor, so maybe we can do this together as a learning experience and have an awesome new AI behaviour similar to one of the best games ever made for the whole community.
I’ve seen a couple of videos on AI behaviour trees and they all recreate the same kind of ‘bot mentality’. Patrol on X waypoints, find player, shoot on sight, lose player and return to waypoint patrol.
This is great for robot soldier type of behaviour, but not exactly how a real monster would behave.
So instead I thought let’s recreate the monster AI from my favourite game of all time, Doom.
My primary goals are:
- Enemy ‘roams’ around and searches for the player dynamically without waypoints. (in original Doom the enemy just stands still when it has no target, which is too simple)
- When enemy sees/hears the player, it alters the behaviour and it moves more and more into the direction of the player while periodically attacking him from distance
- Enemies who don’t have distance attacks run more directly at the player and try to attack in close combat only
- Multiplayer support. Everything needs to work on server+client
- Dynamic target change, if another player comes close to the monster or attacks the monster, the monster will target this player instead of previous targeted player
- Being able to adapt this behaviour to many different monster types easily
My secondary goals are:
- Have special attacks for enemies, for example running towards a dead ally and revive it
- Have monsters infight with each other, so if another enemy hits it, it will change target and fight the other enemy instead of the player
Now my first question is about performance. In original Doom, there are sometimes 20-100+ enemies running around at the same time. Is this even possible with Blueprint? Or AI Behaviour Trees? If Doom could make it, UE4 can do it too, right?
Would it be easier on performance to have one “master monster” and have all other enemies be child Blueprints of it?
I’m very excited about this! Let’s see if we can recreate the Doom AI