Personal Project · Case Study

Can I build a different, more exciting experience around a typical match-3 game?

The Match-3 genre usually features a slower paced gameplay. I set out to craft a more exciting experience around a typical match-3 experience.

Systems Design Economy Design Design Tooling Solo Development
DEEP VEIN — AN EXPERIMENTAL IDEA [PROTOTYPE build available on request]
RoleSole contributor
PlatformBrowser
Timeline2 weeks
ScalePrototype

Project's Design Goals

- Build a match-3 game that is not just a re-skin of existing match-3 games.
- Find a strong core gameplay loop using match-3 as the core mechanic.
- Show judgement in combining game mechanics, progression and pacing.

Overview

Deep Vein started as a match-3 roguelike prototype and has since grown into a short, playable match-3 roguelike experience. It has a mining theme set in an age-of-exploration aesthetic: the player is sponsored by the Gemmological Society to discover the hidden world of gems and minerals by digging through unexplored dungeons.

Features of the game
  • Classic Match-3 Board Rules: Keeping a familiar core experience.
  • Hidden Dungeon Layout: Evoke Curiosity: there's more than one place, what can I find next?
  • Time Limit and Extraction: Create Tension: how can I maximise my score each run?
  • Skill Tree, Collection and Saved Progress: Replayability: A reason to start another run.
Gameplay Loop

1. Starts a run.
- Begin in a hidden dungeon layout with a countdown timer for your air supply.
2. Match gems 
- Collected gems becomes accumulated currency (Carats).
3. Uncover new rooms as you match gems 
-
Matching gems along a chamber's edge breaches the wall. If the hidden layout has a room there, it reveals and a connector tube lets you travel to it. If not, the wall stays a wall.
4. Extract collected gems
- Explore deeper or go back to surface to extract haul (Earned Carats).
5. Spend currency on perks (skill tree)
- Upgrade perks to aid your next run
6. Next Run
- Return to a new run to collect more gems 

1Start a run
→
2Match gems
→
3Uncover new rooms
→
4Go deeper, or extract?
→
5Spend on skill tree
→
6Next run
↺ Go deeper: back to step 2 ↺ Next run: back to step 1
What this is, and what it is not

This is an experimental prototype. All presentations are work in progress.
Drop me an email if you want to try a demo.

01
MAP Structure - dungeon design PROCESS

Match-3 Boards in a Dungeon Layout

Design Goal:
- Keep the classic match-3 experience.
- Replace the linear level structure with a replayable roguelike run.
- Keep it fast paced. 

The Problem:
- Classic match-3 games uses a large board, such as 8x8 / 9 x9, which plays like a puzzle. The player scores until they run out of moves or time, then moves on to the next level.
- Existing match-3 roguelikes often redesign the core gameplay until matching is just a flavour.

Decision 1: One board = one chamber

I Borrowed the dungeon structure from traditional roguelikes.
- I chose 6×7 board to keep matching and discovery pace fast because each chamber is one room, not a whole session.

Decision 2: Procedural dungeon = multiple connected chambers
Each run should feel like a new map with something to discover.
- Each run generates a hidden, connected layout of 10 to 14 chambers. It gives the player something to explore but not dragging the run.


Chamber size6 columns × 7 rows
Dungeon SIZE10–14 chambers, structurally hidden layout
Discovery- Hidden layout
- Rare jewels found only in deeper levels
TravelA 3-combination match reveals new hidden chambers to traverse to.

Building the design intent behind the dungeon experience

My intention is for players to feel motivated to explore the unknown on each run. Each run should feel like a new map and have new discoveries to make. So, each run generates a different, hidden, connected layout made up of multiple chambers.

How can I then motivate the player to explore, make meaningful decisions to match combinations strategically and traverse the map to uncover the hidden layout?

Should the layout be known or hidden?

MAP (v1): The whole dungeon is shown as a mini map from the start.
Exploration became a checklist:
- match toward the known edge,
- unlock a chamber,
- move on.

MAP (v2): Kept the layout unknown but not hidden.
Now, the player no longer knows if the next breach opens a room or a dead end, which makes going one chamber deeper a decision instead of a checklist item.

