Learn 2D game development from first principles.
For software engineers who have never made a game.

How the lessons work
- Play first
- Each lesson opens with an interactive demo. Change sliders, toggle features, and feel the concept before reading the theory.
- Built for engineers
- “For software engineers” boxes map game ideas onto things you already know: pure functions, state, events, SLOs.
- Cumulative
- Every lesson reuses earlier ones. By world 7 the capstone game uses all of them at once.
- Engine-ready
- “In Godot” boxes show where each concept lives in a real engine.
The route
22 stops on one line. Finished stops turn amber.
- World 1: Foundations
- World 2: Motion & Math
- World 3: Physics & Collisions
- World 4: Visuals & Worlds
- World 5: Game Architecture
- World 6: Gameplay Systems
- World 7: Polish & Shipping
Seven worlds, every lesson
1
Foundations
What a game is, and the loop that runs it.
2
Motion & Math
Vectors, velocity, input and angles: the maths of moving things.
3
Physics & Collisions
Detect when things touch and make them react.
4
Visuals & Worlds
Sprites, tilemaps and cameras.
5
Game Architecture
Organising code: scene graphs, state machines, events.
6
Gameplay Systems
Randomness, procedural generation and AI.
7
Polish & Shipping
Game feel, UI, audio, and your first complete game.
How the curriculum was put together
The order follows the path used by university intro courses such as Harvard’s CS50 Games and community college game programming syllabi: game loop → delta time → collision detection & response → sprites and animation → maps → state machines → AI, plus the core patterns from Robert Nystrom’s Game Programming Patterns (game loop, update method, component, observer, state) and the “game feel / juice” practices popularised by indie developers. Everything is taught in plain TypeScript on an HTML canvas first, so nothing is hidden behind an engine.