AI
Overview
The FPS Template offers two systems to run an entity's AI in the form of Hierarchical Finite State Machine (HFSM) and generate input:
AISystem
; and,ExtendedAISystem
.
This page will be presenting an overview of each system. For a detailed explanation on how the AI features included in the FPS Template, please refer to the AI section.
AISystem
The AISystem
is an example of the most basic system required to run an AI entity in the FPS Template. This includes running the HFSM in its Update()
as well as implementing the ISignalInitializeEntity
and ISignalDeinitializeEntity
signals to intialize and deintialize these types of entities.
AISystem
is included in the FPS Template for module completness but is not used in the framework. To use AISystem
instead of the ExtendedAISystem
, simply swap the systems out in SystemSetup.cs
.
ExtendedAISystem
To achieve more advanced and FPS specific AI, the FPS Template uses ExtendedAISystem
. This system contains several additional functionalities:
ISignalOnNavMeshWaypointReached
to react to theNavMeshAgent
;ISignalOnHit
andISignalWeaponFired
to react things affecting the agent's health and damage.
AI agents navigate using the NavMeshAgent
, have a simple Memory
, use Sensors
and support AIAnimationStates
for special movement. For more information on these features, please refer to their respective chapters in the AI section.