ZX SpectrumBASIC · Z80 assemblyPhotograph supplied by the project.
Build real games. Learn what makes them work.
Explore different ideas, genres and ways to program across machines and languages.


Dodge meteors, crack a code, guide sheep home or time a jump. Each game explores different ideas and the character of its machine.
Start with The Basics: give instructions, remember a value and ask for input. No machine or language to choose yet.
Choose the machine or language that interests you. The Spectrum is one starting point; the C64, Amiga and NES have their own routes.
ZX SpectrumBASIC · Z80 assemblyPhotograph supplied by the project.
Commodore 64BASIC · 6502 assemblyPhoto: Evan-Amos · public domain.
Commodore AmigaAMOS · Blitz BASIC · 68000 assemblyAmiga 500 Plus · Photo: Sernot / Ubcule · public domain.
Nintendo Entertainment System6502 assemblyPhoto: Evan-Amos · public domain.
Lessons guide the work. Shared subjects help you open the ideas behind it, and follow them beyond one game, language or machine. Start with the question you have.
Explore how programs work: decisions, repetition, structure, numbers and bits. Pseudocode, diagrams and experiments keep the idea separate from a language’s syntax.
How can bits represent a number?Representation is an idea you can take to every system.

Explore chance, direction and movement through experiments you can change. Build a dice experiment, compare sample sizes, or turn coordinates into an aimed shot.
Explore chance and aimingHold right. Let go.
ResponsiveStopped
MarkerSlipperyStill moving
MarkerHeavyStopped
MarkerMake deliberate choices about how a game plays. Explore controls, movement and feedback, then test what changing one rule does to the experience.
Try the Game Feel playgroundA tiny sprite meets an eight-pixel colour cell. Follow the trade-off from the screen into the hardware that makes it happen.
Explore colour clash in the Vault
Shared subjects are useful places to enter or return to. They are not a compulsory course to finish before making a game.
See how the lessons use each machine’s character. These are captures from the current courses, rather than a promise that every route has the same coverage.
Commodore 64 · BASIC
Can you crack the code? Make a guess, read the clues and narrow the search.
Learn variables, decisions and repetition.
Explore Safe Cracker
NES · 6502 assembly
Can you time the jump? Read the controller, avoid the hazard and gather coins.
Learn controller input, movement and collisions.
Explore Dash
Commodore Amiga · 68000 assembly
Can you get the flock home? Dodge the traffic, cross the stream and fill the fold.
Learn hardware sprites, collisions and game states.
Explore Flock
Meteor Storm’s first lesson moves pixels across a byte boundary. A bit that leaves one byte must arrive in the next. That small idea is the beginning of the ship’s movement.
Start Meteor StormBefore 10000001 00000000 After 01000000 10000000
The rightmost bit crosses the boundary. Nothing gets lost.
New to assembly? Begin with Meet AssemblyNew to programming? Begin with The Basics. Have a machine in mind? Choose its route and find something you want to make.