Building M6 3D Sudoku: A Case Study in Taking a Classic Puzzle Into 3D

MSIXV ยท 2026-10-02 09:00:00

Building M6 3D Sudoku: A Case Study in Taking a Classic Puzzle Into 3D

Search for "Sudoku" on Google Play and you will find hundreds of apps.

Most of them are good. Most of them are also the same: a 9×9 grid, a few difficulty levels, and an advert after every puzzle.

So when we decided to build a Sudoku game at MSIXV, the question wasn't "Can we build a Sudoku app?"

It was:

What would make someone choose ours?

This is the story of how we answered that question with M6 3D Sudoku, the decisions that shaped it, and what it taught us about building software people actually want to keep using.

The brief

M6 3D Sudoku is our own product, built by our in-house game studio, M6V Games. We set ourselves three goals:

  1. Offer something genuinely new, not another copy of the classic game.
  2. Respect the player's time: honest difficulty, help that actually helps, and nothing that gets in the way of the puzzle.
  3. Respect the player's privacy: no accounts, no tracking, no data leaving the phone.

Every decision in the project came back to one of those three goals.

Challenge 1: Taking Sudoku into three dimensions

The idea at the centre of the game is simple to say and hard to build: put six Sudoku puzzles on the faces of a cube, and let the player spin it in their hand.

A good idea can still fail if it feels awkward to use. A cube on a flat phone screen raises real questions. How do you turn it? How do you pick a face? How do you write numbers on a surface that is tilted away from you?

Getting the controls right took as much work as the puzzles. The final design works like this:

  • Drag anywhere to orbit the cube, or twist with two fingers to spin it.
  • Turn the face you want towards you and tap it (or pinch out), and it opens flat and full-screen, ready to solve.
  • Pinch in while solving, and you're back to the whole cube.
  • Finish a face and the next one is ready to go.

Players can also set a different difficulty for each face, so one cube can mix a gentle warm-up with a seriously hard finish.

The 3D Cube Sudoku mode in M6 3D Sudoku, showing six puzzles on a rotatable cube
Cube Sudoku: six independent puzzles, one on each face.

One engineering decision mattered a lot here. We built the cube as a separate module that sits alongside the classic game, not as a change to it. The classic game kept working exactly as before while the cube was designed, built and tested. New features shouldn't put working features at risk.

Challenge 2: Making difficulty honest

Here's something most players have noticed without putting it into words: in many Sudoku apps, "Hard" doesn't feel hard, and sometimes "Medium" is harder than "Expert".

That happens because many apps grade puzzles by how many numbers are already filled in. But the number of clues says very little about how difficult a puzzle is to solve.

What actually makes a puzzle hard is the thinking it requires.

So we graded every puzzle the way a person would experience it: by the hardest solving technique needed to finish it. Easy puzzles need only the simplest steps. Hard puzzles need techniques such as locked candidates. Expert puzzles go up to X-Wing, and Evil goes beyond.

Grading a puzzle this way takes time, too long to do on a phone while the player waits. So we did the work in advance:

  • We built a bank of 300 pre-graded puzzles for each difficulty level, every one checked to have exactly one solution.
  • The whole bank ships inside the app and takes up about 264 KB.
  • Each time a puzzle is drawn, the game disguises it by relabelling the digits and shuffling rows, columns and bands in ways that keep it valid and keep its difficulty the same.

The result is that "Hard" means hard, every time, and a repeated puzzle doesn't look like one.

Challenge 3: Hints that teach

In most puzzle games, a hint simply fills in a number. That gets you unstuck, but you learn nothing.

We wanted hints to make players better. In M6 3D Sudoku, a hint points to the next logical move and names the technique behind it, such as a Naked Single or a Hidden Single, so players start to recognise the pattern themselves.

We also made the rules fair. You can undo as often as you like, but undoing doesn't give back mistakes or hints you have already used. Otherwise the three-mistake limit wouldn't mean anything.

Have an idea for an app or a game?

Whether it's a consumer app, a game or a tool for your business, we can help you turn it into something people actually use.

Talk to MSIXV about your app →

Challenge 4: Privacy as a feature, not a footnote

Many free games pay for themselves by collecting data and showing adverts. We chose not to.

The Android version of M6 3D Sudoku doesn't even ask for permission to use the internet. That means no adverts, no analytics, no accounts and no tracking. Games, statistics and settings are stored only on the player's own phone. On Google Play, the app's Data safety section reads "No data collected", and the privacy policy says the same in plain language.

This decision had a consequence we didn't expect.

The game's typeface was originally downloaded from the internet when the app started. In development, that worked perfectly. In the real release build, with no internet permission, the download quietly failed and the app fell back to a default font. Nothing crashed. It just looked wrong.

The fix was simple: we packaged the font inside the app. The lesson was more important: test the build your customers will actually install, not just the version on the developer's machine.

Challenge 5: Choosing a slower launch

We submitted the first version to Google Play for review. While it was waiting, our own testing found problems:

  • Undo could refund mistakes and hints, which made the limits easy to get around.
  • A game lost on three mistakes didn't appear in the player's statistics.
  • The game played a click sound on almost every tap, and it was easy to confuse with the error sound.

None of them was a crash. But all of them would have been in the first version real players saw.

So we fixed them, replaced the build that was already in review, and restarted Google's review process. That meant waiting longer to launch.

It was the right call. You only get one first impression.

The statistics screen in M6 3D Sudoku, with win rate, best times and streaks
Statistics now count every game, won or lost.

Under the hood

For readers interested in the technology:

  • One codebase, two platforms. The game is built with Flutter, so the same code runs on Android and in the web browser.
  • A clean, layered structure. Each feature (the classic game, the cube, statistics and settings) keeps its own business logic, storage and screens, which makes changes safer.
  • A puzzle engine with no dependencies. The solver, generator and grader are plain Dart, and the heavy work runs in the background so the screen never freezes.
  • Automated tests. Thirty test files check everything from the solving logic to the screens, including a test that checks every puzzle in the bundled bank for its format, its grade and a single solution.
  • Our own design system. The translucent "Liquid Glass" look is built from Flutter's own drawing tools, with no extra libraries.

The result

M6 3D Sudoku is now live on Google Play in every country, free, rated for everyone aged 3 and up, and with no adverts.

Get it on Google Play

On a computer? You can also play it free in your browser, with no download and no sign-up. Screenshots and the full feature list are on the M6 3D Sudoku game page.

It includes classic Sudoku in five difficulty levels, the 3D cube, a daily challenge with streaks, achievements, detailed statistics, and light and dark themes. Everything works offline.

What this means for your project

You may never need a Sudoku game. But the lessons from this project apply to almost any app or digital product:

  1. Stand out with one clear idea. In a crowded market, one meaningful difference beats a long list of small features.
  2. Decide early what you won't collect. Privacy is far easier to design in than to add later, and customers notice.
  3. Test what customers will actually use. The release build, on a real device, is the only version that counts.
  4. Protect the first impression. A short delay to fix known problems costs less than a launch full of them.
  5. Build new features beside working ones. Growth shouldn't put what already works at risk.

At MSIXV, we design and build mobile and web apps, games and business systems around the people who will use them. M6 3D Sudoku is what that approach looks like when we are our own client.

Try M6 3D Sudoku, then tell us what you'd like to build.

MSIXV: digital solutions built around your business.