picogame
Demos ▾
The two scrolling demos are the fastest way to learn the big-map workflow — load one and inspect how its World size + camera are set up.
Save writes the file you opened under its own name (game.json for a new game or an old-format import); Save as… picks another, and Save keeps using it.
Story ▾
Named zone scripts ({"script": "name"}) run def name(d) from story.py, a Python file next to game.json that you (or your coding agent) own. Bodies typed here are written to story.py on the first Save and travel with Play; an existing story.py is never overwritten. Declarative zones (say / ask / goto data) need no code at all. Level effects (the gate-opening rules) are edited in the Level panel — click empty map space.
Switching scripts or closing this panel saves; Save does too. Runs with the runner's globals in scope: view, player, goto(), apply_effects()
Build ▾
Save writes game.json — or the file you opened, under its own name (Save as… picks another) — the one file you edit, share and copy to the board; with a folder chosen it also writes the .pal8 art next to it. Ship with tools/scene_build.py build --mpy, or run from game.json as is.

Build a picogame level

  1. Paint ground: pick the Paint tool, click + Colour tileset (no art needed) or + Tileset PNG, choose a tile, drag on the map.
  2. Make it scroll: in the Level panel (Select tool) set World size bigger than one screen — try the 3× wide or 2×2 screens preset. The dashed white box shows one screen.
  3. Place a sprite (import a PNG, or + Colour sprite for a placeholder block) and name one player (Select tool → name field).
  4. Camera: in Select (nothing selected) set follow → player to make it scroll.
  5. Save writes game.json — the whole game, plus the .pal8 art the board reads. Copy those next to your code.py on CIRCUITPY, or press ▶ Try in playground to run it right now.

Best way to learn scrolling: load a scrolling demo below and inspect how its World size + camera are set up.

Pan: hold Space or middle-drag. Zoom: Ctrl+wheel or +/−. Undo: Ctrl+Z. Press ? anytime for all shortcuts.