As part of a coursework for one of my modules, we were given an SDL framework by our lecturer, and tasked to create a game that met a series of requirements.
I decided to clone The Legend of Zelda on the NES to the best of my ability. This is the largest game project I've ever undertaken, and I'm proud with how it turned out.
Maps are loaded in via text files, and store warp behaviours encoded within them (which maps lead to other maps).
Written in C++ using a framework built on top of SDL.
For my dissertation, I implemented a procedurally-generated questing system into the game Minecraft. It was an investigation into novel procedural generation systems, and the viability of a similar system in a game proper.
The mod was written in Java (like Minecraft itself) using the Minecraft Forge Library.
TextEverything is an SMS chatbot written in Node.js that I created as part of the 2017 Hacknotts Hackathon with my teammate Toby Jones.
It can be used by anybody with any phone, even without an internet connection. It's plugin based, so can be extended almost infinitely, and can be programmed to perform any sort of task, from tweeting, to viewing bank balance, to controlling IOT devices.
We demoed this project at the end of the Hackathon, and won the Bloomberg prize for Coolest Hack.
Discord Plays Dungeon Crawler is a discord bot written in Node.js that I created as part of the 2018 LincolnHack Hackathon with my teammate Aakash Dadhich.
It generates a procedural grid map made of emojis, and users can vote on what they want the player character to perform.
There are enemies that can be killed and collectables to obtain before the next level opens up.
For the HackSussex hackathon, my team created a procedural roguelike where the audience could send sms messages to impact the game.
Levels are randomly generated, and users can find random weapons to pick up along the way! These were all hand-modelled and implemented manually by us.
The game was built in Unity with twilio integration, so audience members could send text messages to cause bad effects in the game.
This project won the Best GameDev Hack prize.
For the CovHack hackathon, my team created a platform for allowing streamers to have their viewers 'interact' with gameplay.
Custom-built mods interact with a backend system, and when a server is started, it communicates its creation to the server.
Users can then interact with the streamer by clicking buttons on the UI, for example, if playing 'minecraft' users can summon lightning strikes on players.
You can also interact with the games by sending commands to a Twitch chat, or via twilio.
We won two prizes, the Best use of MongoDB Atlas and Best user-rated hack.
For the Hack24 hackathon, I created a simple galaxy generator using noise and Procedural Generation.
A galaxy is generated on startup built up of thousands of 'stars', each with an assigned seed.
When a star is clicked on, this seed is used to generate an interactive solar system, where each planet has its own seed as well
When a planet is clicked on, the planet's seed is used to generate a name and an 'alien' from a combination of alien parts.
Once a planet is closed, all of that data is destroyed, the only persistence is the seed which is used to re-create the same content when the star is clicked on again.
Written in C++ using the SFML Graphics Library.
As part of a coursework for one of my modules, we were tasked to create a running tracker in Android.
I created a real-time running tracker that logs and stores the users location throughout a run into a SQLite DB, so the user can see the routes they took on a map.
Uses the Google Maps API to display a map of the route taken. Written in Kotlin using the Android API.
A simple clone of the game Asteroids, written in C++ using the SFML Graphics Library.
This was my first proper Clone of a game, and I'm happy with the result.
What do you want? is a small proof of concept that I made for the Game Makers Toolkit Jam. It's a short platformer, with a built in dialogue tree.
The story is about a teenager having to deal with the death of their father, and the conversation you hear is after the son has started therapy to deal with the loss.
The key is, that you choose what you say based on what platform you land on. I hope to make a game in the future that uses this idea to it's fullest extent, because right now it's just a proof of concept.
I came 49th out of 761 for innovation, and 103rd for game feel.
As part of my degree, I was asked to create a Sprite Editor in Java. I used the JavaFX UI library to produce my sprite editor, and it saves and loads images of sizes between 16x16 and 64x64.
It also includes standard tools such as an eraser, eyedropper, and a fill tool.
This project helped me to develop my User Interface design skills, and taught me more about how to create graphical programs in Java.
As part of my interest in Game Development, I recently picked up the Unreal Engine. I've been following along with Ben Tristem's Unreal Course, and the first major project was a Room Esape Game.
While I've finished this section of the tutorial, I am going to go through and add more features to the game, expanding it to multiple rooms and introducing mechanics such as levers, buttons and boxes.
This project helped me to develop my skills with the Unreal Engine, and will help me to develop larger projects in the future.
As part of my degree, I was asked to create a Matching Pairs game in both Java and ARM Assembly.
From these projects, I have increased my familiarity with Java, a language I already have experience with, as well as teaching me some valuable low-level programming skills using ARM, where I learned about register manipulation and context switching.
You can see a picture of the output of the ARM Matching Pairs game below, emulated using Komodo.