Mark Cooper

Game Developer

Hello

I’m Mark Cooper, a passionate Software Engineer and Gameplay Programmer.

My journey into game development started at 4 a.m. during a service desk night shift. While diving into Warcraft 3 map editor manuals to build custom maps, I realised game development was something I needed to pursue.

Since graduating with a BSc in Software Engineering (Game Programming) from Media Design School in Auckland, I have focused on bridging the gap between complex systems and engaging gameplay. Whether it’s architecting multiplayer networking or building custom engines from the ground up, I thrive on solving technical challenges that make games feel seamless.

Technical Toolkit:

  • Engines: Unity (C#), Unreal Engine 5 (C++), GameMaker.

  • Low-Level: C++, SFML, OpenGL, ImGUI, ReactPhysics3D.

  • Systems: Multiplayer Networking, Physics Logic, AWS Infrastructure.

Below, you’ll find my most recent work—ranging from a turn-based card game to a high-octane shooter. Thanks for stopping by!

Recent Projects

2025

Rogue’s Tide

Rogue’s Tide is a turn-based card combat game, taking inspiration from Fights in Tight Spaces and Slay the Spire. We developed this game as our final year production project at Media Design School. After developing the prototype in Unity, we decided to switch to Unreal to give the artists the tools they wanted. It was a rewarding challenge for us programmers as we had more experience with Unity.

My Contribution

  1. I developed the grid system, card gameplay logic, player controls and movement.

  2. Performance became an issue with the grid, so I had to use spatial hashing to reduce the number of tiles being queried.

  3. Implemented an A* algorithm for players and enemies to ensure they navigated around obstacles intelligently. Used the same algorithm to fix a problem with the generated obstacles blocking the path to the exit.

  4. Developed a modular tutorial system that was praised due to the number of systems our game ended up with.

  5. Despite being behind due to porting the project from Unity to Unreal, we received a team grade of 90%. For my individual contribution, I received a 99% grade from a tough but fair lecturer.

  6. I implemented several dev tools that allowed us to test & debug the game rapidly. It took some pushing to get my team to endorse the time spent developing the tools, but it turned out to be invaluable, especially late in development. The lecturers later suggested that every team have a debug tool for the game showcase.

Tutorial System

Developing a modular, event-driven tutorial system that didn’t interfere with any core systems (there were many) was a challenge. I earned praise from the lecturers who noted that it’s hard to make a good tutorial for this type of game. I had to display tips in sequence, hook into key game events, and prevent the player from taking any action that would disrupt the tutorial flow.

Debug Tools

Developing the card debug tool required some work. I had to pull all cards from the database, filter each card by user (and general cards), and create a page for each character.

When adding a card to a player, I had to modify the C++ code to create a dummy card context object so I could add cards to the deck system (which was designed to select a deck at the start of a run).

Finally, because the UI system had many components, it took some digging to get the cards to appear in the player's hand after granting a card, since this was designed to update at the beginning of each turn.

Gameplay - Cards

I used a strategy pattern to dynamically filter the target tiles based on an array of sequential targeting rules. Cards had different numbers of targeting phases (instant cast, cast on target, cast and then target), and displaying and coding this was a process.

I made over 40 cards in a week during the gold phase. It was a challenge to create different behaviours in such a short time, considering valid targets, self, allies, enemies, both, area, and so on.

Interstellar Defenders

We developed Interstellar Defenders as a rapid prototype at Media Design School. The brief for this assignment was to make a game that uses just two colours. The game is a tower defence with a twist: You need to explore the darkness with light towers to secure minerals and scout ahead.

My Contribution

I had a lot to do on this project, as one of our developers left the team at the beginning, and the other was unfortunately unwell for a large portion of the development. Here are a few of the highlights:

  1. Core gameplay logic, such as player controls (placement of buildings and towers, objective tracking, game loop.

  2. I developed the AI spawning/ wave system, which had a few moving parts, such as opening new lanes at given times, managing bosses, and special spawns. I spent some time testing and playing to get it feeling engaging,

  3. I had my game design hat on for much of this project, designing paths, pitching new towers, building and the mineral/resource system.

AI Spawning System

Getting the AI wave spawning just right. We believed randomness would enhance replayability. I developed a hybrid spawning system that used some guaranteed spawning, and then added some randomness such as random lane selection and different kinds of monsters.

Tower & Building System

Creating the UI tower placement was a challenge. I created a build condition system for different building types (mineral extractor, tower, research centre), each with its own conditions. And verifying the placement rules, getting the error result as an out parameter if any, and dynamically displaying it to the user.

2024

Breakthrough

Breakthrough is a game I’ve been working on during my spare time. It’s a multiplayer, isometric, zombie-apocalypse survival shooter game that I’ve been working on. I have had a few LAN parties with 4 friends, and I was surprised at how few bugs there were at my first attempt at a multiplayer game. They are eager to play again, including the most critical friend. As the game is in alpha, I have not spent much time polishing yet, so keep that in mind when viewing the bare levels.

Designers can easily create new crafting recipes and drag and drop items.

That’s all. More to come….

Perk System

The perk system I developed uses a server-authoritative model, verifying client input and updating player state across all clients.

I created a system with weighted roles that select perks depending on the selected specialisation.

Since the game is fast-paced multiplayer, I’m trying a system where players can accumulate points and spend them later.

Designer-Friendly Approach

I created many of the systems in a designer-friendly way that allows non-coders to develop new weapons, abilities, and items using Unity’s serialised ScriptableObjects.

Network Serialized Addressables

One of the valuable systems that I developed was a custom scriptable object serialisation class. This allows me to pass common objects like perks, weapons, and abilities over the network, which are then deserialised on the client side and fetched from a dynamic addressable pool based on the Unity-assigned GUID of the file. I’ve found this pattern more intuitive and less error-prone than sending raw int IDs over the network and fetching them this way. It makes the function signatures feel more descriptive and intuitive.

2026

2024