Design

Level Design for Puzzle Games: Building 100 Levels Without Losing Your Mind

A hundred levels is a production problem, not a design problem. Here is the tooling and structure that makes it possible without hand-crafting every one.

Vectra Play 7 min read
A Rubik's cube

Building a hundred puzzle levels works when you build the tools before the levels. That means a level format that is data, a generator or assembler that produces candidates, an automated solver that verifies and rates them, and a curve defined in advance. Hand-crafting every level does not scale past about thirty.

Why this matters

Content volume is what turns a working puzzle mechanic into a shippable game, and it is where most puzzle projects stall.

The stall is predictable. The first twenty levels are enjoyable to make, the next thirty are work, and the last fifty are the reason the game does not ship.

Treating it as a production problem from the start changes the outcome, and the investment is a week or two of tooling.

Designing the generator before the levels

Start by defining what a level is, as data.

A level should be a small file containing the starting state, the objective, and the constraints. Nothing about presentation, and no code.

Once levels are data, three things become possible.

  1. Levels can be produced without a build, so designers work independently of engineering.
  2. Levels can be generated, since anything that writes the file can make one.
  3. Levels can be tested automatically, because a solver can read the file.

That third point is the one that matters most and it is worth designing toward deliberately.

The unit of work is not a level. It is the pipeline that produces and validates levels.

An automated solver is the real unlock

If a program can solve your puzzle, it can also rate it.

A solver gives you, for every candidate level: whether it is solvable at all, the minimum number of moves, how many distinct solutions exist, and how much branching a player faces.

Those four numbers are a difficulty estimate that costs nothing per level.

For most grid and match puzzles, a straightforward search is enough. It does not need to be clever, only correct, and it can run overnight across thousands of candidates.

This is what makes generation practical. Generate broadly, solve everything, discard what is unsolvable or trivial, and keep the candidates that land where you need them on the curve.

Difficulty curves that survive 100 levels

Define the curve before making content, as a shape rather than a list.

Three properties matter.

Express the curve as a target difficulty per level index, then fill it from your rated candidate pool. Filling a defined curve is a very different exercise from making levels and hoping the order works.

The tuning levers themselves behave consistently, as covered in We Rebuilt a Top-Grossing Puzzle Loop in 48 Hours.

Hand-made, generated, and hybrid approaches

ApproachStrengthWeakness
Fully hand-madeHighest quality, intentional momentsDoes not scale past a few dozen
Fully generatedUnlimited volumeFeels samey, and lacks memorable levels
HybridScales, with intent where it mattersRequires the tooling to be built

The hybrid is what most shipped puzzle games use, and it works like this.

Hand-make the levels that carry meaning. The first five, every level that introduces a new element, and a small number of set-piece levels at intervals.

Generate and curate everything else. Produce a large candidate pool, rate it with the solver, and select against the curve.

Pass everything through a human filter. A designer plays a sample rather than all of them, and rejects anything that is technically valid and unpleasant.

Roughly a fifth hand-made and the rest curated is a workable balance for a hundred levels.

Tooling that makes 100 levels possible

Four tools, in the order worth building them.

  1. A level editor, even a rough one. Editing a grid visually is far faster than editing a file, and it is what makes hand-made levels affordable.
  2. The solver, which unlocks rating, validation, and generation.
  3. A batch runner that solves an entire pool and outputs a table of ratings.
  4. A curve filler that selects levels from the pool against the target curve.

Add one more that repays itself repeatedly: a way to load any level instantly on a device, by index, without rebuilding. Testing a level should take seconds.

Keep all of this outside the shipped game. It is production tooling, and it should not carry the constraints of runtime code.

Testing difficulty without playing every level

You cannot play a hundred levels repeatedly every time you tune a value. Three techniques replace it.

Solver metrics as a proxy. Minimum moves and solution count correlate well with perceived difficulty within a single mechanic. Not perfectly, and well enough to sort a pool.

Sampling. Play every tenth level plus every level that introduces something new. That covers the curve without covering the content.

Live data. Once players arrive, attempt counts and completion rates per level are the real answer. Instrument level start, complete, and fail from the beginning, per Game Analytics to Track From Day One.

Expect to retune after launch. A curve built from solver ratings is a good first draft, and players are the actual test.

Keeping variety without adding mechanics

The instinct when levels feel repetitive is to add a mechanic. It is usually the wrong instinct, because each new mechanic multiplies the tuning and testing burden.

Cheaper sources of variety:

A game with four elements and five objective types has a large combination space before anything new is built. Exhaust that before extending the ruleset.

What we would do

Build the solver in the first two weeks, before making more than a handful of levels. Everything downstream depends on it, and teams that skip it end up hand-crafting a hundred levels one at a time.

Define the curve as a target per index and fill it, rather than making levels and ordering them afterwards.

Hand-make the first five and every teaching level, and curate the rest from a rated pool. Then instrument everything and expect to retune once real players arrive.

The short version

Build the solver before your next twenty levels. If you want the tooling built alongside the game, tell us about the mechanic.

Related reading: We Rebuilt a Top-Grossing Puzzle Loop in 48 Hours, The Core Loop Behind Five Games, and In-Game Economy Basics.

#Design#Game Design#Process#Tools
Your turn

Got a game idea? We build it.

You bring the concept. We design, build, test and launch it, and you own 100% of the finished game.

Share Your Game Idea  →