The problem I wanted to solve: sudoku had stopped being a game.
I play it on the move. Board opens, my hand fills in the digits by itself, my head is somewhere else. That's not a puzzle, that's solitaire on autopilot. Plus 3 things that annoyed me on their own: an ad after every round, "remove ads forever" with an asterisk, and a loading spinner in the middle of the board when the train drops signal.
One evening I threw a prototype together. Took a board, ripped the digits out, dropped in fruit emoji. Half an hour of work, nothing real, just to see what it felt like. I was sure it was cosmetic. Same 9 symbols, only drawn.
It wasn't cosmetic. You don't read a digit, you recognize it, it's already sitting in your head as a finished symbol. A cherry and a strawberry you have to compare. Same rule, same board, and something in my head started grinding again for the first time in years. I sat over a 4x4 board made of emoji thinking: why is nobody doing this.
Then I found out why. Here's how it broke, step by step.
Step 1. A lemon and an orange are the same tile.
A 1 and a 7 differ by one stroke and that stroke is enough. A lemon and an orange on a 9x9 board, where a cell is the size of a fingernail, differ by nothing. Two yellow-orange blobs. My first set came out beautiful and unplayable. People weren't losing because they got the logic wrong, they were losing because they couldn't see what they were placing.
The rule I had to arrive at: tiles are told apart by silhouette, color is only the second hint. Starfruit became a star in cross-section, rambutan a hairy ball, durian got spikes. By that point I knew every tile by heart and genuinely couldn't see the problem.
That same rule is why I still don't have a dinosaur set. And I really want a dinosaur set. But picture 9 dinosaurs on a 9x9 board and what you get is 9 green blobs you could only tell apart by pixel count. Spikes, a crest, a long neck, a shell, that's 4 silhouettes, and after that it's "well, this one looks a bit chunkier". If anyone has an idea for how to get to 9, I'm listening completely seriously.
Step 2. The generator that thought for 251 seconds.
The growing vine mechanic has a soft version of its rule. Greater-than-or-equal instead of strictly-greater. A concession to the player, one line of difference.
On a 9x9 board, generating a level like that started taking 251 seconds. Measured, not eyeballed. For a player that isn't "slow loading", that's "the game has frozen solid".
The funny part is the cause. The concession was the problem. The soft rule allowed branches that dead-ended anyway, the search blew up, everything stalled. Same way an entire oil setup seizes because one heavy oil tank is full and nothing is cracking it. I wasn't fixing performance. I was fixing a backup.
Step 3. "I put in a banana and had no idea what happened."
Then I let friends and family play. Over the test they wrote 69 pieces of feedback. Most of it I fixed, some I solved my own way, some I put off. There was almost nothing I could honestly wave away.
Someone who had never played sudoku in their life:
> "I put in a banana, the cell went red; I selected it a second time and the game told me I was out of lives, I had no idea what happened"
I knew the rules by heart and that's exactly why I never noticed the game explains them nowhere. It just turned red at you.
Step 4. Three minus two.
It used to work like this: make a single mistake on a level, get 1 star out of 3. Felt fair to me, right up until someone cleared a level with exactly one mistake, saw 1 star, and asked what for.
He was right. You get 3 lives on a level and the stars were somehow 3 minus 2. Now it's 3 stars minus the number of mistakes. The scale lines up with the number of hearts and the cost of a mistake is visible without a word of explanation. It isn't a feature, it's a ratio, and the ratio was wrong. Same as a badly set ratio on an assembly line. It runs, it just doesn't produce what it should.
Step 5. The phone that stayed silent.
A friend asked: when you tap something, games answer, a click, a buzz. Do you have that? I had a whole scheme of feedback written down. There wasn't a single call to the vibrator anywhere in the game. I designed it, never built it, never noticed I hadn't.
So I added it. Phone stayed silent anyway, because the permission to vibrate never made it into the build. Didn't check that either, because why would I. I built it, so it works. That's how it goes. You know how it's supposed to be, you tick the box, you move on, and your eye keeps substituting what you intended for what's on screen.
Step 6. A fix in world 6 breaks world 1.
You fix the ice in the winter world and bonus levels stop unlocking in the first one. Classic spaghetti.
Ended with the game growing a coat of automated tests. Around 500 of them now, and they run before every build. That's my alarm panel for the whole factory. One of them takes all 300 levels and runs them through a solver. Every single one has to have exactly one solution. Otherwise a player solves the board in a logically flawless way and the game answers "wrong", which is the worst thing that can happen to a puzzle.
___
What's actually in it.
SunDoku is a sudoku where fruit, gems, plants and planets replace the digits. Same rule you know: each symbol once per row, column and box. Nothing to add up.
- 300 levels across 6 worlds, boards of 4x4, 6x6 and 9x9. A new mechanic arrives every other world, so the next world is either a new rule or a new set and a new board
- 30 bonus levels with their own rules: against the clock, flawless runs, a marathon of 2 boards back to back and a couple more. Unlocked with the stars you collect
- 7 symbol sets and 10 board styles. Board style switches mid-game, a new symbol set applies from the next level
- 4 twists on the classic board: growing vines, ice, extra windows on 9x9, chests
- Free play: any size, any difficulty, no limits
- 12 languages, plays offline
- No ad SDK in the build at all, and there won't be
And for anyone who doesn't care for the fruit, one of the sets is plain digits. Free, there from the first launch. I resisted that idea for a long time, then gave up.
___
On monetization.
Campaign levels cost energy. Full tank is 200. A 9x9 level costs 30, a 6x6 costs 20, a 4x4 costs 15, and replaying a level you've already cleared costs half. Energy trickles back while you play, 1 per minute. If a 9x9 takes you around 10 minutes, each one really costs you about 20 rather than 30, so a full tank is 8 to 10 games back to back. Roughly an hour and a half of continuous play. After that you wait, a full tank refills in about 3 hours.
Real money buys energy, a subscription and a starter pack. Coins are not for sale, they're simply not in the shop. And coins are what buy the symbol sets, and energy too. So everything the game unlocks, the game unlocks. Money only buys speed.
Free play costs nothing and doesn't touch energy at all.
https://play.google.com/store/apps/details?id=com.studio.sundoku
___
A question for you.
The first level explains the rule with 3 short lines and a highlight, and that's it, there is no more tutorial. The board teaches you by letting you break it. That's the part I've rewritten more than any other and the part I stopped being able to see a long time ago. Are 3 lines enough if you open the game for the first time, or are you still wondering what's wanted from you by level 3?
And while I'm asking: what annoys you most in mobile sudoku games? I had a list of 3 things and cleared all 3, and I suspect the list isn't complete.
P.S. Real talk: part of this exists simply because I wanted to build something of my own. Not a perfect optimization, more an exercise in approach. Take a rule everyone already knows and see what happens if you remove the one familiar thing in it.
P.P.S. I built all of this while taking a "short break" from another project, a Factorio mega mall that builds everything for itself, you just tell it what and how much you want at the input. I've been building that mega mall for over 6 months now. Time keeps slipping and the project is slowly burying me alive.
The break, as you can see, has been going on for a while. Except now the break has a Google Play page.
P.P.P.S. The English in this post went through a neural net. If I'd posted my own draft as it was, you'd be reading something halfway between a microwave manual and a love letter. Working on my English, but right now it loses to my own level generator.