For the Games AI module at GCU I implemented a series of steering behaviours, A* pathfinding, and a designer friendly fuzzy logic system.
Source code for this project is available on GitHub. Please note that some parts of this project including the Enemy AI (yellow dots), and the procedural content generation algorithm were provided by Hamid Homatash as part of the module.
Pathfinding
The below visualisation demonstrates how my implementation of A* pathfinding is able to establish an efficient routh between any navigable cells on the grid based map.

Line of Sight
I used a version of Bresenham's Line Algorithm to check if any two grid cells have line of sight of another. This visualiser shows how the trees block the line of sight. This function is later used to ensure that the friendly AI do not waste ammunition firing at targets that are blocked by trees.

Decision Making - Fuzzy logic
I used Matt Buckland's C++ fuzzy logic implmentation as a starting point for my own Unity based implmentaitno in C#. One key difference is that I was determined to create a designer friendly system. Consequently I invested time creating custom Unity Inspector windows that and graphic tools so that designers can visualise the peak points and offsets they are setting as they build their fuzzy logic systems.
