iwantcoding.com
🔥 Daily 👥 Rooms 🏆 Top Log in Sign up

Level Design

Level design is the craft of turning systems and assets into a sequence of moments players experience. Pacing, signposting, difficulty curves, environmental storytelling, replayability — the discipline applies whether you ship a Mario level, a stealth mission, or a roguelike room.

Pacing, blocking, sightlines, iteration

EXAMPLE
// 1) The phases of level design
//
// 1. Concept / pitch — premise, location, key beats, fantasy
// 2. Paper design — top-down map, beats, encounter list
// 3. Greybox / blockout — playable geometry, no art
// 4. Iteration — playtest, adjust, repeat (most of the work)
// 5. Set dressing + lighting — only AFTER the level plays well
// 6. Polish — VFX, audio, edge cases
//
// Never paint a level that hasn't been playtested. You'll redo everything.

// 2) Pacing — alternate intensity
//
// Use a curve, not a flat line:
//   • Intro    — teach mechanic, low stakes
//   • Build    — apply mechanic, slight pressure
//   • Peak     — combine + new twist
//   • Reward    — power-up, vista, story beat
//   • Repeat
//
// Classic Mario level (~120 sec): intro koopa → series of pipes → big jump → flagpole.
// Players need recovery beats after intensity.

// 3) Blockout principles
//
// • Build with greyboxes — uniform colours, no texture
// • Standard sizes: door 2m tall, walkable surface 1m wide
// • Mark movement intent with shapes (ramp = up, ledge = jump)
// • Use COLOUR for affordances if needed (red = death, blue = water)
// • Place playable, not pretty — 80% of greybox time is iterating

// 4) Sightlines + landmarks
//
// Players need to know:
//   • Where am I?
//   • Where am I going?
//   • What's around me?
//
// • Distant landmarks (tower, mountain) anchor navigation
// • Foreground composition frames the next objective
// • Z-fighting and cluttered geometry confuse — keep critical paths clear
// • In FPS: cover height ≈ chest level for legibility

// 5) Difficulty curve
//
// • Introduce mechanic in SAFE space (Mario's first goomba)
// • Test it under pressure (more goombas + gaps)
// • Combine with another mechanic (goombas + shells + jumps)
// • Boss/test of mastery
// • Repeat for next mechanic
//
// Avoid spikes — if 60% of players quit at a section, redesign or signpost.

// 6) Encounter design (combat / stealth / puzzle)
//
// Combat:
//   • Cover, flank routes, retreat options
//   • Mix enemy types (long-range pressure + close threats)
//   • Ammo / health pickups at distance to manage tension
//
// Stealth:
//   • Patrol routes form clear patterns
//   • Reward observation (vents, hiding spots)
//   • Penalise being seen, but allow recovery
//
// Puzzle:
//   • Teach the rules — show ELEMENTS in isolation first
//   • Combine them — solution emerges from interaction
//   • Hint at solution via composition; don't tutorialise unless stuck

// 7) Environmental storytelling
//
// • Skeleton + broken weapon = past battle
// • Family photo + ration packs = lived-in space
// • Graffiti + bullet holes = warning
// • Avoid HUD-only narrative; show in the world

// 8) Loop + non-loop structures
//
// • Linear hallway — strong story pacing, less replay
// • Open arena — emergent encounters, replayability
// • Hub + spokes — central area + missions branch off
// • Loop — return paths shorten backtracking
//
// Pick based on game's fantasy: action-platformer linear, immersive sim open.

// 9) Playtest religiously
//
// • Test with people who DIDN'T design the level
// • Watch silently — they'll find every confusion
// • Track: where do they hesitate, die, get lost
// • Ask: 'what did you think the goal was?' — if they're wrong, signpost better
//
// Iterate weekly until the level is fun without explanation.

// 10) Tools per engine
//
// • Unity ProBuilder — in-engine blockout
// • Unreal Brush / Modeling Mode — geometry blocking
// • Source Hammer / TrenchBroom — Quake / Half-Life-style brush editing
// • Godot 4 — GridMap + CSG for blocking
// • Bevy — programmatic placement; tilemap crates for 2D
//
// External:
//   • Tiled (2D map editor; exports JSON/TMX)
//   • Ldtk (modern 2D level editor)
//   • Figma / Miro (paper design)

// 11) Roguelike / procedural levels
//
// • Build PIECES (room templates), not whole levels
// • Tag pieces with tags (combat, treasure, shop, hazard) → graph generator stitches them
// • Validate generation: connectivity, key/lock placement, fair encounter spacing
// • Place lore + tutorials in early-rooms only; randomise mid/late
//
// Reference: 'Spelunky' (room templates), 'Hades' (handcrafted runs), 'Dead Cells' (mix)

// 12) 2D platformer beats
//
// • Open with a safe jump — players test controls
// • Introduce hazard (pit) safely
// • Test under pressure (moving enemy)
// • Combine (hazard + enemy)
// • Reward (collectible, vista)
//
// Reference: Mario, Hollow Knight, Celeste

// 13) Open-world
//
// • Districts have distinct visual identity for orientation
// • Quest design balances variety — kill, fetch, explore, dialogue, puzzle
// • Side content respects player time (visible, optional, rewarding)
// • Avoid filler that's just 'walk for 10 min'

// 14) UX rules
//
// • Players check the camera — keep important things in centre-frame
// • Yellow paint / shimmer for climbable surfaces (Uncharted-style affordance)
// • Doors animated open before player approaches (no door-handle minigame)
// • Hide invisible walls behind environmental logic (cliffs, foliage)

// 15) Common bugs
//
// • Designing for yourself — you know the secrets; playtest with non-team
// • Painting before playtest — wasted hours when you redo geometry
// • Spike difficulty without warning → frustration
// • Reusing identical assets in 90% of the level → fatigue
// • Missing audio cues for interaction → players think mechanic is broken
// • Bottleneck only at one location → entire game blocked when stuck
// • Skipping accessibility — colourblind palette, subtitle support, motion-sickness toggles
// • Ignoring metrics — track death heatmaps, time-on-section, drop-off
// • Pacing identical for every level — start with a beat-map; vary
// • Cinematics that take camera control without consent — players hate it

Why it matters

Level design is iteration on a paper map → greybox → playtest loop. Pace intensity with peaks + recoveries, blockout in greybox before art, signpost paths with landmarks + sightlines, teach mechanics in isolation before combining them, and run playtests with people who didn’t design the level. Painting the walls is the last step, not the first.

Tip: Tweak the snippet with Try it Yourself », then sit the quiz at the bottom of the page.

Example

Example
// Tile-based 2D: arrays of indices + a tile atlas.
// 3D: prefab grid snapping or hand-sculpted geometry.
// Tools: Tiled, LDtk, ProBuilder, Unity Probuilder.
Try it Yourself »

Discussion

Loading…