Self-study syllabus · free & open courses only · links checked 23 Aug 2026
From first pixel to shipped game.
Games are the hardest place to learn programming badly and the best place to learn it well: the feedback is instant, the failure modes are visible, and nothing hides behind an abstraction for long. Every course below is free — Harvard publishes a complete game-development course, the clearest graphics text in the field is a website, and the definitive book on game architecture reads in a browser. What is usually missing is order and a finish line. This page supplies both: eight milestones, each ending in something playable.
Total effort
~810 hoursestimates; your mileage will vary
Pace
~15 monthsat 12 h/week · ~9 months at 20 h/week
Course fees
₹0certificates, where offered, are optional and paid
Kit
Any laptopa discrete GPU helps from v0.6; it is not required
The road, to scale
Each block is sized to its weeks. Click a block to jump to that milestone.
Game development punishes two habits in particular. These rules exist because of them.
Finish, then start. An unfinished game teaches you the first 40% of game development, repeatedly. Scope every project until you are slightly embarrassed by it, then finish it.
Type every line. Never paste from a tutorial. In games the bug is usually in the line you did not read.
Build the game, not the engine. Writing your own engine is a legitimate goal, but it is a different goal. Until v0.7, use somebody else's.
Ship publicly. Every finished thing goes on itch.io. A public shelf is the only scope discipline that reliably works.
Watch someone play in silence. Twenty minutes of a stranger playing tells you more than a month of your own opinion.
One engine, deeply. Engine-hopping feels like progress and is not. Depth transfers; breadth does not.
v0.1
Toolbelt
weeks 1–2 · ~20 h
Get the tools out of the way — shell, editor, version control — and install one engine, so you never lose an evening to setup again.
Learn Git Branchinginteractive~4 hBranching and merging as a puzzle game. Game repositories go binary-heavy and messy early — you will need this.
Godot — Getting StartedGodot docs~4 hInstall it, open the editor, run the tour. Free, small, no account, and it exports everywhere.
Build
chore: initialize game-log
A public repository called game-log with a README. One commit per study session from here on — and every prototype gets its own folder, however small.
Done when
v0.2
Programming foundations
weeks 3–12 · ~110 h
Learn to program properly before you learn to program games. Most people stuck on game development are actually stuck on programming.
CourseTimeWhy it's here
CS50x — Introduction to Computer ScienceHarvard~80 hC, memory, pointers, data structures, algorithms. The memory weeks matter most here — games are one of the last fields where allocation still shows up in your frame time.
Godot — GDScript basicsGodot docs~20 hA Python-like language you can be productive in inside a week. Learn one engine language well before shopping around.
Pygame documentationPygame~10 hOptional. If CS50 leaves you wanting raw practice, Pygame hands you a loop and a surface and nothing to hide behind.
Build
feat: pong, from an empty file
Pong with no engine help beyond a draw call — paddles, ball, collision, score, restart. Write it twice: once in Python with Pygame, once in GDScript.
Done when
v0.3
Finished small games
weeks 13–20 · ~90 h
Finish things. The habit that separates people who ship games from people with forty prototypes is scope discipline, and it is learned early or not at all.
CourseTimeWhy it's here
CS50's Introduction to Game DevelopmentHarvard~60 hTwelve games rebuilt from scratch — Pong, Flappy, Breakout, Match-3, Zelda, Mario, Angry Birds, Pokémon — in LÖVE and Unity. The best structured game course that is genuinely free.
raylib examplesraylib~15 hA tiny C library with hundreds of readable examples. Ideal when you want to see how a feature works with no engine in the way.
itch.ioplatform~15 hNot a course — a habit. Publish every finished game here, however small. A public shelf changes how you scope.
Build
release: three finished games on itch.io
Three complete games with a title screen, a lose state, a restart and a downloadable build. Complete beats ambitious — a finished Breakout teaches more than an abandoned RPG.
Done when
v0.4
Engine fluency
weeks 21–30 · ~110 h
Go deep on one engine rather than shallow on three. Depth transfers between engines; breadth does not.
CourseTimeWhy it's here
Godot documentation — step by stepGodot docs~40 hScenes, nodes, signals, resources, the scene tree. Godot rewards reading the manual properly; most of its power is in composition.
Unity LearnUnity~40 hTake this instead of the Godot track if you are aiming at industry jobs or mobile. Free pathways: Junior Programmer, then Creative Core.
Catlike Coding tutorialsJasper Flick~20 hThe deep end of Unity — meshes, procedural generation, rendering. Rigorous, free, famously well written.
Unreal Engine learningEpicrefThe third option. Choose Unreal only if you are aiming at AAA or high-fidelity 3D; the curve is real.
Unity ManualUnityrefReference, not reading. Learn to search it well.
Build
feat: a vertical slice, one level deep
One polished level of a game you would actually want to play — full loop, placeholder art but final layout, tuned controls. Not a whole game. One level, finished properly.
Done when
v0.5
Maths, physics and feel
weeks 31–38 · ~90 h
The maths a game needs is small, specific and unavoidable: vectors, matrices, interpolation, and integration over a timestep.
CourseTimeWhy it's here
The Nature of CodeDaniel Shiffman · free book~35 hVectors, forces, oscillation, particle systems, autonomous agents. Free to read in full, and the best on-ramp to simulation there is.
Gaffer On GamesGlenn Fiedler~25 hFix Your Timestep, integration basics, and the networked-physics series. The reference for why your physics misbehaves at different frame rates.
Red Blob GamesAmit Patel~30 hInteractive explanations of pathfinding, A*, hex grids and noise. Read them with the sliders — that is the point.
Build
feat: it finally feels right
Take your v0.4 slice and tune it: fixed timestep, coyote time, input buffering, camera lerp, screen shake, easing on every transition. Same game, transformed.
Done when
v0.6
Graphics and shaders
weeks 39–48 · ~120 h
Understand the pipeline underneath the engine — what a draw call is, what the GPU does with it, and how to write the small programs that run per pixel.
CourseTimeWhy it's here
LearnOpenGLJoey de Vries~50 hThe clearest modern graphics course anywhere, and free. Getting Started through Advanced Lighting; PBR if you want it.
The Book of ShadersPatricio Gonzalez Vivo~25 hFragment shaders from first principles, live-editable in the page. Where shader intuition actually comes from.
Scratchapixelfree~25 hThe maths under rendering — rasterisation, ray tracing, shading models — derived rather than asserted.
MIT 6.837 Computer GraphicsMIT OCW~20 hLectures and assignments if you want the university treatment. Do the assignments or skip the course.
Build
feat: shaders written, not downloaded
A small renderer of your own — spinning lit mesh, texture, camera — plus five original shaders in your engine: dissolve, outline, water, hologram, and one of your own design.
Done when
v0.7
Architecture that survives
weeks 49–56 · ~90 h
Small games forgive bad structure. The game you actually want to make will not. Learn the patterns the field converged on, and why it did.
CourseTimeWhy it's here
Game Programming PatternsRobert Nystrom · free book~30 hComponent, state machine, object pool, event queue, service locator, update method. Free in full, and the single most useful book on this list.
Handmade HeroCasey Muratori~40 hA complete game written from scratch on stream — no engine, no libraries. Watch selectively: platform layer, memory arenas, the debug system. It rewires how you think about dependencies.
GDC Vault — free talksGDC~20 hPostmortems and technical talks from people who shipped. Search for games you admire and watch what went wrong.
Build
refactor: it survives its own success
Refactor your vertical slice onto a real architecture — data-driven entities, a decoupled event system, saved state, and a debug overlay you can toggle inside a release build.
Done when
v0.9
Ship, playtest, iterate
weeks 45–68 · alongside · ~60 h
Runs in parallel from v0.6 onward. Shipping is a skill practised separately from making, and playtesting is the only reliable source of truth about your game.
CourseTimeWhy it's here
GDC Vault — free talksGDC~20 hSearch “playtesting” and “postmortem”. Learn how studios run tests before you run yours badly.
itch.ioplatform~20 hDevlogs, jams, and a page that sells the game in one screenshot. Enter at least one game jam.
Godot — exporting and deploymentGodot docs~20 hExport templates, platform quirks, build size. Automate this early; manual builds are where release-day bugs live.
Build
chore: release pipeline
A repeatable build: one command produces versioned builds for two platforms, and a devlog entry goes out with each release.
Done when
v1.0
Capstone
weeks 57–68 · ~120 h
One game, finished, public, and played by strangers. This is the portfolio piece — the only artefact that reliably gets a game programmer hired.
CourseTimeWhy it's here
Your engine's manualreference—No new courses. You are building now; the manual is a lookup, not a curriculum.
itch.iorelease—Ship here first. Page, screenshots, a GIF, an honest description, and a downloadable build for two platforms.
GDC Vault — free talksGDCrefWatch a postmortem of a game the size of yours before you start, and another after you ship.
Build
release: v1.0
A finished game of deliberately modest scope — two to four hours of play, or twenty minutes done extremely well. Trailer, itch page, and a written postmortem in your game-log.
Done when
Reference shelf
Not part of the sequence. Reach for these when a specific need appears.
ResourceUseWhat it is
Game Programming Patternsfree bookrefKeep it open while you refactor. The Component and Event Queue chapters earn their keep repeatedly.
Red Blob GamesinteractiverefWhen you need pathfinding, hex grids, noise or line-of-sight and want to actually understand it.
BevyRustrefIf you take the Rust route later, Bevy is the ECS-first engine worth knowing about.
LearnOpenGLfreerefStays useful long after v0.6 — the advanced lighting and PBR chapters are reference material.
GDC Vault, free sectiontalksrefThe industry thinking out loud. Postmortems especially — honest in a way marketing never is.