For this piece of work, my task was to:
Create Multiplayer capable Artificial Intelligence
The AI should be able to use weapons, crouch down, capture objectives etc. just like player can.
The AI should respond to enemy behavior.
For this I've used the EQS (Environment Query System) , and I've created a set of queries which spawn a grid of points onto the navigable area, and score each based on rules.
The scoring I used uses, Distance to Nearest Objective, Distance to Nearest Enemy, and Optimal Position to Attack Nearest Enemy (based on line of sight, and distance from.it, and weapon used.
(if bot runs out of ammo, he will attempt to melee)
The Bot chooses few best scored points, Based on the scores returned, the Bot decides whether to move towards enemy, retreat, or move towards an objective.
There is logic implemented to handle and resolve scenarios where AI may block each other (eg. two bots trying to enter doorway at same time) This is done by checking if the bot has a target location, but hasn't changed its velocity in x amount of time, if this statement is true, we execute "unstuck" routine, which makes the bot walk slightly back (with a random deviation) and then continue its path.
In every case, this eventually resulted in the AI getting past the block and continuing its path.