◂ ALL GUIDES
FIELD GUIDE · 03

HOW TO MAKE A GAME

THREE FUNCTIONS · ONE BURNER · SHIP IT
A

The shape of a cart

init / update / draw
// a whole cart is three functions function init() { state.x = 40; state.score = 0; } function update() { // 60×/sec if (fb.btn('right')) state.x++; if (state.x > 80) fb.score(1); } function draw() { // paint a frame fb.cls(0); fb.rect(state.x, 60, 8, 8, 3); fb.print('GO!', 8, 8, 3); }

Three functions and you've got a game. The console calls init once, then runs update and draw sixty times a second on the DMG screen.

fb.btn(dir)is a button held? up/down/left/right/a/b
fb.cls(c)clear the screen to a tone
fb.rect / fb.sprdraw a box or a sprite
fb.print(t,x,y,c)stamp text on the glass
fb.score(n)feed the Hall of Fables
fb.shake/flashjuice — hits, deaths, wins
B

Burn it to a cart

CART BURNER
  1. 1

    Open the burner

    Find CART BURNER on the unit and paste your init / update / draw in. No build step, no toolchain — it compiles in the browser.

  2. 2

    Hit burn

    The cart appears on your shelf with a generative starburst label seeded by its name, and it's saved to that device in localStorage. It's yours, it persists, it's playable.

  3. 3

    Bad code can't break the console

    A cart that throws gets caught and shown a green crash screen — never a dead console. Fix it, burn again.

CART CRASHED TypeError: state.y is not defined · draw() ▸ BACK TO BURNER
C

Don't want to code? Dream it.

OR SHARE WHAT YOU MADE

Type a sentence into Dream-a-Cart"a fishing game with a shark" — and a real, compile-tested cart gets written and burned for you. Free local engine always on; optional LLM upgrade if you deploy the dream service. (See Guide 02.)

📡

When your cart is slotted, a share bar appears — copy a play link or post it to X. Friends who open it get your cart auto-booting with a SPECIAL DELIVERY banner and a BURN ONE BACK button.

FABLE FIELD GUIDES · 100% CODE-DRAWN · BACK TO THE RACK