AI Dynamic Combat behavior for our FPS/RTS Hybrid game

A while ago I posted a few WIP work progress on AI…

It’s finally very much combat ready. Equipped for team vs team combat.
We dealt with cover system a while ago as well as team vs team perception system.

This post is to share the workings behind dynamic combat behavior of what we find to be an Ideal FPS combat experience.
The objective here is to create an AI system that is able to dynamically decide whether to attack or to defend ,
and at the same time able to receive order ( since we’re creating an FPS / RTS Hybrid )

AI is made with behavior tree, EQS and our custom perception system.
None of the AI actions are pre-scripted. They are just spawned and headed.

Shown here is a situation where Player’s squad is attempting to take on a much bigger squad of enemy.

Some highlights on what’s happening :

  • Player has 2 AI squadmate which runs the same behavior tree ( their status is beside the minimap ) .

  • Player’s friendly AI are both given order to protect player by maintaining close distance.

  • All AI assess the threat level and decides to go offensive or stay defensive.

  • Enemy AI went full offensive at the 0:40 mark when both player’s squadmates died.

  • AI was on offense up until about 1:20 point where they fall behind numerically

We initially tried many different methods , but we found this to be the most ideal.
All this is achieved with a simple threat assessment system. AI maintains a list of unit it is aware of ( both enemy and ally ) ,
and subsequently updates its confidence rating by comparing allied / enemy. here , the player carry a higher threat weightage.
In future we plan to add HP as a weightage to the threat. Notice that towards the end of the video , the player has only one small
portion of health left. If the AI charges in , player will definitely die.

This is looking good.