How would player traverse between boards?

NAVIGATION: I ended up with this decision:
-  Matching 3 or more gems along a chamber's edge unlocks access to the neighbouring chamber.

While this is a new piece of game language the player has to learn, the intent was to tie navigation to the core mechanic. The player never leaves the match-3 experience as they explore. Choosing which edge to match toward is the player's exploration decision to make.

Should the explored map stay legible while it is HIDDEN AND UNKNOWN?

EXPLORING: I decided to keep explored areas legible. The point was for the player to make meaningful decisions. The map should be a tool to aid the player to act on what they have explored and to align where they are in the dungeon.

A mode that hides the map could be added later as a challenge mode, but the base game will not include it.

1Match 3+ gems along a chamber wall edge
→
2The wall breaches
→
3Room behind it in the hidden layout?
→
YesNew chamber revealed, connected travel is available
NoThe wall stays a wall
02
TENSION, pacing, REWARDS 

Building the Risk & Reward Framework

The Problem:
With no risk or cost to exploring, the dungeon layout is just a bigger board.
How could I make exploring the dungeon more exciting?

Decision:
I needed to create a risk and reward system within the run.

1) Constraint: Control the pacing
I needed to add time as the core constraint. But time alone only makes a player rush.

2) Risk: Create inherent risk
I needed a way to push the player to take extra risks, moving towards the unknown instead of matching safely in one chamber.

3) Reward: Breadcrumbs for air and multipliers
I needed to entice the player with the promise of the big reward on taking the risk.

TIMEControls the pacing of the game
ExtractionThe player must return to the surface to end the run
Late penaltyAccumulated loot starts deducting once the timer hits 0s
PayoutRewards the player according to the risk taken

Making each run into a push-your-luck loop

An exciting game needs high tension.
How could I make players actively choose, creating tension by balancing greed against caution?
They decide whether to bank what they have earned or risk it for more.

HOW to get the player to explore deeper?

Going deeper is risky, so rewards are needed to sweeten the deal.
I made every extra step both more rewarding and more dangerous.

Every time a chamber is found, it adds a little air, enough to justify one more push. These small refills act as breadcrumbs to lure the player to take the risk to explore more.

I also added a multiplier for matching combinations in deeper chambers. Every step deeper makes each combination reward higher.

Finally, a depth multiplier would be applied on everything already collected at the end of each run that would drastically boost the rewards earned in that run.

Why is Extraction a requirement?

Getting the haul out of a run is a required action.
I wanted the player to feel the tension as they push deeper, raising their risk with every extra step, while weighing they can make it back to the surface in time.

This push-your-luck loop means every successful run ends with a strong sense of satisfaction that brings the player back for another.

Why Penalty instead of failure?

If failing a run meant losing every reward, the loss aversion effect could make the game feel too punishing overall. Instead, the player bleeds rewards for every second past zero until they extract.

The intention is to soften loss aversion while keeping the tension high and pushing the player to extract as soon as possible.

03
PROGRESSION & REPLAYABILITY

Perks: A Reason for the Next Run

The Problem:
Each run now has exploration, tension and a payout.
What would bring the player back for another run?

Decision:
Players needed an objective that unlocks more content, and a way to spend the carats they earned after each run. I needed a progression system, so I built a perk tree.

I want players to achieve mastery and full completion in their runs, uncovering all chambers to be discovered and discovering all gems to be discovered.

So, I focused on what gives value to the player.
Perks make a run easier to survive, longer to explore and better equipped to perform better in a new run.

CurrencyCarats banked after each run
Branches7 branches as of current
Gatinglock requirement
- carats cost
- achievement
PurposeA reason to start another run

What each perk does?

Each perk act as a meta progression for the player to find ways to perform better in the next run.

01

Air

This perk adds bonus starting air. Useful for lasting longer in each run.

02

Start Deeper

Begin on deeper chambers above already charted.

03

Same-Colour

makes same colour jewels more likely to spawn, leading to easier chain combos.

