Programmer @ Double Eleven / TIGA Graduate of the Year 2022
I am a programmer and game developer from the UK. I have been working in the games industry for 2 years, and studied game development for several years prior to entering the industry, first studying Computer Game Design at College and then Computer Game Programming at University.
I decided from a young age that I was interested in making games. To me, games are a means to make people's lives better. They teach, they inform, they entertain, and they enable a greater understanding of the world, ourselves, and eachother. I am very influenced by Satoru Iwata's philosophies on games, especially the ideal that they should be universal, for everyone to enjoy. I am fuelled by a strong creative desire to assist the greater industry-wide effort to provide games for people to enjoy, and to enrich their lives through them.
As a programmer, I find my ability to contribute towards the creation of games is best suited to solving difficult technical problems. I am very interested in fixing difficult bugs, implementing nuanced systems, and providing assistance to movements greater than myself to make ambitious and interesting things. My coding style is very simplicity-oriented. In my work, I aim to write simple, reusable, performant, expressive code that ticks all the boxes where possible. I see my code as my own personal brand, and take great pride in it.
Thanks for visiting my portfolio, feel free to scroll down to look at some of my past works.
Also feel free to check out my LinkedIn or Twitter!
| Skill | Related Info |
|---|---|
| C++ | Good working knowledge of the language and experienced with some of the more esoteric features, as well as building compatibility between MSVC/GCC/Clang. |
| Mathematics | Functional intuition for use of matrices, vectors, and trigonometry to support implementations. |
| Source Control | Experience with TortoiseSVN, GitHub Desktop and Helix P4V clients. |
| Lua Scripting | First language. Used both professionally and prior to career. |
| Optimization | Using profilers, identifying CPU bottlenecks, cache friendliness, etc. |
| Unreal Engine | First introduced when I was 15 years old, I have worked on 3 projects professionally using the engine, and am very experienced with the workflows, tools and paradigms of the engine. |
| Gameplay Code | Worked as a Gameplay Programmer in specialized Gameplay team on a AAA RTS (unannounced) and did some gameplay on Prison Architect. Also, student projects. |
| Engine Code | Setup low level systems and fixed bugs professionally in a variety of game engines. Also student projects. |
| AI Code | Minor AI implementations in industry. Studied 2 AI modules at university, looking at FSMs, pathfinding, machine learning, Minimax algorithms, etc. |
| UI Code | Fixed up and took ownership of a lot of UI whilst on Prison Architect. |
| Debugging | Experienced with fixing bugs of all kinds and severities across multiple platforms and engines. |
Ported Grounded to PS4/PS5/Switch, working as a systems programmer on much of the lower level functionality related to the game.
Worked as a Core Gameplay Programmer on Age of Empires IV, assisting in the development of various updates, as well as "The Sultan Ascends", an expansion for the game.
Worked on this in the early phases of the project, implementing things such as AI. Placement ended whilst on project, and I returned to university to finish my final year.
Heavier focus on UI. Took ownership of the implementation of much of the new UI-related content and features for this DLC and the related updates.
First industry project as a Placement Programmer. Contributed bug fixes, implemented mechanics and content, mostly relating to gameplay and UI, occasionally delving into graphics and AI.
Although this project doesn't look or sound very good, the underlying functionality to me is very powerful. Embedded into an engine of my own creation made with the SDL2 Framework, with some assistance from ImGui for tooling, this demo shows off cats (chosen to evade the need for natural language processing) acting out a series of behaviours from a finite state machine, determined by an emotional state that is dynamically responsive to real time game events, augmented by a constant personality type. The models of personality and emotion utilize real-world models from the fields of psychology and cognitive science, namedly Plutchik's Wheel of Emotions for emotional states, and the Big Five OCEAN model for personality representation. The use of these models means you could enter in a real world person's scores from those models, and have NPCs behave similarly to them. The personality and emotional models are represented with vectors and matrices with weighting to represent base emotional stimulation, meaning you can resolve the states really fast with multiplications.
I believe this technology when matured could lead to a whole new era of NPC interactions, where NPCs can determine an emotional state dynamically based on emergent gameplay scenarios, rather than from prescripted triggers. This work earned me a 100% grade on my final dissertation, and enabled me to win a TIGA Graduate of the Year award in 2022.
Developed as part of the AI module I took in my final year at university, I implemented a neural network system ontop of a provided freely available Flappy Bird implementation to have an AI learn how to play the game effectively. Required score for a good grade was 400, implementation reached a score of over 40,000. AI is achieved with genetic algorithm approach, with weights acting as the genome, using one hidden layer and the inputs being positional info relative to pipes, and the output being whether to flap or not. Weights, inputs and outputs are visualized in the UI. I also found that by modifying the game to allow for multiple parallel birds, I could speed up training massively.
Created in a provided DirectX 11 engine, this is a basic physics simulation that demonstrates collision detection and response, and linear/angular velocity and acceleration.
A simple DirectX 11 scene made during my time at university. It features basic rendering, mesh loading, dynamic lighting (point lights), and dynamic colouration of terrain (sand, grass, rock, snow) based on height using a pixel shader. The subject of the scene is a player-controllable boat with several possible camera angles. The water uses a vertex shader to move the vertices up and down, as well as UV offsetting with a sine wave, to try to simulate basic motion.
Custom implementation of Super Mario Bros 1-1 and the original arcade Mario Bros made in a custom engine based on the SDL2 library. Features animation, collision detection and resolution, a level editor, a custom UI system, a high score system, local multiplayer, enemy AI, collectibles, and a level end sequence.
Basic turn based strategy game inspired by Fire Emblem made in Unreal Engine 4. Mostly C++ classes, with some Blueprint classes inheriting from them. Bespoke implementation of tile-based A* pathfinding algorithm as an academic exercise, rather than leaning on the implementation the engine provides.
Developed solo as a final project with assistance from a AAA sound designer providing the sound FX and music. A casual cooking game, wherein the player must cook ramen as specified by customers to earn money to make rent. Includes a complete interactive tutorial and several levels with increasing difficulty progression.
Collaborative final project created alongside 2 classmates acting as sound designer and 3D modeller. Lead the team and performed all engine work in UE4. Game is a Starfox-inspired endless runner in which the player must hit targets to open gates to continue progression. High score system implemented to encourage replayability.
My first proper game. Platformer made in UE4 with blueprints. Features basic combat, UI, sound design, animation, and other things you'd expect in a bog standard platformer.
That's all I currently have up for display, but if you'd like to talk more feel free to reach out on my social medias!