About Me
I am an aspiring developer with an interest in Software and Game Development.
I have a bachelors degree from the University of Lincoln in Computer Science and a masters degree in Games Developement and Design on the way, from the same University. I have a keen interest in the development of applications using C++ and the features that come with the language. I am interested in the low level techniques that the language provides and the control that it gives programmers.
I have always wanted to make games and software however as I have gotten more experience I have found that I enjoy the lower level programming that is involved in the creation of game engines. This has expanded my horizons as I would love to work in all aspects of creating games. I would love to work on big game projects working with a variety of people to make the best product possible.
Projects

Error

FFT Ocean

Graphics

Parallel Programming

Physics Simulation

Advanced Programming

Advanced Graphics

Rocket Race

Beatkill

Bounce Warp

Elemage

Augmented Reality

Virtual Reality

Masters Research Project

SDL Game Engine

Minecraft Clone

Pixel Simulation

Desktop Sailboat

Advanced Programming
This project required the development of a server-client program where a client would send an image to the server. The server then performs an image filter and then sends it back to the client. I developed this using UDP and used multi-threading to increase performance on the image sending and processing. The video demonstration for this project had to be under 3 minutes so my description of the program is not excellent in the video provided. I used lambdas, operator overloading, custom exceptions, memory management and other C++ features during this project. I feel as though the project is designed well and completes the necessary functionality. This project was great for my general understanding and use of C++ as well as enforced good time management as I was able to complete most of the project early and was able to focus on the layout of the code.

FFT Ocean Simulation
This project was my third year dissertation project. I chose to develop a water simulation as I had wanted to do so before and I was very interested in the topic. This ocean simulation uses compute shaders and fast fourier transforms to generate a dispalcement for each vertex on the ocean surface. Then a shader calculates extra information to display the colour of the waves. Oceanographic spectra is also used to ensure realism in the way that the waves operate. This allows for control in how the waves look.

Graphics
This module consisted of two assessments, the first was making a simple 2D shader which can be seen here. This task was just to create a fragment shader that used gradients or emulated a watercolour effect. This module was great for increasing my understanding of shaders and how they operated. This helped greatly towards my final year project as that was heavily shader focused. The second assessment was to create a scene inside of unreal which acted as a vertical slice. Teaching us the basics of the engine and how we can use the lighting and other aspects to create a good looking scene. We also had to set up animations and materials, the materials I feel looked quite good, however the animations could use some work as I am not very good at that aspect.

Parallel Programming
The parallel programming module tasked us with adjusting an image using the histogram equalistaion algorithm using OpenCL to compute the result in parallel. This was a great tool for understanding the main control flow of certain programs and helped with understanding how and why programs may use extra threads to increase performance. This was also good for gaining more knowledge on algorithms and the ways to implement them, both single threaded and multi threaded. Due to the lack of knowledge at the time, the OpenCL library is hard coded to a specific location on my hard drive which requires extra set up to run this program. Contact me if you wish to see this project.

Physics Simulation
This module focused on us learning PhysX and using it to implement a basic system rugby esque game where the player has to use physics to launch a ball into the end goal. There also had to be a medieval aspect to launching the ball and there also must be some kind of obstacle blocking the shot. This was my first real experience working with a library so I learnt lots of skills in terms of researching a library and its functions and being able to implement them.

Advanced Graphics
This is a continuation of the third year graphics module, using more unreal engine features and trying to createa a more detailed scene. I was tasked with making a scene that was for a virtual production. For this I chose a dinosaur documentary scene with web interface controls so that the scene could be controlled from anywhere. The scene used unreal engines procedural content generation tools as well as nanite to have very high detailed meshes to make the scene feel believable.

Beatkill
This is the second game that we had to make during the Prototyping and Evaluation for Games module. This was a group project where I worked with two others to develop this game. We used unreal engine as that was the engine that we collectively knew the most. As with Rocket Race we had to pick two mechanics for our game. We chose Rhythm and Game Gets Harder Until You Die. So to combine these we created a wave based rhythm shooter where the player gets upgrades every wave to fight the onslaught of enemies. This really helped my ability to work in a group, we had group meetings and made sure that everyone knew what tasks they were doing. We also made sure to check on features when they were finished to give feedback so that the game was as best as it could be.

