Phd Research - Currently the majority my time is filled up with my research as part of the IGGI Doctoral Training Center. I am considering the ways in which we can use Deep Learning to model various facets of video games streams (e.g. stream highlights, emotional moments, in-game events, various streamer behaviours etc.) with of focus on how to fuse multi-view stream data (e.g. audio, web-cam footage, game footage, chat) into a single model.
Read more about my place in IGGI here.
Starwing Genetica - Initalised built in two weeks in a Game Jam style setting Starwing Genetica is a space themed dog fighting game built using Unity. It uses a Genetic Algorithm when spawning each wave of enemies and in doing so identifies ships which perform better against the player's playstyle. With this work I aim to explore the ways in which adaptive AI can provide a different play experience to different players based on their preferences or play habits.
Monte - 'Monte: A general game playing AI library for 2-player abstract games using Monte Carlo Tree Search and Deep Learning' was my final year project during my BSc. I was investigating the ways we can combine deep learning and MCTS in order to create AI that can play a wide range of games 'out-of-the-box' by using deep learning to learn game-specific MCTS heuristics. Monte can be used as an open source Unity plugin by downloading the code from here however, real-time performance is currently poor because of a lack of parallelisation (the neural network code was written from scratch for this project).
Code Noir - A collaborative project which blended puzzles with top down exploration. In Code Noir players took on the role of a spy in a cyber punk world. During game play player has to sneak past guards, hack computer terminals, pick locks and lift finger prints on their was to uncovering the secrets behind a company that were not all they seemed. I took the roles of lead programmer and lead designer for this project.
Goro-Goro Dobutsu Shogi - I developed a C++ implementation of the Japanese abstract game 'Goro-Goro Dobutsu Shogi' (also known as Let's Catch The Lion) using a Monte Carlo Tree Search AI opponent, which provided solid opposition for players.
Leylines - Leylines was my first attempt at writing an intelligent opponent for a board game. It used a novel approach to the problem, using limited tree search combined with non-deterministic move selection inspired by evolutionary algorithm. Additionally the game itself is a game I designed (and still tinker with to this day).
I enjoy taking part in hackathons and game jams. Here are some of the things I have worked on:
The Transmission is a text based mystery game where your only tool is the terminal in front of you. You play as a member of a missile defence system and must investigate a missile alert. Made for the Global Game Jam 2018 using Unity.
Travelling Playlist Problem is a CLI tool which uses the Spotify API to take a playlist, model it as a graph (with songs being nodes and edges being how different songs are based on audio analysis) and then uses a genetic algorithm to solve the Traveling Salesman Problem and, by finding the shortest path, reorganise the playlist so it flows better. Made in 24 hours at Anvil Hack 3 and winner of one of the Spotify awards for best use of their API.
Genetic Dungeon was a dungeon generator which used a combination of Genetic Algorithms and Monte Carlo simulations to build progressively more interesting Dungeons. Made in 24 hours at HackCity 2017 and winner of two awards, one for best AI hack.
During my time in the Games Industry I worked on a few published titles:Data Intergration and Card Functionality (Junior Programmer):