Matchmaker is a 2D top-down mobile puzzle game with a twist on the match genre: players match all animals of the same type while keeping different animals apart. Each animal moves along its own pattern — when two of the same color collide they make a match, but two different colors bounce off in opposite directions, so every board is a small, dynamic timing puzzle.
The concept started as a school project by our team lead; after graduating from Full Sail, a group of us — all international students who wanted to keep making games — brought on two artists and a musician and rebuilt it for release. We went from prototype to a fully mechanical build within the first month, then spent the following months on playtesting, balancing, art direction, and theme, and shipped to the App Store and Google Play.
I was the lead (and primary) programmer. Because we were targeting mobile, most systems had to be rebuilt from the original prototype, which meant learning the ins and outs of mobile performance and resource management early. In the first couple of months I built the core loop and supporting systems: character movement, scene transitions, save data, stars & rewards, level selection, and the player tutorial.
Keeping the codebase organized mattered — I was the only engineer, but the designers and artists needed to understand where and how to plug content in. So I leaned heavily into building tools and data-driven systems that let non-engineers extend the game safely.
The two pieces I'm proudest of are in the carousel above. The first is a drag-and-drop waypoint tool: designers place and shape movement paths directly in the Unity editor, and the characters auto-configure and follow those waypoints at runtime — no code changes needed to author a new level's motion. The second is a data-driven level-selection menu that scales automatically as levels are added, so the menu never needed hand-editing as content grew.
I also built the tutorial as a sequence of scripted, event-driven beats, which taught me a lot about introducing mechanics gradually and gave the team a reusable way to surface guidance exactly when a new mechanic appears.
Source and full assets live in a private repository being brought up to current coding standards.