Method
You Can’t Design What You Can’t Solve
Designing a level is easy to grade only if you can play it, and this game was brutally hard to solve — enough that no off-the-shelf solver came close. So we built one: a second agent that played the game in a loop and reported what it found back to Codex, our coding harness, which rewrote the simulator between runs. The solver had to exist before the designer could be judged at all.
A colorful board is not necessarily a level. A solvable board is not necessarily fun. And a level that looks good and solves cleanly can still be wrong for its position in a campaign.
That was the central discovery. Early generators treated the grid as the product. The real product was a sequence of player decisions wrapped in recognizable pixel art, placed at a precise point in a progression curve, with enough pressure to make relief meaningful.
How we decomposed a level
What the player sees
Subject, silhouette, composition, density, color topology, background treatment, walls, borders, and the visible identity of mechanics.
What the player decides
Shooter order, blocker priorities, conveyor capacity, waiting-slot risk, relaunch timing, hidden information, and mechanic interactions.
Why it belongs here
Difficulty band, ten-level rhythm, mechanic first appearances, recent composition families, and change from the preceding level.
Why tension matters
The level must be solvable without a booster, yet may create a near-pass moment where an extra slot, queue reorder, or color clear feels valuable.
Fun became a set of testable hypotheses
“Fun” was too broad to optimize directly, but it could be deconstructed. The metrics below were not declared to be fun. They were treated as proxies to be falsified by replay and visual review.
Five design hypotheses
- 1Readability — the frame and the four-fold symmetry: the subject and the live obstacles resolve before a single launch.
- 2Choice — the west pipe has a mirror twin to the east. Neither route is forced, and they are not equivalent once the tray fills.
- 3Tension — five waiting slots, two already committed. The third is the launch you take only to expose the shooter behind it.
- 4Payoff — the key sits dead centre, walled in by all four pipes. Nothing about it is reachable until one pipe drains.
- 5Novelty — the pixel pipe is this level’s mechanic thesis, and it is repeated four times rather than explained once.
The funnel was pressure → relief, never forced purchase
Every shipped level should remain solvable without a booster. The useful commercial signal was therefore not “does this force a booster?” It was “does this create a difficult, recoverable state where a booster would be legible as relief?”
Teach → Practice → Pressure → Near pass → Relief
Then we built the baseline around the product
The first baseline measured only board geometry and color. Customer review exposed the missing gunner system. A second baseline added queues, conveyor behavior, waiting slots, blockers, relaunches, and power-up affordances. A third added campaign position and human semantic review.
Three baselines: board, gameplay, campaign
Does it look intentional?
- Occupancy and negative space
- Palette richness and color boundaries
- Region size and one-cell noise
- Shape and subject recognizability
Does it create decisions?
- Queue and conveyor pressure
- Waiting-slot occupancy
- Available actions and relaunches
- Blockers and power-up relief
Does it belong at level 151?
- Mechanic chronology
- Ten-level difficulty rhythm
- Fit to levels 131–150
- Delta from level 150
- Human semantic acceptance
Progression was a wave, not a straight ramp
The audit confirmed a ten-level cadence. Difficulty rose from an all-easy opening batch into recurring mixes of easy, medium, hard, and very hard levels. It also introduced mechanics additively: surprise shooters at level 8, connected shooters at 14, large cubes at 30, keys at 40, pixel pipes at 70, walls at 120, and egg boxes at 140.
Level 151 was the first position in a new ten-level batch. In 13 of the previous 15 batches, that position was Easy. The agent therefore needed a visually rich continuation, but not a sudden difficulty spike.
Measured difficulty rhythm across the first 150 levels
The simulator became a truth layer
Before any of that could work, something had to be able to play the game. This one resists it: connected groups, waiting slots, conditional revival and lock ordering interact in ways that make a naive search useless within a few moves, and nothing off-the-shelf came close. A designer that cannot be played cannot be graded, so the solver was not a supporting tool — it was the first deliverable.
We built it with a second agent. It played the game in a loop: run a level, record what actually happened, and report the discrepancy — the move the rules said was legal and the engine refused, the clear that should have cascaded and did not. Those reports went to Codex, our coding harness, which rewrote the simulator against them and handed back a new build for the next run. Rules were not transcribed from a document; they were recovered, one contradiction at a time, by an agent playing against the real thing.
One agent learned the rules so another could be judged against them.
At first, a deterministic proxy marked many shipped levels as failed. That did not mean the studio had shipped impossible content. It meant the simulator did not yet understand the game.
Runs moved monotonically from level 1. The first unexplained mechanic stopped the frontier. Gameplay evidence supplied a narrow rule; the simulator was corrected; earlier fixtures replayed; only then did the frontier move. Search and dynamic programming became strategies over one transition system, rather than two branches with different ideas of reality.
The first 100 levels became the deterministic seed target. Later levels stayed an experimental frontier. Every new rule needed a local reproducer and a full regression pass.
The first pack passed the gates—and failed completely
Five levels replayed successfully. Their average static corpus fit was 78%, temporal fit 80%, and richness fit 87%. Yet none of their named subjects could be reliably found in the images. Human acceptance was 0 out of 5.
The failure was not one bad coral board. It was systemic. The subject name existed only as metadata; the art score measured density, entropy, regions, and color transitions. A board could score highly without containing the object it claimed to depict.
Five different descriptions, one shared failure
The remedy was architectural. A deterministic image converter took an approved source image and produced a frozen pixel grid. The agent no longer had to draw and design gameplay in the same act. It received recognizable art and had one job: turn that art into a playable, fun level without destroying it.
The peacock laboratory: five stages, four revisions
The peacock became the clearest record of the new process. It did not improve in a straight line, and the metrics did not all rise together. The important change was that every revision carried a thesis, a replay, a visual comparison, and an explicit verdict.
Five stages, four revisions
Deterministic conversion preserves the bird, fanned tail, eye spots, legs, and dark negative space.
The board solves, but it is still an isolated sprite. Gameplay was added without building a composition around it.
Density reaches the corpus, but the regular border and flat fill become a reusable template rather than a level-specific composition.
Four keys and locks create activity, but the mechanic competes with the subject and the composition feels assembled rather than authored.
Mechanics move to the periphery, the bird remains dominant, and connected groups create pressure without hiding the image.
The metrics reveal why aggregate scores were dangerous
The first playable peacock had the best static fit of the four playable versions, yet it was the weakest level. The dense frame reduced static fit. The scenic-key version scored as well as the accepted version across the three gate counts. Human judgment still separated them.
The useful movement was inside the metrics. Mean tray occupancy rose to 2.03 in the accepted level—near the recent-corpus median of 2.12—while mean available actions remained healthy at 1.69. The final level created more sustained pressure without collapsing into a forced script.
Peacock metrics across successive playable revisions
| Revision | Occupied | Static | Temporal | Richness | Mean tray | Mean choices | Verdict |
|---|---|---|---|---|---|---|---|
| One Pixel Pipe | 54.9% | 11/13 | 2/4 | 6/6 | 0.97 | 1.57 | revise |
| Solid field + frame | 100% | 9/13 | 2/4 | 5/6 | 1.48 | 1.74 | revise |
| Scenic keys | 100% | 10/13 | 2/4 | 6/6 | 1.14 | 1.60 | reject |
| Peripheral Egg Boxes | 100% | 10/13 | 2/4 | 6/6 | 2.03 | 1.69 | accept |
Mean tray occupancy and available actions through peacock revisions
The agent changed from generator to editor
The resulting agent did not one-shot a board. It kept the frozen art and a portfolio of promising composition variants. It selected one thesis, modified a small part of the level, replayed it, measured it, rendered it, and judged the result against nearby shipped levels. Failed branches remained available as evidence and future starting points.
The production loop
Success improved gradually, not magically
The first full pack had zero jointly acceptable levels. A nine-run repeatability pilot produced two boards that passed both gameplay and visual review. The later production review yielded four accepted boards out of five. The remaining rejection mattered: it showed that human acceptance was still a real gate, not a ceremonial confirmation.
Joint gameplay + visual acceptance by cohort
What the project actually learned
Semantic truth is its own gate
Color and structure metrics cannot prove that a named subject exists. Deterministic source conversion and human review closed that gap.
Solvability is necessary, never sufficient
All five rejected first-pack levels solved. A replay certificate says the rules permit a win; it does not say the route is interesting.
Progression has local context
Level 151 had to fit the recent corpus and the first position of a new batch. Global averages would have erased that role.
Pressure must remain recoverable
The objective was designed pressure with plausible relief, while keeping every level solvable without a booster.
Composition beats feature count
Four keys were not automatically richer than two Egg Boxes. The accepted mechanics supported the subject’s hierarchy and raised useful tray pressure.
Small loops produce better evidence
Local edits made regressions attributable. Saved variants showed which density, framing, and mechanic theses transferred across images.
The breakthrough was not a better prompt. It was a better unit of work: preserve a readable image, state a gameplay thesis, edit one thing, replay it, measure it, look at it, and repeat.
All figures are derived from local development artifacts. “Acceptance” means joint human visual approval and deterministic winning replay within the stated cohort. Designed-pressure metrics are offline proxies, not player telemetry or conversion measurements.