← All prototypes

How it was made · Roguelite · 2D

Dungeon Delivery

Designed by Kenji Watanabe, tinkered with tutorials; making it to show friends. Built by Claude Code with the Game Prototype Builder prompt.

The idea, in their words
A pizza courier fights down through dungeon floors to deliver a pizza to the dragon at the bottom. After each floor you pick one of three toppings, and each topping is an upgrade.
The one thing it had to have
pick-one-of-three topping upgrades that visibly change the pizza on your back
How they chose to work
Check-ins: Standard · Explain my calls
Where their calls changed the game
His one change was the joke: the dragon sniffs the air and stares at your pizza. At the playtest he asked for a zoomed-in phone view, bigger topping icons and, after it got too hard, a difficulty pass back to Fair.
A pixel-art dragon staring at a pizza courier with a loaded pizza on his back

Below are the actual documents from the build, unedited: the AI's messages, its plan and its replies. The person's answers were written by us for this demo, the way a real buyer would answer.

The check-insWhere they approved the plan, playtested, and asked for changes

Every checkpoint exchange, in order.


Checkpoint 1: Design approval

Agent:

I've written the one-page design to GAME_DESIGN.md (full text shown in chat). It has six choices for you: art style, camera, floor count, what happens after the dragon, how getting hit works, and how the cheesy jokes show up. Each has my recommendation marked.

Approve this, change anything, or pick from the options above. I won't write game code until you say go.

What I need from you: "Approve" (or "go with your picks"), or tell me which options you want and anything to change. Next, I build the first playable and test it, then stop again for your playtest.

Person:

Kenji here: go! The topping puns made me laugh, so keep them all.

Picks: 1a, 2a, 3a (4 floors, so friends can finish a run quickly at a party), 4a, 5a, 6b (yes to the occasional courier quip, but keep them rare so they stay funny).

One change: make the dragon's "hungry" phase obvious. It should sniff the air and stare at the pizza on your back. That's the joke I want people to notice.

Log this in CHECKPOINTS.md and build.

Agent (recorded decisions):

  • Approved. All six topping puns stay as written.
  • 1a chunky code-drawn pixel art with warm torchlight · 2a one fixed screen per floor · 3a 4 floors before the dragon (target run is now about 3.5 to 4 minutes) · 4a the run ends with a "Delivered!" screen · 5a five hearts with a short invincibility blink · 6b puns plus rare courier quips (a low chance per floor and a long cooldown, so roughly two or three per run).
  • Change: the hungry phase gets its own moment. At half health the dragon stops attacking, sniffs (sniff sounds, "sniff" text and aroma wisps drifting from your pizza to its nose), leans in and stares at the pizza on your back (its pupils lock onto the pizza, a dotted stare line, and the pizza glows). Then it asks about your top topping ("...is that PEPPERONI?") and gets faster. For the rest of the fight its eyes stay on the pizza and it sniffs now and then.

Checkpoint 2: First-playable playtest

Agent:

The first playable of Dungeon Delivery is ready: a complete run from the title through 4 floors and topping picks to the dragon, then the end screen and Play Again. Your hungry-phase change is in. At half health the dragon freezes, sniffs ("sniff" with sniff sounds), and wisps of aroma drift from your pizza to its nose. It leans in and stares at the pizza on your back: its pupils lock onto the pizza, a dotted stare line runs from its eyes, the pizza glows, and the banner reads "IT SMELLS THE PIZZA". It asks "...is that PEPPERONI?" (or whichever topping you have most of), shouts "GIMME!!" and gets faster. For the rest of the fight its eyes stay on the pizza and it drools and sniffs now and then.

How to open it: double-click dist/dungeon-delivery.html on your computer. It works offline. To try it on your phone, drag the file onto Netlify Drop (or upload it as a Claude artifact) and open that link on the phone.

