Who am I?

Hi, I'm Tom, and I'm a games programmer.

A recent graduate of Staffordshire University, I have attained a BSc in Computer Games Programming with upper second-class honours. After seven years of programming, I'm working towards a career that allows me to combine my passion for games and solving complex problems to completion.
My interest in programming began with simple projects in Scratch as a child. Nowadays, I enjoy using C++ to develop video games.

  • Games
  • University
  • Coding

Cuboid | C++, OpenGL

In my spare time, I work on a revision of a game made for a past university project named Cuboid, this time using mainly my own code and OpenGL.
Cuboid runs on an engine centred around an Entity-Component-System architecture, whose features include:

  • Rudimentary 3D physics with a fixed timestep
  • Event-based programming capabilities
  • Model loading with specular and emission mapping support
  • Scene saving/loading

Physically Based Material Renderer | C++, OpenGL

For my final year project of university, I researched physically based rendering techniques and how they can improve graphical realism. To showcase this, I developed a material viewing application, capable of:

  • Loading in different solid materials/backgrounds
  • Shading pixels using the rendering equation
  • Calculating ambient lighting using image-based lighting

2D Engine and Editor | C++, OpenGL

In my final year studio simulation module, I worked in a team to produce a 2D game engine capable of being used to fully create a game.
We were successful in creating a robust engine with an Entity-Component-System architecture, myself specifically working on:

  • Aiding with project set-up
  • JSON scene import/export systems
  • Editor GUI for runtime interaction with game project

Yokai Fortune | C++, OpenGL

After producing an engine in my studio simulation module, my team worked to develop a game in the engine we had created.
We made a 2D wave defence game with a full game loop, with features I worked on including:

  • Enemy management (spawning, movement, animation)
  • Collision resolution
  • Shaders
  • In-game GUI (health bar, experience bar)

Advanced Graphics Program | C++, DirectX 11

In my final-year graphics module, I developed a 3D rendering program using DirectX 11 that utilises techniques like:

  • Normal and parallax mapping
  • Post-processing effects, including gaussian blur
  • Procedural terrain generation

Low Level Raytracing Optimisations | C++

For my final-year low level programming module, I was tasked with improving upon a basic raytraced image renderer via:

  • Optimising memory allocation
  • Using a faster file IO method
  • Setting up parallel processing with threads

One Small Step | Art

During my second year I partook in a 48 hour games jam called Jamfuser 2020. The given theme was 'leap', and my team produced a platformer set in low gravity on the moon. My role within the team on this project was to produce pixel art for the game.

You can play One Small Step here.

What am I working on now?

I have recently graduated and am currently searching for a place where I can continue to hone my skills while contributing to amazing new projects.

In my spare time, I work on a revision of an old assignment, named Cuboid. Cuboid is a 3D game running on an engine written in C++ and rendered with OpenGL.

I have learned more than any of my other assignments through the ongoing development of this passion project. I have studied and implemented features like an Entity-Component-System architecture that have enhanced both my project and my knowledge immensely.

Learn more about Cuboid here.

Other projects I have worked on include:

  • 2D Puzzle Game

    C++, S2D

  • Mario Recreation

    C++, SDL

  • Voxel Tower Defence

    GUI/Scene architecture - C++

  • 3D Ship Game

    C++, DirectX 11

  • 2D Pathfinding AI

    C++

  • Networked chat app

    C#

Contact me

If you'd like to chat with me or see some more of my work, feel free to contact me at any of the locations listed here.

Thanks for checking out my portfolio!