Learn Programming by Building Retro Games
Still teaching the world to code, 40 years later.
No experience required. Start with BASIC on the Commodore 64 — build your first game in Week 1. Weeks 1–8 carry you from fundamentals to hybrid BASIC/assembly; the new Transition course shows exactly how BASIC maps to machine code before you dive into full 6502 assembly. Learn by making things work, with modern Docker toolchains for zero-setup builds.
Real Games. Real Hardware. Real Learning.
Hands-on lessons, real hardware concepts, and the magic of making pixels dance.
Build Real Games
Start with simple motion and colour in BASIC, then grow into complete games. Later, dive into sprites and tighter control with assembly.
Authentic Hardware
Learn the actual chips: VIC-II, SID, PPU, Copper. Understand cycle timing, memory maps, and hardware tricks.
Modern Toolchain
Docker-based development environment with cross-assemblers and emulators. One command to build and test. Works on macOS, Linux, and Windows.
Start Simple, Build Amazing
Every journey begins with a single instruction. Here's your first C64 magic:
REM Change the C64 border colour POKE 53280,2 REM red REM That's it. The border is now red. REM You just spoke to the VIC-II directly.
100% Open Source. Forever Free.
This project is being built in the open. Watch it grow, contribute your own lessons, or fork it and make it yours. The knowledge belongs to everyone.
All lessons are free and open source. If you find value in this project, consider supporting its development.