


For this project I created an environment mesh that allowed Agents to carry out complex behaviours outside their immediate area.
This is done by taking the floor mesh of the level geometry and modifying it to represent different rooms/areas of significance.
The mesh is then imported into the engine where the area objects are created and linked together via shared edges in order to create an area graph that can be used for macro scale pathing and checking for dead ends.
The individual areas can be given names, used for Agent callouts and can also be assigned special relations to other areas. e.g. The red area is susceptible to attack from the yellow area. Agents can use these special relations when deciding what actions to take, prioritising firing positions in advantageous positions and avoiding travelling through dangerous areas when in combat.
The area graph can also be used outside of combat when pursuing a fleeing player, the players area and direction of travel can be calculated and their projected path followed until it reaches an intersection. Agents can then attempt to find alternate routes to this intersection in order to come out in-front of the player and block off their escape.
When searching for a player, agents can use the graph to track what areas they have searched, and carry out a thorough sweep of an area in a realistic and believable manner.
I plan to continue with this project and modify the mesh to double as a navigation mesh. This will also have the added benefit of having a more customisable mesh than what is provided with base engines.
Using this mesh I plan to practice implementing tactical pathfinding on a navmesh, allowing agents to move between positions whilst sticking to cover.