UYLLII

Blog › Game design

Game design

Minesweeper Rogue: a no-guess minesweeper roguelike where the rules change what numbers mean

By David4 min read
Minesweeper Rogue feature graphic

Minesweeper Rogue started from one question: what would a roguelike version of Minesweeper look like if the "upgrades" were rules that change what the numbers mean?

Each level hides a tunnel under one safe square. Dig it open, step in, and choose one of three rules. Rules stack for the rest of the run. There's a boss every ten levels and a shop every five.

The rules

Some rules make the board harder, and pay for it with a gold multiplier:

Others are boons. Mixed together, knight numbers and fog and liars make a very different puzzle from classic Minesweeper.

Why this game

The search "minesweeper roguelike" showed plain minesweepers in its top ten, plus a 1,500-install and a 58-install roguelite. No real answer to the query. Several indie minesweeper roguelikes were appearing on Steam, but none on Google Play, so the window looked open on mobile, though it could close if one of them ports. It was also the cheapest game on my idea list, because the no-guess Minesweeper engine and solver already existed.

The point of difference from the few rivals: they have relics or a story. Mine has rules that change the logic itself.

The solver is the whole game

The original Minesweeper's promise is "never guess". Keeping that promise with stacking rules meant writing a new solver that understands every rule at once: liar numbers, cross and knight neighbourhoods, fog, twin mines, wraparound, sealed tunnels. When a random layout can't be solved by logic, the generator opens a few "given" squares until it can.

The test suite checks 23 rule mixes at depths 1 to 40: every level solvable, never opens a mine, deterministic, and at most 93 ms to build. Every new rule has to be taught to the solver or the no-guess promise breaks.

One stress case broke it. A hint bot stalled on Knight + Cross + Fog + Liars, because opening squares in a certain order merged undecided groups past the solver's 28-square search limit. Oversized groups are now searched as local clusters. As a safety net there's a free "lucky break" hint: if you're ever left with only a guess, the game gives you a safe square. A stress run of 48 runs and 288 levels needed zero lucky breaks. Real players will tell me how often it fires.

Fuses count moves, not seconds

A fuse that counts seconds would blow up while you took a phone call or watched an ad. So fuses count digs and flags.

Sizing them was harder than expected. The first approach sized each fuse by how many moves the solver needed to defuse it. That works if one fuse burns at a time. With several burning at once, 33 of 72 simulated levels blew a charge. Now only one fuse burns at a time, and the simulation defused 295 charges with none blowing.

Bugs only a phone could find

Three bugs in this game never showed up in desktop tests:

The lesson I took from it: phone UI tests must use the phone's pixel ratio and real touch events, not a desktop mouse.

Progress that takes weeks

There's a camp between runs with lasting upgrades, miners and a relic cabinet. I wanted it to take weeks of regular play to complete, not a session. The camp costs about 278,000 gold in total, against roughly 400 gold from a dive to depth 8 and about 3,000 from depth 12. A test asserts the total stays in range whenever prices change.

Ads: as few as possible

No interstitials. A banner that stays put, and one rewarded second chance per run when you hit a mine. Remove Ads is the only purchase.

It ranks #3 for "minesweeper roguelike". Rated Everyone, and the gambling check in my launch tool stopped and asked rather than guessing, as it should.

Minesweeper Rogue screenshot 1Minesweeper Rogue screenshot 2Minesweeper Rogue screenshot 3
Minesweeper Rogue on Android.