04

Bomb

Spawn a volatile tile that clears the surrounding radius. Branches out with trigger odds and extended radius.

05

Drill

Spawn a volatile tile that clears tiles in a downward vertical direction. Branches out with trigger odds and extended vertical distance.

06

Rare Finds and Rarity Survey

Makes rare jewels more likely to appear. Locked, with no effect yet.

Determining requirements to unlock a perk?

Perk cost

Carats decide how fast a player can buy. Prices per perk starts easy from 15,000 to 160,000 to pace out the purchases and how fast they can progress.

pre-requisites

Additionally, I needed ways to stop a lucky run skipping ahead too much and buying out every perk upgrade there is to offer.
 
An example for a perk like [Air III] that not only costs 70,000 carats,
it has a pre-requisite for player to have at least achieved a depth of level 5.

This helps to manage the minimum objective a player needs to make that are not necessarily achievable in a single run all the time.

Air III Perk

How far can perks improve the run?

With the values determined by how long I intend a session to last, I needed to determine first if the perks affect the run at all, or that it would give the player too much boost.
Either would mean the perk system has failed.

So, I wanted to measure how much difference would perks bring, and to measure how would an average life-run turn out.

1) The game starts at 60s/run. one with no perks, and one with every perk maxed.
Simulated at 1000 runs each.

2) The other is a simulated progression of buying perks between runs, starting from the cheapest first, until the perks are full purchased.

Bar chart of banked carats per run at a 60 second start. No perks banks 29,282 in a 115 second run. Every perk maxed banks 92,935 in a 141 second run, 3.2 times as much.025k50k75k100kBANKED CARATS PER RUN29,282115s runNo perks92,935141s runEvery perk maxed×3.2 with every perk
median banked carats per run at a 60s start.
Line chart of average banked carats per run across a simulated career at a 60 second start. It rises from 35,721 in runs 1-5 to 87,919 in runs 21-25, between 29,282 with no perks and 92,935 with every perk.025k50k75k100k1-56-1011-1516-2021-25Runs played in the careerAVERAGE BANKED CARATS PER RUNNo perks 29,282Every perk 92,93535.7k44.8k54.2k71.7k87.9k
median banked carats per run across a simulated liferun of 30 simulated players

The charts are simplified as it shows the median performance of run(s)

Average Run:

- With no perks an average run banks about 29,300 carats and lasts 115s on average.
- With max perks an average run banks about 92,900 and lasts 141s on average.
- 3.2x improvement for earned carats and 1.23x time increase per run.

Average Progression:
The line curve of accumulated runs is also seen to progress up steady, which is what I want.
This makes every few runs the player can feel the game opening up and takes about 25 runs to unlock all perks currently.

What's next

I could be looking at measuring every perk individual performance to test for under/over performers.

That would lead me to determine my next steps of which perk values and pricing need rebalancing to make sure that each individual perks are equally beneficial but choosing the combinations would be the interesting decisions to make to improve performance.

04
ECONOMY DESIGN

Balancing the Economy

Having currency and upgrades means there is an economy to balance. It affects every decision made and requires a lot of iteration. As it is a huge topic to cover so I am going to just describe the broad aspect of my process.

Approach:
- Intent first: Translated design goals into testable questions
- Isolate, then integrate: Balanced each system on its own, then simulated the combined economy to catch interactions that only appear together.
- Exploit-proofing: Ran simulations targeting extreme builds and formula edge cases to make sure no run could be broken by an overlooked combination.

Simulating a run:
With many random variables at play, it is obvious luck would be wide.
But the variable I can control is speed and I can measure the spread.
Hence, the simulation plays runs on a few simple rules:
- How long the player think/move
- Takes the first match it finds, no strategy
- Turns back to level 1 for extraction when air left 6s by default

Main factors that affect the whole balance:
- Time
- Payout values
- Perk progression

Below, I share my 3 tests process and findings:
1) The starting air timing
2) payout formula
3) which perks earn their price

Test 1: The starting air time

Air is the core constraint, so the starting number sets how hard the first runs could feel.

