This project explores improving accessibility in video games for players with visual impairments, focusing on colorblindness. I developed a tower defense game to showcase features like colourblind modes (Protanopia, Deuteranopia, Tritanopia), high-contrast settings, and fully customizable colors. Built using Unity, the project is designed as a flexible starting point for developers to integrate accessibility into their games, regardless of genre. The focus of this project was to make the development process around accessibility more streamlined and hopefully more achievable.
For this assignment, I developed a customizable pause menu sub-system to integrate into an existing game engine, focusing on user interface due to my enthuasism for UI. My approach was to create a generalizable sub-system that could easily be implemented in any game using the engine. The core of this sub-system includes a GUIController that manages two main functions — GUIUpdate and DrawGUI — along with a list of GUIElements. The GUIElement is a template class for various UI components, handling sound, function, and design assignments for all inheriting elements. The Button class, a key component derived from GUIElement, is primarily responsible for user interface navigation. This sub-system showcases my skills in building modular, flexible UI components for diverse game applications.
MinimapStats is a customizable World of Warcraft AddOn that integrates essential information directly onto the Minimap. It provides real-time data like in-game or local time, player in-game location, FPS, and latency in a sleek, unobtrusive display. Users can tailor settings for font size, position, and refresh rate, ensuring the information fits seamlessly with their interface. Designed for performance and compatibility, MinimapStats offers a streamlined experience for players who want quick access to game metrics without clutter.
MinimapStats is available to download on CurseForge and WagoAddOns
Unhalted Unit Frames is a World of Warcraft AddOn that aims to replace the default Blizzard Unit Frames. It focuses primarily on performance. It utilizes the oUF Framework which simplifies unit frame creation whilst providing customizable elements. The README has been designed to help explain all functionality and implementation. The AddOn is being used by a few individuals who competed in the Race to World First for their respective eSports organisation and has proven to improve performance in a raid environment compared to competitors.
Squared is a personal project that brings together coding, design, and creativity. The game’s premise is straightforward: survive as long as you can while avoiding and defeating waves of enemies. The name Squared reflects the visual style, as all assets are built around a square-based aesthetic, which I’ve designed myself using Aseprite. This project is a chance to challenge myself in multiple areas. On the technical side, I’m working with Make and Raylib, both of which are new to me, allowing me to expand my programming knowledge. On the design front, I’m creating all the visuals from scratch and plan to develop custom audio to enhance the overall experience.
I maintain a wide range of WeakAuras - which is a powerful addon for World of Warcraft that allows for endless customization - most of the auras I create are designed to improve and expand on the default user interface, giving players more detailed and useful information. The goal is to provide a more complete and intuitive user interface for the end user.
The Party Bookings Confirmation project is a Flask based web application for managing party bookings. It allows users to input booking details through a web interface and instantly generates a personalized Word document using BytesIO which enables the document to be created and delivered in-memory without needing to save it on the server. This approach allows for more secure and efficient handling of data, as the booking information is never stored permanently. Hosted on Render, this web application is accessible across devices, offering a seamless experience for users without the need for local setup.
Party Confirmation Generator Live
~50s Initial Load Time
As part of my University Degree, we had to develop a game using C++ and SDL. I developed AerialSpace, an aerial shooter inspired by the classic Space Invaders. The primary objective was to adapt and build on the provided starter code to create a unique and more challenging game. In addition to following the basic gameplay mechanics, I introduced multiple difficulty levels and a final boss fight, creating a more interesting endgame experience.
Again, as part of my University Degree, I developed an alternative version of Flappy Bird using JavaScript and the Phaser Library, adding unique progression mechanics and challenges to enhance the classic gameplay. In this version, players navigate through an increasingly challenging environment, where enemies gain speed and vary in position as you progress. Players can collect coins, hearts, and occasional insects to boost their score and health. A high-score tracking system, stored locally, allows players to monitor their progress and provides options to reset or replay after each game.
For this project, Elite Parkour, I used Unreal Engine and primarily visual scripting to create a third-person experience set in an abandoned training facility designed for elite military professionals, with elements inspired by games like Portal. Starting with a Third-Person Template, I integrated several unique systems, including a pick-up and drop interaction, a basic checkpoint system, and a unique feature to allow swapping between first and third-person perspectives.
Attendy is a private attendance tracker developed as a group project to address the university’s increased focus on attendance without a way for students to track it themselves. Created with a team of three other students, the platform enables users to build a local attendance record accessible through any mobile browser. The current version is live, and we’re planning infrastructure improvements, including QR code scanning for streamlined attendance tracking. All data will be stored locally in a JSON file on each student’s device, ensuring privacy and accessibility without relying on external databases.
This entire portfolio was created, styled and developed by myself. The reason I decided to develop this by myself was to showcase my ability to write code but also to manage an ever expanding project whilst being able to showcase other projects that I have worked and continue to work on.