Cloth Physics

I really enjoy maths and physics, so implementing this physics-based cloth simulation using spring-dampers was very enjoyable.

C# Networking/Threading Project

This is a Server/Client Chatroom and Chess project that I made in C#. This was the first time I had written networking code so I left the low level networking to C#. This let me focus more on the higher level issues with networking and threading such as deadlocks, race scenarios and Server/Client authentication.

Neural Network Flappy Bird

This flappy bird AI uses neural networks and genetic algorithms to take input data such as it's height and distance from the next pipe, and decide if the bird should flap it's wings. As you can see in the video, the birds start out doing pretty much random wing flapping, and over time learn when the correct time to jump or not jump is. This project is very cool to implement and has made me very excited at the possibilities for what genetic algorithm trained neural networks could do in game development.

Global Game Jam 2018

This is a game that I made alongside some friends during Global Game Jam 2018, which was my first game jam and something I enjoyed a lot. Since the game was made in 48 hours there are many areas that could have been improved, but I had a lot of fun making this game with friends. The people I worked with were John Whiles, Josh Shaw, Jose Paredi, Adam Thompson, Matt Williams, Sam Johnson and Jared Clark.

Tower Defence Genetic Algorithm

This program is a more simplified version of the above flappy bird code, as it just uses a genetic algorithm to adapt the outputs for the tower defence AI rather than how the AI "thinks".

Chess AI

This chess AI uses a basic minimax algorithm along with many optimization techniques in order to look into the future of certain moves and decide if they are good or not. This is done by simply evaluating how good a board looks several moves in the future and deciding that if a board looks too good or too bad(perhaps losing 2 pieces and getting nothing in return) then there is no point in considering that set of moves since either the AI or it's opponent will not let that move happen.

DirectX Shader Project

The above is a DirectX 11 project I produced in order to learn the basics of DirectX and shader programming. Within the Pixel Shader, I implemented Phong shading as it produces the best effects, furthermore I produced a Post-processing effect in order to pixelate the screen. This project was both highly interesting and enjoyable for me as it introduced me to new areas of programming that I had not worked within before.


While this game was very fun to work on, there isn't anything too special about it programmatically other than the fact that it is the project I created to learn how to use UE4.

Open GL Project

This is a pretty basic scene graph of objects being rendered using OpenGL. With their transforms being inherited from their parents in the scene graph.

My Skills

    • Languages/APIs

      DirectX 11

    • Games Engines / Development Libraries

      Unreal Engine 4
      SDL 2.0

    • Other Programming Skills

      Source Control (Github/Perforce)
      Object Oriented Programming
      Team Communication
      Program Design and Documentation

About Me

I'm currently a Programmer at Red Kite Games in Leeds, England. I love programming (especially in C++) and Games. I spend most of my time either playing games with friends or messing with some C++ code. Some of my favourite games are Dota 2, The Binding of Isaac, Borderlands 2 and Risk of Rain. I enjoy most somewhat challenging areas of games programming, but I especially love AI and Graphics programming. I can't talk about any programming I do at work, but in my spare time I am currently spending my time looking into type reflection in C++ and Dota 2 modding using Valve's Lua API with a friend.

Contact Me

(+44) 07776088699