Self-test results (run here, headless Chrome): (full list of screenshots, test results and my calls is in the hand-back message)

  • Desktop 1280x800 (keyboard bot): 2 runs, both reached the end screen. 0 console errors, 0 network requests. Play Again starts a clean run.
  • Phone 390x844 (touch bot through the joystick and SWING/DASH buttons, network off): 2 runs, both reached the end screen. 0 console errors, 0 network requests. Play Again starts a clean run.
  • Frame rate on this slow 2-core test machine with software rendering: 37 to 57 fps desktop and 55 to 59 fps phone across test runs. That is not a real-device measurement.
  • Honest runs (no cheats): on the final build, the desktop bot died on Floor 3 and the phone bot delivered the pizza. On the earlier tuning passes, the bot delivered 2 times out of 3 and lost to the dragon once. That's in line with "Fair" (a few tries). One run per size used a test-only invincibility switch so I could screenshot the dragon, the hungry phase and the win screen every time.
  • Run length: the bot clears a run in about 1:50 to 2:40. That's quicker than the ~3.5 min target, but a bot dodges perfectly and never hesitates, so a real person will take longer. Please time your run.
  • A bot can tell me the game works, but not whether it's fun. I couldn't check how the audio sounds, real phone feel or frame rate, or whether the jokes land.

Please play for two or three minutes, then tell me:

  1. What felt good?
  2. What felt off or confusing?
  3. If you could change one thing, what would it be?

What I need from you: your answers to those three questions (plus your run time, if you noticed it). Next I'll treat your feedback as the top priority, then do the progression and polish pass and the hand-off.

Person:

Kenji's playtest feedback (I played on my laptop and then on my phone; runs took about 2.5 minutes for me):

  1. What felt good: the dash feels slick, the puns made my friend laugh out loud, and the dragon staring at the pizza is exactly the joke. "...is that EXTRA CHEESE?" killed.
  2. What felt off:
    • On the phone, the room is tiny, a small box in the top third of the screen. The courier and the monsters are a few pixels tall, and I couldn't see the bones coming.
    • On the laptop, the "IT SMELLS THE PIZZA" banner is faint and dark, behind the dragon. It's the payoff, so it needs to be big and readable.
    • The three topping cards all show the same-looking pizza icon. Show each topping's own icon big (a pepperoni slice, a mushroom, an olive…).
  3. The one change: on phone, zoom the room to fill the width and push the controls to the bottom, so the courier is clearly visible. Everything is a bit small on the laptop too.

Also, runs are a little short. Add the 5th floor back if it fits, aiming for 3 to 4 minutes.

Log this in CHECKPOINTS.md, then polish and hand off.

Agent (plan in response, top priority):

  • Phone zoom (the one change): in portrait, the room is drawn zoomed in, about 1.5x larger than before. It fills the screen width and most of the height, with a camera that follows the courier left and right. The SWING/DASH buttons and joystick sit in a band at the bottom. Monsters and bones off the edge of the view get red edge arrows.
  • Bones: bigger, brighter and outlined, with a short trail, so you can see them coming.
  • Laptop size: the view zooms in a little too (it crops some of the decorative wall), and the HUD and pop-up text are larger.
  • "IT SMELLS THE PIZZA": now a big, bright, pulsing banner on a dark band. It stays up for the whole sniff and sits clear of the dragon.
  • Topping cards: each card shows its own big pixel icon (pepperoni slice, mushroom, olive, jalapeño, cheese wedge, pineapple chunk).
  • Run length: Floor 5 ("Stuffed Crust", mixed monsters with two goblin Bouncers) is back, so there are 5 floors and 5 topping picks before the dragon. Aiming for 3 to 4 minutes.

Agent (done): I made all of the changes above and reran the tests: npm test passes at both sizes. On the final build, the honest bot runs died on Floor 5 (desktop) and lost to the dragon (phone). The invincible check runs delivered in 2:08 to 2:59 of game time. Hand-off written: README.md and PROTOTYPE_LOG.md.


Checkpoint 3: Difficulty feedback on the polished build

Person:

Kenji again, after playing the new build: the phone zoom and the big IT SMELLS THE PIZZA banner are perfect, and the topping icons are great.

But it's too hard now. I died on Floor 5 twice and my friend never reached the dragon. I asked for Fair: most people should deliver within a few tries. Tune it back so a decent player reaches the dragon on their first or second run and beats it in two or three tries. Options: lighter Floor 5 waves, one extra heart, or the Mushrooms topping showing up more often. Your call, but list it in "Your calls".

Rerun the tests until the honest bot wins at least one run at each size. Then update README.md / PROTOTYPE_LOG.md and give me the final summary. Log this in CHECKPOINTS.md.

