This project was a part of an optional module during my second year of university with a focus on artificial intelligence. The requirements were to implement steering behaviours and the A* algorithm so that a car can navigate a 2D scene and race around a track.

This was a very simple project as the steering behaviours were not particularly complex making them relatively simple to implement. The main issue was implementing A*. A simple tutorial was provided that explained how to implement A* however, the tutorial explained the implementation in relation to a different project meaning we had to work through properly implementing it for the current project. Additionally, there were aspects of the provided implementation that needed to be tweaked to ensure that the A* algorithm could be used and that the project would compile.

Furthermore, there were small issues with the framework that made it much harder to implement certain steering behaviours for example, there was little to no collision detection within the framework making it harder to do certain things like obstacle avoidance. In hindsight however, it would have been possible to store each avoidable object in a list and do distance checks for each of them every frame, which would be in a issue in larger projects but would be an acceptable solution for this project.

Overall, this project taught me a lot about simple pathfinding techniques for AI as well as utilising unfamiliar code bases to produce a final product.