Design intent:
Use a start time short enough so the player can feel a risk at the back of their mind.

The question:
Would the time be too long when perks and unlocked chamber's bonus air come into play.
Does a short first run affect progression? (Comparing 60s start time vs 30s start time)

Line chart of average run length across a simulated career. At a 60 second start runs begin at 131 seconds and reach 169. At a simulated 30 second start runs begin at 86 seconds and climb to 152, meeting the 60 second line by runs 21-25.50s100s150s200s1-56-1011-1516-2021-25Runs played in the career (perks bought between runs)AVERAGE RUN LENGTH131s151s157s169s155s86s107s127s138s152sToday: 60s startSimulated: 30s
Average run length across a simulated career of 30 players. Blocks of five runs where every career is still playing.

Early Game
For starting at 30s, a no-perk run last 86s vs 131s when starting at 60s
Endgame
The two lines seem to converge by 21 to 25 runs both sit near 155 seconds

The findings show a stable shrink in the gap based off the two different starting baselines.
This means the starting base time can be set at any amount and does not affect the perk system.

Buying the whole tree takes about 27 runs at a 60s start and about 32 at 30s, and both come to about 81 minutes of play.

Test 2: The extracting carats formula

When coming up with a reward formula for successfully extracting the carats in the run, I initially wanted to reward a player for managing their time well who makes it home with air to spare.

In the initial design for the payout reward formula, a parameter of time left was used to calculate:
total earned carats = carats × (1 + time left × depth level uncovered × rate)

But I noticed a possible exploit that players can still get a similar reward rate even if the player played safely.

My hypothesis:
I suspected that a player could play very safe and extract early, or play risky and extract at the last moment, and get a very close payout reward and that the "time left" was causing the issue.
So, I decided to remove "time left" for the new formula to make the comparison.

Bar chart of banked carats per run under the old formula, no perks, 60 second start. A risky player who turns back with 1 to 3 seconds in hand banks 25,320. A safe player who turns back with 20 seconds in hand banks 24,803, 2% less.010k20k30kOLD FORMULA25,320Riskyturns back with 1-3s left24,803Safeturns back with 20s leftSafe −2% vs risky
Old formula: a safe player banks about the same as a risky one.
Bar chart of banked carats per run under the new formula, no perks, 60 second start. A risky player who turns back with 1 to 3 seconds in hand banks 30,122. A safe player who turns back with 20 seconds in hand banks 24,255, 19% less.010k20k30kNEW FORMULA30,122Riskyturns back with 1-3s left24,255Safeturns back with 20s leftSafe −19% vs risky
New formula: playing safe now is about 20% more disadvantage in comparison

- Old formula: safe and risky playstyles were almost the same, at a 2% difference so the exploit is real.
- New formula: playing safe does not pay well and working as intended.

Line chart of banked carats per run against the air a simulated player keeps in hand, at a 60 second start. The old formula stays between 19,667 and 25,703. The new formula falls from 29,282 at 6 seconds to 16,098 at 40 seconds.010k20k30k0s6s20s40sAir the simulated player keeps in hand before turning backBANKED CARATS PER RUN23,78228,34425,70329,28224,80324,25519,66716,098Old: air in the multiplierNew: depth only
Average banked carats per run against Playing risky and extracting at 0-6s and extracting safe at 20-40s

- The old formula (Grey line) makes the curve flatter. It didn't matter too much if the player was playing safe or risky.
- The new formula (Gold line) shows that the safer you play, the worse your score would be. 

Hence, the new formula has reflected the intended design intention for rewarding more when a player takes more risk.

Test 3: Measuring best/worst performing perks 

The question:
All perks are not made equal. Some may be better than the other. I needed to check how the perks fare in a simulation test. That would better inform me whether to change a perk's effect or its price.

How the simulation runs were tested:
- The simulation tests the run with only one perk bought.
   - If the perk needs earlier steps to unlock, those were bought too.
- Compared the carats banked against a run with no perks.
- Divided that gain by the perk's cost, so cheap and expensive perks can be compared fairly.
- Simulated 1,000 runs per perk, at a 60s start.

