Bygone Brewery


C++, libSDL2, Git, Local Multiplayer

Key Features

  • Won 3rd place in Bournemouth Universities' Game Jam Nov 2016
  • Was created in 48 hours with the theme 'Beer'
  • Made in a team of 3
  • I worked on most of the backend/engine code and managed the Git Repo

Description

Created for Bournemouth Universities Game Jam Nov 2016 in 48 hours with the theme 'Beer'. Our team ('Team Teetotal') consisted of me and two other Games Programming students.
I worked on the backend/engine code that provided input handling, rendering and other core engine features. I also worked on many of the backend gameplay code such as level loading, entity systems and entity interaction.
While building this game we learnt a lot about planning ahead, as trying to combine together three peoples' code is quite challenging without a lot of discussion. I also managed the Git repo and performed all merges, pull requests and conflicts.

Other Team Members

3D Arcade Space Shooter


C++, libSDL2, OpenGL 4, Model Loading

Key Features

  • 3D 'on rails' (arcade) shooter
  • My own basic OBJ model loader that optimizes mesh data for the shader
  • Basic UI system using SDL_ttf for text rendering
  • Resource Manager that ensures only one of each asset is loaded

Description

For this project I created a 3D “on rails” (arcade) shooter, where you control a ship flying towards an infinite amount of randomly spawning explosive barrels. You have to avoid the barrels to survive, or you can destroy them with the ship’s laser cannon.

During the project I created a OBJ file loader that combines the mesh data into only one VBO for faster access.
The Resource Manager was built using unordered maps to store the resources and custom load/unload functions to count the number of instances of that resource.

Cross Platform Framework Demo


C++, libSDL2, Android NDK, Build Systems, Batch/Shell Scripting

Key Features

  • Cross Platform support for Windows, Linux and Android
  • Basic 2D particle system
  • Audio support on all platforms
  • Reimplementation of my A* pathfinding demo
  • Uses Android NDK

Description

The brief for this project required the development of a game engine feature in C++ or Java. I decided to create a cross platform engine demonstrating several features, such as Particle Systems, Audio and A* Pathfinding.
It was the first time I have ever tried to build C++ code on Linux so I had to overcome several challenges related to cross platform development. Android was also a challenge as it required specially formatted resources and touch input handling.

Kinect Bowls


C++, OpenGL, Kinect, 3D Maths, Git

Key Features

  • Utilized Microsoft's Kinect V1
  • Full body tracking and interaction
  • Team of 4: 2 programmers, 2 researchers
  • Was created to fulfil a brief by an NHS researcher

Description

The brief for this project was provided by a NHS researcher, who request a game that would aid recovery of people with Parkinson's Disease. Our team decided to create bowls (Lawn Bowls) game that utilized the Kinect to track the player's movements. We used a library created by one of our lecturers that wrapped OpenGL for our backend as this allowed us to focus on the game code.
I mostly worked on the Kinect code and the backend, while the other programmer (Jamie Slowgrove) worked on gameplay and physics.

Dodge the Debris


C++, Android NDK, Build Systems, Android, Touch Screens

Key Features

  • Uses the Android Native Development Kit
  • Was created in a weekend
  • Used a lecturer's OpenGLES wrapper

Description

An Android arcade game where the objective is to dodge the debris flying towards your ship. The debris locations and size are pseudo‐randomly generated so should make replayability a bit more unpredictable.
Was created for a university assignment that was cancelled, but I decided to complete it anyway in a weekend. It uses my lecturer's library for the backend which wrapped OpenGLES.
I had to overcome a lot of problems during this assignment as my lecturer's library was closed source, so I had to use trial and error to find out how to even the simplest things. (Part of the reason why it was cancelled).

A* Pathfinding Demo


C++, libSDL2, Artificial Intelligence, A* Pathfinding, Behaviour Trees

Key Features

  • Implements A* Pathfinding algorithm
  • Triggers on line of sight with AI Bots
  • Uses a rudimentary version of Behaviour Trees

Description

For this brief I had to implement the A* pathfinding algorithm and line of sight to control them movement of two AI bots. Most of the assignment was researching the algorithm and efficient methods to implement it.
I also implemented a basic Finite State Machine and Behaviour Tree system.