# The best programming games, ranked for learning

> The Zachtronics programming games ranked by what they teach programmers: TIS-100, Shenzhen I/O, EXAPUNKS, SpaceChem, Opus Magnum and more, in a sensible order.

For learning to think like a programmer, the **Zachtronics** games are the best there are, and the order matters. Ranked by how directly they train programming: **TIS-100, Shenzhen I/O and EXAPUNKS** (you write real assembly), then **SpaceChem, Infinifactory, Opus Magnum and MOLEK-SYNTEZ** (you program with spatial machines), then **Last Call BBS** (a grab bag). Factorio and Satisfactory train something different: whole systems.

## The ranking

| Rank | Game | What you program | Why it teaches |
| --- | --- | --- | --- |
| 1 | TIS-100 | Assembly for a grid of tiny nodes with one register each | Parallelism and message passing with almost nothing; brutal constraints |
| 2 | Shenzhen I/O | Microcontrollers in a made-up assembly, wired on a circuit board | Real-time I/O, state machines, and a printed datasheet to read |
| 3 | EXAPUNKS | Agents that move between hosts and edit files | Concurrency, files and processes, closer to real systems code |
| 4 | SpaceChem | Two waldos on a grid, in a visual language | Synchronization and pipelines, very hard late game |
| 5 | Opus Magnum | Arms on a hex grid | Optimization: cost, cycles and area trade off against each other |
| 6 | Infinifactory | 3D factory blocks | Spatial planning and timing; the friendliest start |
| 7 | MOLEK-SYNTEZ | Molecule assembly with emitters on a hex grid | A tighter, harder cousin of Opus Magnum |
| 8 | Last Call BBS | A collection of small games on a 90s PC | Variety; ChipWizard Professional is circuit layout |

Every game has **histograms**: after you solve a puzzle you see how your cycles, cost and size compare with everyone else's. That is the real teacher. Go back and optimize.

## What order to play them in

Not the ranking. Start with something you will enjoy so you keep playing. The cracked.guide Play track runs them alongside the reading, one at a time: TIS-100 from week 1, Shenzhen I/O from week 11, EXAPUNKS from 19, SpaceChem from 31, Infinifactory from 46, Opus Magnum from 64, then Factorio, MOLEK-SYNTEZ, Satisfactory and Last Call BBS, each with a checkpoint like "solve the first 12 puzzles". If you want the gentlest start instead, many players recommend Opus Magnum or Infinifactory first.

## What about the others?

Zachtronics also made **Eliza**, a visual novel with no puzzles, and solitaire collections; Jonathan Blow's advice (see [his advice](https://cracked.guide/learn/jonathan-blow-advice)) explicitly leaves out the visual novel. Zachtronics announced in 2022 that it was closing, and Last Call BBS was its final game. For systems thinking at scale, see [Factorio and Satisfactory for programmers](https://cracked.guide/learn/factorio-and-satisfactory-for-programmers). Prices for every game, including the bundle that covers all eight Zachtronics titles, are on the [gear page](https://cracked.guide/gear).

## Do games actually make you a better programmer?

On their own, no game teaches you to build software. What they do train is the core loop: understand a constrained machine, plan, test, debug, and then optimize against a measurable target. Played next to real work (an interpreter, Knuth's MIX exercises) they make that loop faster and more fun. [Why the path has a Play track at all](https://cracked.guide/blog/playing-zachtronics-as-homework).

## Questions

### What is the best Zachtronics game for programmers?

TIS-100 or Shenzhen I/O, because you write actual assembly code. EXAPUNKS is the most like real systems programming.

### Which Zachtronics game should I play first?

TIS-100 if you want pure programming, Infinifactory or Opus Magnum if you want the gentlest start.

### Is TIS-100 harder than Shenzhen I/O?

Many players find TIS-100 harder because each node holds so little code, though Shenzhen I/O's later puzzles are tough too.

---

Source: https://cracked.guide/learn/best-programming-games
cracked.guide: A free, dated 145-week path to getting genuinely cracked at programming.