Agent (plan): I own this one: putting Floor 5 back made the run harder than Fair, and my bot's losses showed it. I'm using all three levers, each kept small:

  • Floor 5 gets lighter: fewer monsters, and only one Bouncer at a time.
  • You start with 6 hearts instead of 5.
  • Mushrooms is always one of the three cards whenever you're missing a heart.

Agent (done):

  • Starting hearts went from 5 to 6.
  • Floor 5 is lighter: 14 monsters instead of 20, and one Bouncer instead of three.
  • Mushrooms is always offered when you're missing a heart.
  • After the first retest, the laptop bot still lost to the dragon both times. So I also lowered the dragon to 50 health (from 56) and slowed its hungry attacks slightly (x0.7, was x0.62).
  • Final npm test, 2 honest runs per size: the laptop bot delivered 1 of 2 runs (the other run died at the dragon with 13 of 50 health left on it), and the phone bot delivered 2 of 2. All 4 honest runs reached the dragon. 0 console errors, 0 network requests, Play Again is clean.
  • All of this is listed in README.md under "Your calls" and in PROTOTYPE_LOG.md.
The plan they approvedThe one-page design, with the options they picked from

Designed by Kenji Watanabe · Built with Claude Code

Pitch: You are a pizza courier with one very important order. You dash and swing your way down through dungeon floors full of monsters, topping your pizza as you go, to deliver it to the dragon at the bottom. You lose when your health hits zero (and the pizza goes cold).

Core loop (10 seconds): Monsters close in → dash through or out of the gap (brief invincibility, a whoosh and a trail) → turn and swing your pizza peel at whatever's nearby (hit flash, knockback, a tiny hit-pause, a "+10" pop). Repeat. It should feel good because the dash is short, instant and forgiving (Gungeon-style "I slipped through that!"), and every hit has a crunchy pop, so dodging in and punishing feels like a little dance.

