
Overview
2248 Puzzle - Link Numbers is a puzzle game where your mission is to connect balls with matching numbers and extend the chain with bigger numbers.
How long can you make your connections?
Game Programmer · technical owner
I owned this one end to end: the board itself, the five skills that break it open, the hint system, the tutorial, and the versions we shipped against each other to see which one held. I drove the technical direction across every branch the project ran on.
It runs on the web as well as on Android, and that second build path was its own piece of work: addressables for WebGL, Google services, and a set of UI and brick changes that only the browser needed.

My contributions
Core loop
- Built the board from scratch: tile matching, generation, repositioning and refill, with brick pooling and an ordering pass so the grid could be rebuilt on every move without churning objects.
- Implemented the line-drawing connection rules, scaling each segment against its neighbours and the cursor, and the sum-of-numbers merge that spawns the next brick.
- Separated board state and move history from rendering, applying single responsibility so the skills and the hint system could operate on the grid through one surface instead of each carrying its own copy of the rules.
Skill system
- Built five board-altering skills (hammer, rocket, chopper, swap, shuffle) behind one handler, each in its own type. Adding a skill meant adding a class rather than editing the ones already shipped, which is the open/closed principle doing the work it is there for.
- Routed all five through a single interaction layer against board state, so the hard cases lived in one place instead of five: multi-select, skills still firing after a win, a swap resolving onto itself.
- Moved skill values into ScriptableObjects, so balance is authored as data assets rather than compiled constants.
Hints and tutorial
- Built the hint algorithm to stay correct on a board that reorders underneath it, and reworked it as the skill set grew, since every new skill changes what a valid next move looks like.
- Implemented the guiding-hand tutorial against the same board state rather than a scripted copy of it, then profiled it so onboarding cost no frames.
Versions and A/B testing
- Built a version system that selects sequential or gradient level rules per build, which is what made it possible to run a full A/B test of an alternate core loop against the live game.
- Integrated Firebase Remote Config to drive in-game values without shipping a build, with Google Analytics events behind the decisions.
Progression and economy
- Built the progression on chapter data: a ScriptableObject per chapter holding its level goals, target scores and difficulty curve, read by both the board generator and the progression UI so a designer retunes a chapter in one asset and never in code.
- Implemented stars and extra-move bonuses against those same goals, so the reward a player sees and the board they played are guaranteed to come from one source.
- Built the store packages, coin rewards and the rewarded-ad placement behind them.
Build and platform
- Shipped the WebGL build: addressables configured for the platform, Google services, and the UI and brick work the browser needed.
- Android release hygiene: ARM7 and ARM64 targets, incremental GC, engine code stripping, logging removed from release builds.
Gallery
Project details
- Studio
- blu studios
- Genre
- Puzzle
- Engine
- Unity
- Released
- October 2023
- Platforms
- Web, Android
- Stack
- Unity · C# · Web · Mobile · Puzzle · Ownership · Game Systems · A/B Testing




