I am currently studying the MSc Computer Game Engineering at Newcastle University and am seeking a placement in the games industry to broaden my skills as I finish my course, with the hope of continuing to a full-time role. Previously I have worked as a professional design engineer within the subsea industry. Making small games in my free time has led me to join the MSc to pursue a new career in an industry which interests me. I am particularly interested in a role which will give me the chance to learn as much as possible.
Team Project
I worked as part of a team to develop a multiplayer game using our own engine. My key roles on this project were integrating the physics middleware into our game engine, and developing the majority of the gameplay with intelligent use of design patterns to write efficient, clear code. The total length of this project was 8 weeks.
Videos below can be seen of our early prototype in Unity, our first alpha in our own game engine, and a final build:
Due to the licensing agreements on some of the middleware used, I cannot add a link to the full codebase, but I have shared snippets below of code I wrote that I'm particularly proud of.
Player Controls - Command pattern which allows any pointer of player class to be passed to an execute function to queue controls for that player. Allows keeping the game class file free of if statements.
Player's shooting - uses a freelist pattern loaded at runtime and stored in a nonactive state. Shooting cycles bullets to and from an active state, improving performance while playing and avoiding calling constant 'new' and 'deletes' which would reduce cache coherency.
Physics Project
The final project of my first term was to create a physics engine in C++ to simulate a marble going through a maze. By far my favourite project, as it allowed me to take my previous engineering expertise and play with the rules, consequence-free. What I learnt most from this project how important it is to construct test scenes. By binding a number of these to keys I could quickly load simple scenes to test specific features. My favourite segment of code was building a menu system to load different levels using push down automata. Writing this section made me feel like I was starting to really get to grips with object orientated programming.
A video and the source code of the physics project can be found below. This project was completed in a rapid two weeks.
Graphics Project
The aim of this project was to render a tropical scene using OpenGL. A difficult project, and my first time trying to render something outside of a pre-packaged game engine. However, this greatly helped to reinforce and practice my knowledge of concepts like object orientated programming and efficient means of doing things. (Particularly when my first particle effect ran at 1fps, as each raindrop was being up-loaded to the GPU one at a time rather than in a batch!)
A video and the source code of the island scene can be found below. I hope you will forgive the transparency in the leaves confusing the depth buffer, and the texture merging not quite smoothing in the intended manner. I have added snippets of what I think is the best part of the code I wrote; a particle effect which resets the particles rather than destroying and redrawing them. This project was completed in a little under three weeks.
First C++ Project
After completing some early Unity projects, I began studying an MSC in Computer Games Engineering at Newcastle University. During the first term I completed my first project in C++ to design a password strength testing program (the link to my GitHub Repository can be found below).
Although the code for this was basic and overly verbose in places, I was especially proud of this project. I was able to tackle an assignment aimed at computing masters students, despite having very little previous knowledge. This was completed in a time frame of two weeks. A particular highlight of the project was developing a good understanding inheritance and polymorphism to write an override function for different classes, screenshots of which can be seen below:
Early Unity Projects
I started my foray into game development during the 2021 lockdown when I first downloaded Unity and a tutorial on C# programming during my free time. Some images of my very first games can be seen below. I was amazed how similar Unity was to the professional engineering design software I used in my job. Similarly, C# used a lot of the logic and maths that I was familiar with from my design role. I discovered that game development was less impossible than I had originally thought. I also gained a lot of joy from both these basic games and the unexpected side effects from the bugs I caused.