Amber Abuah

Graduate MSc AI student aspiring to start a career in AI and Data Science.

Feline Frenzy (Unity + ML-Agents Game)

C#
Unity
Reinforcement Learning
Python
Photoshop
Blender

Software Design

The codebase was created entirely within C# and used external Python Machine Learning scripts within ML-Agents to train the AI agents. Some of the software design patterns I used to ensure quality and mainability, whilst also optimising game performance, were:


Machine Learning

During prototyping several deep learning techniques were experimented with, which included:

For the final product I settled on using Self-Play for training, which is in the category of deep reinforcement learning techniques.

The agent's observations consisted of its observations of its environment, specifically which tiles were free and which units were on the claimed tiles. These observations were then passed into the Neural Network which returned an action to perform to maximise the agent's chance of winning the match.

Visuals

All visuals, including characters and the Graphical User Interface, were created within Blender and Photoshop.

Five character models were created in total, with each one representing a different unit:


These models were exported as FBX models from Blender and imported into Unity where their materials were altered to be compatible with the Universal Render Pipeline (URP). The environment models were also created in Blender, with its textures being created in Photoshop, and then exported to Unity.