top of page

AI Projects

A series of mini-projects devoted to teaching the fundamentals of AI.

Project Overview
Role
Software Used
Genre
Platform

Programmer

Unity, C#, PandaBT

Game AI

PC

Game Overview
Project 1: FSA and DFAs

The goal of this project was to create a short "game" in which players navigate a waypoint graph. At the same time at least four other AI enemies are searching the graph for the player. Each enemy has a unique DFA policy with attack, hide, and roam states. Different triggers throughout the level will cause, the enemies to transition to different states.

Another important feature of this project was the enemies ability to pathfind. To allow enemies to navigate the level, A* and Greedy Pathfinding algorithms were successfully implemented.


Project 2: Boiding and Bees Algorithm

This second project was a small game set in space. In the game there is a mothership which releases a small number of drones. These drones are all boids, and demonstrate the rules of separation, cohesion, and alignment as detailed by Craig Reynolds.

The second key feature was the bees algorithm. This is a population-based search algorithm, in which a series of scouts are designated via a heuristic to locate nearby food sources. When these sources are located, foragers are dispatched to collect from these sources. Over time a process called neighbourhood shrinking occurs, in which the search radius of the drones is shrunk to allow focus on the most "fitting" food sources.


Project 3: Mech AI

For this project we were given a base mech AI. It was our task to transfer it's FSM behaviour to a behaviour tree of our own design. This was done through PandaBT, a package for Unity which allows for behaviour trees to be implemented in custom scripts. Mechs were able to perceive certain variables such as their health, ammo, and the position of enemies in sight to make sophisticated decisions around attacking, pursuing, and fleeing. The goal for this project was to create a player-like AI, that calculated risks, and was effective in eliminating enemies.


At the end of the semester, the cohort's mechs were pitted against eachother in a small tournament (Watch here). For this tournament, my mech. Chad, was able to run through the bracket and achieve victory over all the other contestants!

Production Overview

​This unit taught me a lot about the fundamentals of AI. I now have a greater understanding of how I can create AIs that a life-like and effective. By taking the time to implement complex simulations and algorithms I gained valuable experience in AI programming, with solid knowledge of pathfinding algorithms, hunter-prey simulations, boiding, finite state automata, and behaviour trees.

My Responsibilities

For all projects I was the sole developer.

bottom of page