Rocket Race
This was the first game that I had to develop for the Prototyping and Evaluation for Games module. This module we simply had to make a prototype and a game, using evaluation to ensure its quality. We had to pick two of five mechanics that were given and combine them to generate our idea. For this game I chose Bullet Hell and Race. We were meant to work on this project in a group of about 10 however my group mates did not have experience in any game engines so I spent this project working on this game solo, they helped with the idea for the game but I let them learn unity while I made the game. This was my first time full completing a game project. I have done a few in the past but never to the point of completion which was a nice experience. This was important as I had to make music and do the menus.

Augmented Reality
During this project we were assigned the task to design an Augmented Reality game and make a basic prototype of it. I designed a game where the player could fight hordes of zombies using their phone, using plane tracking to map out the player’s play space so that the zombies navigated the real world. This prototype includes these elements. (The video is slightly rushed the limit for the video submissions was two minutes long)

Virtual Reality
For this assessment Ihad to create a Virtual Reality game where the player played as an animal (that was not a mammal). This was to explore the idea of having the player empathise with non human characters. I chose to develop a game from a frogs perspective where a frog uses jumping, climbing and swinging (using their tongue) to traverse a level. The full game design included boss fights and combat using the tongue as a whip like weapon. Due to the short nature of the assessment we were only required to develop a prototype of this game so I focused on the jumping and combat. (The video is slightly rushed the limit for the video submissions was two minutes long)

Elemage
This module (Game Design Methods and Approaches) tasked us with developing a game that uses novel input/output with a focus on designing good gameplay and testing with paper prototypes and other metrics. I developed a VR game that uses voice controls to cast spells with a core gameplay loop similar to immersive sim games such as Dishonored, Prey and Deus Ex. Contact me if you would like the full game design document. The game is only in the prototype stage with a handful of spells and very basic aesthetics. The voice control works well due to the fact that this is a prototype it is a flatscreen game but VR would be the intended platform as seen in the way the player casts spells.

Bounce Warp
This was the third game that I had to develop for the Prototyping and Evaluation for Games module. Similar to the two before it I had to pick two mechanics of a list of five and make a game with those as the main focus. This project was to be done individually so I came up with the idea to combine Bouncing Object and Teleportation to create a Getting Over It / Jump King inspired game where the player has to throw and bounce an object up a large tower to reach the top. Where mistakes can cost the player lots of progress. This project was good for time management as we had to develop this over christmas which required me to keep track of the time so that I could complete this project as well as my other assessments on time. This was another great experience on finishing a game.

SDL Mini Game Engine
This was a personal project to create a simple game engine with the attempt to make something terraria like using sdl. This project did not make it that far however as I had to go back to university and did not feel I had the time to work on this anymore. I also felt as though learning a graphics library would be better as well. This had simple objects that rendered, animations, physics and collisions, as well as a simple concept of scenes. In the future I would focus on tidying up the existing elements and to develop more of the engine features so that a proper entity component system could be used. (This project I did not properly use a library folder which means that setup is slightly more annoying)

Minecraft Clone using OpenGL
This is a project that I am currently working on (as of 19/02/2024) and I have worked on for the past week or two. The aim of this project is to make a minecraft clone as the majority of the features will allow me to get a lot of experience in implementing features such as: saving, multi-threading, multiplayer and more. The main focus is learning OpenGL which I feel is important. This will also help for a future project where I want to create a voxel engine in vulkan like the one used in teardown.

Pixel Simulation
This is a personal project where I aim to develop a pixel simulation utilising an infinite canvas with many different pixel types with different interactions. This is being developed using the raylib library and is currently a work in progress, focusing on proper architecture and exploring more in-depth features of the C++ language.

Desktop Sailboat
This personal project aims to recreate the little unsinkable sailboats that you can buy however on your desktop. The user will be able to watch the sailboat move around and move the window, thus affecting the water inside. The user will be able to change any settings to affect the water as well as still be able to click through to use their computer as normal.

Masters Research Project
For this project the aim was to develop a godot extension that would allow for seamless generation of tilesets for use in game. This took the form of having spelunkey style generation and generating a new set of textures each time a level was completed to make each level as unique as possible. The github repository will not function as I have not included an API key however please email me with enquiries or if you wish to see some of the results or even the paper itself.