videogame.io

Tools / Level Builder

Level Builder

Describe a level in words; Qwen 3.8 picks from tested building blocks and a compiler lays them out into a level that always works.

Working - admin onlyComing soon for players
12/12levels valid and finishable on the first try (Qwen 3.8)
6.5 smedian per level, about 222 tokens
15 x 2tested chunks, each in an easy and a hard version
2,930compiled self-test levels, 0 failures

How it works

The steps

  1. Ask for a level in words: a theme (lava caves, candy clouds, castle ramparts), length and difficulty.
  2. Qwen 3.8 answers with a RECIPE only: a name, a material, and a list of chunks picked from 15 pre-tested pieces, each easy or hard. A json_schema with a fixed list of chunk names means the answer is always valid and short.
  3. The compiler lays the chunks end to end. Each chunk starts from where the last one ended, so any order joins up and nothing overlaps.
  4. The level checker proves every block can be reached and the flag can be reached; the level then loads straight into BLOCK RUNNER.

Examples

Four compiled levels, side view

Green and white: blocks. Blue: moving platforms (faded = where they travel to). Red: spikes. Yellow: coins. Purple: an enemy and its patrol. The small figure is the start, the flag is the goal. Each one plays in BLOCK RUNNER.

Molten Depths - "lava caves", 7.8 s, 244 tokens

Play itlevel JSON
stairs downspike pithexagon hopscheckpoint padmoving slide +enemy patrol +stairs up +moving lift +run jump +

Overgrown Temple - "jungle ruins", 6.6 s, 221 tokens

Play itlevel JSON
stairs upside ledgespike pitcheckpoint padturn back +enemy patrol +moving lift +hexagon hops +

Candy Cloud Drift - "candy clouds", 6.9 s, 222 tokens

Play itlevel JSON
platform hopsstairs upcheckpoint padmoving slidehexagon hops +spike pit +moving lift +stairs down +

Spiral Ascent - "spiral tower", 3.6 s, 130 tokens

Play itlevel JSON
stairs uphexagon hopsturn backcheckpoint padmoving lift +stairs up +spike pit +platform hops +

Chip with + = the hard version of that chunk.

All 12 from the bench

Recipes Qwen 3.8 wrote

LevelThemeRecipeTimeChecker
Molten Depthslava caves
stairs downspike pithexagon hopscheckpoint padmoving slide +enemy patrol +stairs up +moving lift +run jump +
7.8 spassed
Sky Islandssky islands
flat hopsplatform hopscheckpoint padspike pitmoving slide +enemy patrol +hexagon hops +moving lift +
4.5 spassed
Frozen Cascadefrozen waterfall
hexagon hopsmoving liftspike pitcheckpoint padplatform hops +spike pit +drop down +moving slide +enemy patrol +
7.8 spassed
Overgrown Templejungle ruins
stairs upside ledgespike pitcheckpoint padturn back +enemy patrol +moving lift +hexagon hops +
6.6 spassed
Castle Rampartscastle ramparts
flat hopsstairs upcheckpoint padspike pitenemy patrolmoving lift +hexagon hops +spike pit +
6.9 spassed
Candy Cloud Driftcandy clouds
platform hopsstairs upcheckpoint padmoving slidehexagon hops +spike pit +moving lift +stairs down +
6.9 spassed
Mesa Miragedesert mesas
flat hopsstairs upside ledgecheckpoint padspike pit +moving slide +stairs down +run jump +
6.3 spassed
Whispering Woodshaunted forest
flat hopshexagon hopsside ledgecheckpoint padmoving slide +spike pit +stairs up +platform hops +
6.4 spassed
Harbor Docksharbor docks
flat hopsside ledgespike pitcheckpoint padmoving slidestairs uphexagon hops +moving lift +run jump +
7.1 spassed
Volcano Ascentvolcano climb
low stepsspike pitflat hopscheckpoint padmoving lift +enemy patrol +spike pit +run jump +
5.9 spassed
Crystal Minescrystal mines
stairs uphexagon hopscheckpoint padspike pit +moving lift +enemy patrol +drop down +
5.1 spassed
Spiral Ascentspiral tower
stairs uphexagon hopsturn backcheckpoint padmoving lift +stairs up +spike pit +platform hops +
3.6 spassed

The vocabulary

15 chunks the model chooses from

ChunkWhat it is
flat hopsthree single blocks in a row at the same height (easy gaps 1.5, hard = run-jump gaps 2.2)
platform hopsthree thin floating platforms in a row (easy gaps 1.5, hard 2.2)
hexagon hopsthree hexagon pillars zig-zagging left/right (easy gaps 1.0, hard 1.6)
stairs upthree blocks climbing +1 each (route goes up 3)
stairs downthree blocks stepping down -1 each (route goes down 3)
low stepsfour half-height blocks climbing +0.5 each (route goes up 2)
drop downone big drop onto a wide block (easy -3, hard -4 with a longer jump)
run jumpa long block, then one full run-jump onto a wide block
side ledgea long block with a coin ledge to the side (hard = the ledge is 1 higher)
turn backthe route turns away from the camera (into -z) over three blocks (hard = climbing)
moving slidea wide pad, then a moving platform carries the player across a pit (easy 6 units, hard 9)
moving lifta wide pad, then a lift carries the player up to a high pad (easy +3, hard +4)
spike pitjump over a spike pit (hard = longer jump and spikes on the landing)
checkpoint pada wide checkpoint pad with a fence (hard = one step higher)
enemy patrola wide 4-unit floor with an enemy walking back and forth (hard = faster enemy)

Bench, 31 Oct 2026

Four ways to ask for a level

WayModelPass the checkerValid JSONCut offMedian time
Raw coordinates, pretty JSONQwen 3.817%33%50%252 s
Raw coordinates, compact JSONQwen 3.88%58%42%312.5 s
Compact JSON + json_schemaQwen 3.88%100%0%45.6 s
Chunk recipe + compilerQwen 3.8100%100%0%6.5 s
Compact JSON + json_schemaQwen3-Coder-Next8%100%0%71.9 s
Chunk recipe + compilerQwen3-Coder-Next100%100%0%11.1 s
Chunk recipe + compilerQwen3-30B-A3B-Instruct-2507 Q4_K_M100%100%0%0.5 s

Models and licences

What it runs on

StepModel or toolLicence
Write the recipeQwen 3.8 Flash Next, thinking off, json_schemaopen weights (Qwen)
Also worksQwen3-Coder-Next (12/12, 11 s)open weights (Qwen)
Compile + checkchunk compiler and level checker (ours)ours
Blocks, enemies, coinsKenney Platformer KitCC0

Why chunks: asked for raw coordinates, the same model passed only 1-2 of 12 levels - half the answers ran away into hundreds of repeated blocks, and even perfectly valid JSON put a moving platform through a block or left the flag floating. The model is good at choosing; code is good at geometry. The open question now is variety, not validity.

Benchmarks and live pages