Inspiration
What if there was a little kingdom underneath Minesweeper?
That was the starting point. Keep the grey window, the beveled tiles, the LCD counters. Then let workers walk out onto the board. Uncover some land. Build a farm. Realize the numbers are telling you where a dragon is sleeping.
I wanted that moment where something you recognize turns into something you weren’t expecting. A strategy game hiding inside a puzzle you already know.
The Windows 95 interface became part of the whole idea. Tiny fantasy buildings inside a very serious grey application window. There’s something about that combination I really like.
What it does
Keepsweeper combines Minesweeper-style deduction with a small real-time fantasy kingdom.
You place your Keep and send workers to uncover tiles. Number clues help you locate treasure and threats. Exploring gives you resources and room to build, but it also means deciding when you’re ready to wake whatever is next door.
Your kingdom grows through placement and combinations. A Windmill speeds up nearby Farms. A Blacksmith turns Barracks recruits into Macemen. A Chapel keeps nearby soldiers alive. You arrange the pieces and watch the little world respond.
There are four quest paths with twenty levels each: Dragon Hunt, Royal Treasury, Reclaim the Realm and Rival Kingdoms. Wilds offers randomized expeditions, while Siege turns the game into endless tower defense. Royal Seals earned through play unlock more options for future runs.
Treasure can take a sensible kingdom in a less sensible direction. Floating settlements. Towers firing concentrated sunlight. An army of grandmas.
There’s also online multiplayer for two to four players, including teams and Co-op Siege, plus a Map Editor for building and sharing scenarios.
On iOS, the first two levels of every quest path are free, with unlimited randomized replays. One purchase through RevenueCat unlocks the full game. No subscriptions, ads or currency packs.
Shareware felt appropriate.
How we built it
I built Keepsweeper in TypeScript with Vite, Canvas 2D and Web Audio. No game engine. The browser, iPhone and iPad versions share the same game code, with Capacitor handling the mobile wrapper.
The simulation owns the rules, so tapping a button, using a keyboard shortcut or playing online all follow the same checks. Multiplayer runs on Cloudflare Workers with an authoritative WebSocket server.
A lot of the work went into making everything belong together. I built a reusable pixel-art pipeline and skills to keep portraits, buildings and animations consistent. Each asset has a native pixel grid. The music is synthesized in Web Audio, with quiet fantasy motifs that respond to what’s happening in the revealed world.
RevenueCat’s Capacitor SDK handles the iOS full-game entitlement, and RevenueCat Paywalls handles the purchase screen. I wanted the business model and the presentation to fit the game: try it, buy it once if you like it, keep playing.
Even the paywall got the retro treatment. Grey bevels and an animated gold wordmark made with the game’s pixel-art pipeline. Probably more attention than a purchase screen strictly needs.
Challenges we ran into
The biggest challenge was keeping the original idea visible as the game grew.
Deduction needs time to look and think. A real-time kingdom keeps doing things while you’re thinking. Add workers, soldiers, production, dragons and a few treasure effects, and it becomes surprisingly easy to lose track of what matters.
A lot of ideas were tried and removed. Some added too much noise. Some needed too much explanation. The combinations that stayed usually had a simple action and a visible result. Put these buildings together. Watch something useful happen.
The interface was another ongoing puzzle. Windows 95 was designed for a mouse and a monitor. Keepsweeper also needs to work under a thumb on a phone. Keeping the square buttons, little windows and dense information while making everything readable and usable took a lot of iteration.
Nostalgia does not make a tiny button easier to tap.
Accomplishments that we're proud of
I’m proud that the original surprise survived all the extra systems. It still starts with a grey grid. Then a worker crosses it, a building goes up, and a little kingdom begins to happen.
I'm proud that I was able to build this with ideas from my kids. I work as a game designer on much larger projects and this little game has been a fun play zone of whacky ideas. My 7 year old daughter loves foxes and so there's a pretty serious fox build in this game if you get lucky.
The building combinations are a particular favorite. There’s something satisfying about getting more depth from where you put a building, without adding another command to manage. Imagine working on something for years and then something like this comes together in a few weeks. It's been a blast.
I’m also proud of how much made it into this first version. Campaigns, multiplayer, Siege, Research and a community map editor. There’s plenty left to tune, but it already gives people several different ways to enjoy the same little world.
What we learned
Write down why something was removed. Especially when working with coding agents. Otherwise a rejected idea can return a few days later as a very enthusiastic suggestion.
Simple rules can produce a lot of depth when they interact. Some of the best additions were buildings or treasures that changed the value of things already on the board.
Let players become a little overpowered. Finding a combination that gets out of hand is part of the fun. I’d rather give players room to discover those moments than sand every interaction down to a small bonus.
Also, having twenty levels implemented is different from having twenty levels properly balanced. That part needs people playing.
What's next for Keepsweeper
The immediate work is watching people play. Reading feedback, trying community maps and finding the places where the game makes sense to me because I’ve been staring at it for too long.
The later difficulty tiers still need tuning. Cross-device saves, more quest types and more Research branches are on the list too. I also got the game working on Steam Deck so who knows. Maybe we can release this on PC and consoles.
Built With
- aseprite
- capacitor
- cloudflare-workers
- html5
- ios
- playwright
- posthog
- revenuecat
- typescript
- vite
- vitest
- web-audio
- websockets
Log in or sign up for Devpost to join the conversation.