What is "luck" here?
As there is a high random variability in the game, a no-perk run can bank anywhere from 8,000 to 52,000 carats.
Averaging 1,000 runs smooths that out, but the average still moves by about 2% between tests.
So, a perk that gains less than 4% might only be caused by the variability and not absolute.

Ranked bar chart of gain per 100,000 carats spent for each of 26 perks bought on its own, no perks, 60 second start, each with a line for its 95 percent range. The best is Air I at 115. 12 perks have a range that reaches zero, so their gain could be luck rather than real.GAIN PER 100,000 CARATS SPENTClear gainCould be luckrange0255075100125Air I115 · +17% for 15kAir II70 · +35% for 50kDeeper I50 · +15% for 30kAir III42 · +51% for 120kFocus I36 · +5% for 15kDeeper II27 · +24% for 90kFocus II27 · +13% for 50kAir IV26 · +63% for 240kFocus III18 · +21% for 115kFocus IV17 · +36% for 215kDeeper III16 · +30% for 190kDeeper IV9 · +30% for 350kBomb Power III3 · +6% for 210kDrill Reach III3 · +9% for 265kDrill Reach II2 · +3% for 145kBomb Power II1 · +1% for 110kBomb Odds III0 · +0% for 170kBomb Power I0 · +0% for 50kDrill Reach I0 · +0% for 70kDrill Odds II-1 · −1% for 130kDrill Odds III-1 · −2% for 240kBomb Odds II-2 · −2% for 90kDrill Odds I-2 · −1% for 65kBomb Odds I-5 · −2% for 45kDrill I-5 · −2% for 30kBomb I-10 · −2% for 20k
Graph of no-perk run, per 100,000 carats spent, each perk individualy bought and tested alone in a run. Grey bars starts when value is less than 4%.
The line on each bar is the range the true gain most likely falls in (95%). If it reaches zero.

Best value:
- Air I give +17% for 15,000 carats, the best return of any perk.
- Air II and Deeper I as well.
The first upgrade of a branch is always the best value gain.

Later upgrades give lesser beneficial gain:
- Air, Deeper, and Focus perks upgrades underperform as compared to its earlier tiers.

Bomb and Drill performed poorly:
- 12 of the 14 perks in those two branches gain less than 4%, and several sit slightly below zero.
- Only Bomb Power III (5x5) and Drill Reach III (down 7) clear it, at +6% and +9%.

Things to keep in mind:
- The simulated player only scans for a swap match. It does not look for or perform strategies.
- Each perk was tested alone. Bomb and Drill might work better when bought together.
- While spawning Bombs and Drills are still random, it is still a highly player dependent, a real player might be better in strategies to get bombs and drills to perform much better.

While not absolute, I have a better understanding of where each individual perk stands in game now.
I would adjust the values of the perk before adjusting the cost.

Takeaways

Where it is now, and what's still open

The prototype was built as a challenge for me to test a question in mind and have helped me explore the experience I was building towards. It has achieved its intention as a functional prototype demo. 

The open question
How well would it be received among players?

What's next?
To take it beyond a functional prototype,
- visuals and UI polish,
- new content for maps, jewels and skill trees,
- overall progression balancing,
- playtest feedback.

01

UI Update: 

The current prototype version focuses on game functionality.
To bring it to the next level of polish, the UI will need an update.

The current UI was only made to be functional enough to test ideas and not necessarily best fit to the whole game experience.

02

New Content:

- New Maps
Adding new maps to explore new ways to define layouts and difficulties. Adding new modifiers that is unique to the map to provide new challenges.

- New Jewel types
Jewels are supposed to be expanded to an encyclopedia for the world's jewels discovered.

03

Balancing progression:

- Balancing values that affect Time. Ultimately affects the overall progression of the game.
- Balancing Perks through unlocking requirements, adjusting cost and value upgrade per tier
- Polishing the second-to-second pacing and run-to-run grinding for progression.

04

Playtest:

There are limitations to simulators.
To know how good the game is working as intended would need actual players testing.