Action Game AI
AI Engineer
- Designed meelee and ranged NPCs to fight the player
- NPCs can be given a patrol path that they will guard
- NPCs will investigate noises they hear or enemies they see
- If an NPCs health gets too low they will flee combat and break line of sight in order to heal
Behavior Trees:

- Meelee NPC with strafe around the player and attack in intervals

- Ranged NPC will find a suitable position and shoot at the player then reposition

Sub-Trees:
- Used to switch between different states in the behavior tree



Tasks & Enviromental Queries:
- Moves the enemy along the patrol route

- Uses a query to find positions out of the player’s line of sight to hide at

- Uses a query in line of sight to the player, preferrably farther away, and repositions to a nearby point

- Uses a query around the player to find a good position to attack from

Enemy Blueprints:
- Creates the basic health bar widget and die/hit react functionality for all enemies

- The melee enemy attacks in a sphere trace in front of itself

- The ranged enemy attacks in a line trace from itself to the player

AI Controller:
- Initializes all enemies and defaults their state to passive
- Creates the perception for each enemy: sight, sound, & damage

Blackboard:
- The basic blackboard for all enemies
- Uses the attack target to reference who they are fighting, the player or another npc
- The state keeps what current state the enemy is in
- Point of interest is if the enemy hears the player or sees the player for a moment and wants to investigate
- Attack radius is how much range the enemy has to make an attack
- Defend radius is how much range the enemy wants to keep between itself and the player

Blueprint Interfaces & Damage Struct:
- Interfaces used to define functions for melee and ranged seperately


- Structure used to store different types of damage and modifiers, like blockable or uninterruptable