Controls

  • Computer: WASD or arrow keys to move · Space or Shift to dash · J, K or left-click to attack (swings toward the mouse; with keyboard only, toward the way you're moving). 1 / 2 / 3 or click to pick a topping. M mutes.
  • Phone (two thumbs, landscape or portrait): left thumb drags a floating joystick anywhere on the left half; right side has two big buttons (SWING and DASH, each at least 72px). Swings auto-aim at the nearest monster. Tap a topping card to pick it.

A run (~4-5 minutes)

  • Start: title screen → you get the order ("1 large, for: DRAGON. Address: the bottom.") → Floor 1.
  • Rise: each floor is one single-screen room. Monsters arrive in 2-3 waves; clear them and the stairs open. Before you go down, pick one of three toppings. About 30-40 seconds per floor.
  • End: after Floor 5, the dragon's lair (about 60-90 seconds). Beat the dragon and you deliver the pizza (big win screen, bonus points). Die anywhere and the run ends with your score. Score = monsters + floors cleared + time and health bonus + a big delivery bonus, with a session best shown on the end screen.

Progression (beats you'll feel in one run)

  1. Floor 1-2: Rats and slimes. Slow, easy, teaches dash and swing.
  2. Floor 3: Skeleton archers (they fire slow bone-shaped projectiles; no gore) force you to dash through shots.
  3. Floor 4-5: Mixed waves, faster pace, plus a chunky "Bouncer" goblin that charges in a straight line.
  4. Your pizza grows: by the bottom you've stacked 5 toppings and the pizza on your back looks loaded.
  5. The dragon: three telegraphed attacks (fire breath sweep, tail slam, summon rats), with a halfway "it's getting hungry" phase where it speeds up.

Must have: topping upgrades you can see. After each floor, three topping cards appear with a pun and an effect, e.g. Pepperoni ("Pep in your step… and your swing": +25% damage), Mushrooms ("A fungi to be around": +1 max heart, heal 1), Olives ("Olive to dash": dash recharges faster), Jalapeño ("Hot stuff": swings set monsters smoldering for extra damage), Extra Cheese ("Grate defense": block one hit per room), Pineapple ("Controversial reach": bigger swing arc). Toppings stack. Each one you pick is drawn onto the pizza strapped to the courier's back, so picking 3 pepperoni means you can see 3 rounds of pepperoni. Your picks also appear on the HUD and the end screen ("Delivered: pepperoni, pepperoni, mushroom, olive, jalapeño").

Your choices (pick one in each, or say "go with your picks")

  1. Art style: (a) chunky pixel art drawn in code, big 4x pixels, warm orange torchlight glow and dark stone ← recommended; (b) smoother cartoon shapes with soft shadows.
  2. Camera: (a) one fixed screen per floor, like Hades rooms ← recommended (clean, readable on phones); (b) bigger rooms with a camera that follows you.
  3. Floor count before the dragon: (a) 4 floors (shorter, ~3.5 min); (b) 5 floors (~4.5 min) ← recommended; (c) 6 floors (~5.5 min).
  4. After the dragon: (a) run ends with a "Delivered!" screen and your score ← recommended (clear finish for friends and family); (b) keep going deeper for an endless high-score climb.
  5. Getting hit: (a) hearts (start with 5), plus a short invincibility blink after a hit ← recommended; (b) a health bar with smaller chip damage.
  6. Cheesy jokes: (a) puns on topping cards, floor titles ("Floor 3: Crust Hour") and the end screen ← recommended; (b) also add a short quip bubble from the courier now and then.

Scope cut list (not in this prototype)

  • More weapons or a weapon pick: one pizza peel is enough to test the dash-and-swing feel.
  • Meta-progression between runs (unlocks, currencies): needs many runs to matter; a session best score covers "one more try".
  • Branching room choices / map: Hades-style door choices add a lot; the topping pick gives the key "choose your build" moment.
  • Multiple bosses or biomes: one dragon, one dungeon look.
  • Saving progress, leaderboards, online anything: the game is a single offline file with no storage.
  • Story, dialogue, characters beyond the courier and the dragon: jokes live in text on cards and screens.

What success looks like

  • A first-time player gets the dash-and-swing within the first floor and feels slick when they slip through an attack.
  • Picking a topping feels like a real decision, and people laugh or point when their pizza visibly piles up.
  • Beating the dragon feels earned in two or three tries, and friends ask for "one more go."

Approved by Kenji (Checkpoint 1): 1a, 2a, 3a (4 floors), 4a, 5a, 6b (rare quips). Keep all topping puns. Change: the dragon's hungry phase must be obvious. It sniffs the air and stares at the pizza on your back. With 4 floors, the run target is about 3.5 to 4 minutes, and the Floor 4-5 beat becomes Floor 4.

Updated after the playtest (Checkpoint 2): Floor 5 is back ("Stuffed Crust"), with a 3 to 4 minute target. Phones zoom in so the room fills the width. The sniff banner is a big hero banner. Topping cards show their own icons. Details are in PROTOTYPE_LOG.md.

The interviewThe three batches of questions and their answers

The full intake exchange between Game Prototype Builder (the agent) and the person, in order.


Agent:

Hi! I'm Game Prototype Builder, and I'm here to turn the game in your head into something you can actually play today. Here's how it works: first a short intake interview in three batches, then a one-page design you approve, then I build and test the game, then you playtest it and tell me what felt off, and finally I polish and hand off everything you need to keep going. You stay in control the whole way: you're the designer, I'm the builder. A first build usually takes 30 to 90 minutes of my work (more for 3D).

Let's start with Batch A: You

  1. What should the game's credits say? ("Designed by ___": a name, a handle, or a studio.)
  2. Your experience: Never made a game / Tinkered or followed tutorials / Started games but never finished one / Shipped something small / Professional.
  3. Can you read code? None / A little / Comfortably.
  4. What is this prototype for? Test whether an idea is fun / Show friends or family / Pitch it to someone / The start of a real game I'll build properly / A gift / Just to learn how games are made.
  5. Where will you playtest it? Phone / Computer / Both.

Person:

  1. Kenji Watanabe
  2. Tinkered or followed tutorials
  3. A little
  4. Show friends or family
  5. Both

Agent:

Thanks, Kenji. Phone and computer both, so I'll design the controls for touch and keyboard from the start. Now the fun part.

Batch B: The game

  1. The idea, in your own words. One to three sentences is plenty.
  2. 2D or 3D? (Or "you decide". 2D is faster and more reliable for a first prototype; 3D works but takes longer and looks rougher.)
  3. The core action: what does the player do over and over? (Jump, steer, match, build, aim, serve, dodge…)
  4. The one thing it must have. The part that makes it your idea. This is never cut.
  5. Games it should feel like, and what to take from each. Feel and ideas only; never their art, characters or names.
  6. Look and mood: colors, style, era, vibe. A few words is enough.
  7. How a run should end: a clear win, a high-score run that ends when you lose, or endless. Roughly how long should one run be? (2 to 5 minutes works best for a prototype.)
  8. Anything to avoid: themes, mechanics, difficulty, things that would spoil it for you or your audience.

Person:

  1. A pizza courier fights down through random dungeon floors to deliver a pizza to the dragon at the bottom. Each floor is a short room of monsters. After each floor you pick one of three toppings, and each topping is an upgrade (pepperoni = more damage, mushrooms = more health, and so on).
  2. 2D
  3. Dash and attack
  4. Pick-one-of-three topping upgrades that visibly change the pizza on your back
  5. Hades' room-by-room flow and boon picks; Enter the Gungeon's dodge feel (melee instead of guns)
  6. Chunky pixel-art dungeon, warm torchlight, cheesy jokes
  7. A high-score run that ends when you lose, with a dragon boss you can beat, about 4-5 minutes
  8. Avoid gore

Agent:

Love it. A pizza that gets visibly more loaded as you descend is a great hook, and "cheesy jokes" fits the theme perfectly. Last batch.

Batch C: How we work

  1. How often should I check in with you?
    • Autopilot: you approve the design, then I build, test and polish without stopping. Fastest.
    • Standard (recommended): you approve the design, then you play the first playable build and tell me what felt off before I polish.
    • Hands-on: Standard, plus a quick look after every milestone (core loop, progression, juice) so you steer as it grows.
  2. How much explanation do you want?
    • Just build it: short updates, no lectures.
    • Explain my calls: when I decide something, I tell you why in a sentence or two.
    • Teach me as we go: after each system is built, I explain how it works in plain language and point you to the exact file and function, plus one small optional change to try yourself.
  3. Difficulty: Gentle (most people win) / Fair (a few tries) / Tough (for people who like a challenge).
  4. A short name for the project folder and the game's working title. (Or "you decide".)

Person:

  1. Standard
  2. Explain my calls
  3. Fair
  4. Dungeon Delivery

Agent:

Here's everything in one place:

🎮 PROTOTYPE PROFILE
Title: Dungeon Delivery            Designed by: Kenji Watanabe
Idea: A pizza courier fights down through random dungeon floors to deliver a
      pizza to the dragon at the bottom. Each floor is a short room of monsters;
      after each floor you pick one of three toppings, each an upgrade
      (pepperoni = more damage, mushrooms = more health, and so on).
View: 2D   Core action: dash and attack   Must have: pick-one-of-three topping
      upgrades that visibly change the pizza on your back
Feels like: Hades' room-by-room flow and boon picks; Enter the Gungeon's dodge
      feel (melee instead of guns)
Look & mood: chunky pixel-art dungeon, warm torchlight, cheesy jokes
Run: score (ends when you lose) with a beatable dragon boss, ~4-5 min
Avoid: gore
Playtest on: Both (phone and computer)   Purpose: Show friends or family
Experience: Tinkered or followed tutorials   Reads code: A little
Check-ins: Standard   Explanations: Explain my calls   Difficulty: Fair

(You gave the title, so I'll keep the project folder as dungeon-delivery.)

Lock this in?


Person:

Yes.


Agent:

Locked in. One note on scope before I write the design: you've tinkered before and this is for showing friends and family, so I'll keep it small and friendly. Hades-style runs can grow huge (dozens of rooms, many weapons, meta-progression), so I'm planning a short descent of a handful of floors plus the dragon, one weapon, and a tight set of toppings. That's enough to prove the fun and fit your 4-5 minute target. The design is next.

Make your own

Describe the game you've always wanted to make. Claude Code interviews you, writes a plan you approve, builds it, tests it, and asks you to playtest before it polishes. You make every creative call.

The prompt is almost ready. Get one email when it launches: