A Minecraft-styled cooking game designed for kids with ADHD and written-expression learning challenges (dysgraphia-spectrum spelling and writing difficulties). The player is a young chef earning the kitchen's trust with steady knife work, spelling order tickets, and building their own voxel restaurant day by day.
Every mechanic is a disguised therapy target β response inhibition, spelling, working-memory compensation, and self-regulation β wrapped in a game that respects the player's intelligence and never punishes mistakes.
Plays entirely with an Xbox or PlayStation controller. No keyboard skills required β and that's deliberate: spelling happens on a controller-navigated QWERTY grid (like console name entry), which quietly teaches keyboard layout for the day the player graduates to typing.
Everything is generated in code β pixel-art kitchen and dining-room backgrounds, the selectable chef avatars (Chef Max / Chef Maya), the blocky customers, the lo-fi background music, and all sound effects. No asset files.
No install needed: π https://redmeatboy.github.io/blockworld-kitchen/ π
Open it in Chrome or Edge, connect a controller (USB or Bluetooth), press any button on it, and you're cooking. Saves live in the browser, so play on the same device/browser to keep your chefs' progress.
(Deployed automatically from main by .github/workflows/deploy.yml.)
npm install # first time only
npm run devOpen the printed URL (usually http://localhost:5173) in Chrome or Edge.
Connect a controller via USB or Bluetooth, press any button on it, and you're
cooking.
Sound matters: the chef speaks the orders and spelling words aloud (browser speech synthesis), which is part of the therapy design. Volume on.
To make a hostable build: npm run build β static site in dist/.
| Controller | Action |
|---|---|
| A / Cross | confirm, pick letter, chop, grab an ingredient on the dive |
| B / Circle | erase letter, send dish out whole (no-cut orders!), float up from the dive |
| X / Square | hear the word again (unlimited, free); switch chef on the title screen |
| Y / Triangle | Chef's Glance β re-shows the word briefly (limited per night) |
| D-pad / left stick | navigate, swim on the Cellar Dive, change grade on the title screen |
| Start / Options | pause |
| Select / Share | parent dashboard |
Keyboard fallback: arrows, Enter=A, Backspace=B, 1=hear, 2=glance,
Esc=pause, Tab=parent dashboard. Letter keys type directly into spelling β
a built-in growth path from controller to keyboard.
The game boots to a CHOOSE YOUR PLAYER screen with three independent save slots, so up to three kids (e.g. siblings) each keep their own chef, grade, day count, knife trust, recipe book and settings β nothing is shared between them. Pick a slot with the d-pad and press A to play; an empty slot starts a fresh chef. Y renames a slot (cycles fun preset names), and Select erases one (with a confirm). Switch players any time from the title screen with Y. A pre-existing single save is automatically migrated into Player 1.
Pick KindergartenβGrade 6 with the d-pad on the title screen. Word banks follow the word-study progression of the Alberta English Language Arts and Literature (2022) curriculum:
| Grade | Word focus | Example words |
|---|---|---|
| K | Letter sounds, simple CVC | EGG, JAM, CUP |
| 1 | CVC words, blends, digraphs, silent-e | EGG, CHIP, CAKE |
| 2 | Vowel teams, common patterns, early 2-syllable | PEACH, HONEY, CARROT |
| 3 | Compound + multisyllabic words, common affixes | PANCAKE, SANDWICH |
| 4 | Complex patterns, longer multisyllabic | CINNAMON, PINEAPPLE |
| 5 | Prefixes/suffixes, irregular plurals (f/o/y) | TOMATOES, LOAVES, CASSEROLE |
| 6 | Loan words, Greek/Latin-derived, hard morphology | GUACAMOLE, INGREDIENT, MOZZARELLA |
Grade also scales the whole game: word-flash time shrinks, cut counts and cut-line speed rise, and the chef calls more "HOLD!" inhibition tests. Within each grade there are three tiers that auto-adapt to the player's recent first-try success β no grinding mastered material, no walls. Kindergarten and Grade 1 nights are shorter (3 orders instead of 4) to match younger attention spans.
Six original chiptunes rotate night by night β from the bouncy "Block Party Bounce" to the sneaky "Midnight Snack" β all switching to slow warm pads during the sharpening wind-down. While the player is spelling, the music whispers the target word once every 30 seconds β gentle ambient rehearsal, never nagging.
The chef speaks with one of two voices, switchable on the pause menu: the friendly helper or fiery Chef Blocksay β a deep, quick, very British head-chef delivery (same kind words, much more drama). Pause menu (Start): Y toggles music, X toggles the voice.
- Tonight's Menu β the 4 words are previewed up front (pre-exposure sets the player up to succeed; it's also a visual schedule).
- The Cellar Dive β swim down a deep, dark cellar shaft to gather tonight's ingredients (Dave the Diver's gather-then-serve loop, turned into a root cellar). Your lantern lights only a circle around you; a candle timer melts visibly, and deeper zones (Pantry Shelves β Stone Cellar β Crystal Deep) hold higher-trust finds β go deeper on a shrinking candle, or play it safe? Living ingredients (fish, crabs, gummy wormsβ¦) patrol the dark and dart away from button-mashing: a calm, timed press catches them. From grade 2 up the dive list starts hidden β hold it in working memory, or press X to peek (the same compensation move as the Chef's Glance). Candle out or B just floats you back up and the reserve shelf covers the rest β but gathering everything yourself with no wrong grabs earns the PERFECT MISE EN PLACE bonus.
- Dinner service β for each order:
- The chef speaks the order; the word flashes visually, then hides.
- The player spells it on the controller letter grid.
- Then cuts the ingredient at the Knife Station β a real voxel model (the FISH looks like a fish, the CAKE has tiers and a cherry), with the chosen chef standing at the board swinging the knife on every cut.
- Sharpening wind-down β slow, breathing-paced whetstone strokes.
- Results β stars, Knife Trust, possible knife unlock, and a word recap: every word from tonight, spelled correctly, one more look. The final order of every night is the β Daily Special β double trust on its spelling, a built-in finale.
- Build β place an earned decoration block in a persistent restaurant. Every block is a real kitchen upgrade: the Potted Plant grants an extra Chef's Glance, the Old Clock keeps words on screen longer, the Kitchen Cat protects a spelling streak once a night, the Trophy pays bonus trust on perfect cuts, the Lantern widens the cut zone, the Fish Tank calms the cut lineβ¦ Active powers are shown on the menu screen each night, so the restaurant the player builds literally makes them a stronger chef.
Other touches: a visual countdown bar shows exactly how long the word stays on screen (visible time, an ADHD support), consecutive first-try spellings build streaks with confetti, bonus trust, and a tracked personal best, and every served dish gets a reaction from a blocky customer (Miner Mo, Builder Bea, Redstone Rexβ¦). The sharpening wind-down shows the player's actual trust-tier knife on the whetstone, edge gleaming brighter with every breathing-paced stroke. During spelling the dish name is deliberately hidden β "Vanilla Milkshake" on screen would spell M-I-L-K for you.
The Recipe Book (B on the title screen) collects every word ever spelled first-try as a mastered recipe stamp, grade by grade β locked recipes show as mystery cards to hunt down. 330+ food words across the seven grade bands β meals, fruits and veg, plus condiments, spices, sauces, cheeses, and a pile of weird-and-funny cuttables (gummy WORMS, candy EYEBALLs, jiggly BRAINS, a giant GUMMY bear, stinky DURIAN, even a wiggly TENTACLE).
The final order is announced as "LAST ORDER OF THE NIGHT" β a built-in transition warning for kids who struggle to stop a preferred activity.
| Mechanic | Target |
|---|---|
| Cellar Dive (gather tonight's ingredients in a dark real-time descent, list hidden from grade 2 up) | Planning/organization EF training + working-memory practice with a built-in compensation move (peek) |
| Visible melting candle + deeper-is-richer zones | Time awareness and felt time-management decisions, with a no-fail floor |
| Living ingredients that flee button-mashing but reward a calm, timed grab | Patience and response timing β impulse control with an immediate natural consequence |
| Spelling order tickets (word heard + flashed, then spelled) | Spelling/written expression β without the fine-motor handwriting bottleneck |
| QWERTY-arranged letter grid | Keyboard geography for future typing/assistive tech |
| Chef's Glance (re-show the word, limited uses) | Working-memory compensation: turn heard (weak channel) into seen (strong channel) |
| Wrong spelling β funny wrong dish, correct letters kept | Errors stay playful; retries always shrink the problem |
| Knife Station: cut only when the moving line is in the zone | "Slow down for accuracy" β counters impulsive rushing |
| WAIT⦠/ NOW! hold calls | Go/no-go response inhibition (the core ADHD deficit) |
| No-cut orders (press B, never A) | Withholding as a win condition β impulse control framed as elite chef discipline |
| Knife Trust progression (wooden β stone β iron β gold β diamond β ten glowing cosmic tiers up to the Singularity Knife) | Identity-based motivation: the kitchen trusts you with sharper tools because you've shown control |
| Sharpening wind-down with breath cues | Disguised mindfulness/regulation practice |
| Persistent restaurant building, where every block grants a kitchen power | Creation-based reward with real in-game meaning (works where sticker charts don't) |
| Menu preview, order-progress dots, last-order warning | Visual schedule + predictable transitions |
| Grade bands + adaptive tiers | Right-sized challenge; no repetition of mastered material |
| Engine Check-in before each shift (π’ slow / π just right / π racing) | Alert Program-style arousal self-labeling, with matched micro-strategies (grounding breaths for a racing engine) |
| Move Break after the last order (jumping jacks, wall-sitsβ¦) | Intense physical movement β the best-evidenced ADHD regulation tool β built into the session structure |
| Mid-service Body Check pause (thirsty? bathroom? wiggly?) | Interoception practice: noticing body signals before they become accidents |
| First-Served memory quiz at night's end | Episodic working memory β recalling the sequence of your own evening |
| Phase Map strip (π βΊ π§Ί βΊ π³ βΊ πͺ βΊ β βΊ π§±) always on screen | Visual schedule: always know where you are and what comes next |
Press Select (or Tab) anywhere: first-try spelling %, hint usage,
pantry-run grab accuracy, WAIT-call success rate, no-cut success rate, and
cut precision β measurable movement on the skills above. Shift+R on the dashboard resets all progress
(keyboard-only, so kids can't trigger it).
Progress saves automatically in the browser (localStorage).
Intense physical movement is one of the best-evidenced regulation tools for ADHD. Consider a real-world "shift change": 10 jumping jacks or a hallway sprint before starting the next in-game day.
npm run dev # dev server with hot reload
npm run build # production build β dist/
npm test # builds, then plays a full game day headlessly (Playwright)The E2E test (scripts/smoke.mjs) walks every scene with keyboard input and
fails on any runtime error. It needs a Playwright Chromium
(npx playwright install chromium; on Linux you may also need
npx playwright install-deps).
Stack: Vite + Three.js + vanilla JS. No backend, no accounts, no data leaves the browser.
- Recipe Book β players author their own dishes with sentence templates (sentence-composition practice; combining is an on-ramp to composing).
- Chef gauges β hunger/hydration meters that prompt real-world body check-ins (interoception support).
- Camera-based movement breaks between services.
- More Dave the Diver-style systems: a dinner-rush serving phase with a Coins economy, hireable staff, and rare giant "boss ingredients" that need multi-stage cut sequences.
MIT β see LICENSE.


