Lucas WintherandClaude Opus 5.5 0700cac492
CI / Tool tests and sync-check (push) Successful in 13s
CI / Verify references (all modules, Rust and TS) (push) Successful in 1m29s
CI / Coupling audit on references (push) Successful in 13s
CI / Site build (push) Successful in 22s
CI / Naive engine tests (Module 0) (push) Successful in 32s
docs: accuracy pass
Re-verify Teikari article quotes and GDC speaker, soften unsourced
claims (lessons 01, 06, 07, 10), add course-simplification bullets to
lesson 07's differs box, qualify OPEN obstruction wording in research,
and add tools/check-links.mjs (report-only) with npm run check:links.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-29 18:52:18 +01:00
2026-10-29 18:52:18 +01:00
2026-10-29 18:52:18 +01:00
2026-10-29 05:15:23 +01:00
2026-10-29 00:07:14 +01:00
2026-10-29 18:52:18 +01:00
2026-10-29 18:52:18 +01:00
2026-10-29 05:13:44 +01:00

Systemic Design Course

A free, hands-on course on systemic game design. You learn by rebuilding the rules machinery of two games, then extending it:

  • Part I: Hearthstone (cards, zones, triggers, death phases, auras, text assembly)
  • Part II: Baba Is You (rules as pushable text, parsing, movement, win/lose)
  • Part III: SpellGrid, a small original game that combines both systems

Every module follows the same beats: Observe, Predict, Spec, Build, Name it, Expansion Drop, Further reading. The Expansion Drop is the test of your design: you add new content without touching the engine.

Two paths

  • Designer path: read the lessons and scenarios, predict outcomes, and reason about the design.
  • Builder path: also make the tests pass in your own engine.

Mentor path

Prefer a Socratic partner? Install the mentor skill and let your AI agent guide you without writing your code.

Two tracks

Builder path exercises exist in Rust and TypeScript. Both tracks have identical test names, matching the scenarios in each module's scenarios.md.

Quick start

node --version        # Node 24 for the course tooling
npm run test:tools    # tooling tests
npm run check         # test names agree across Rust, TS and scenarios
node tools/start-module.mjs 01 path/to/your/workspace

start-module copies a module's tests for your track (from your workspace's .course.json) and refuses to start a module if you have not yet taken the previous one. Module 00 uses the naive-engine/ project and is not started this way.

Other tools: tools/coupling-audit.mjs <workspace> (engine code must not name specific cards or nouns), tools/expansion-check.mjs <workspace> <baseRef> (an Expansion Drop must change content only), tools/verify-references.mjs [NN] (reference solutions pass the tests).

Licence

MIT, for both prose and code. See LICENSE. The course is and stays free.

Disclaimer

Not affiliated with Blizzard or Hempuli. See the disclaimer.

S
Description
No description provided
Readme MIT
747 KiB
0 Stars 1 Watchers 0 Forks
Languages
Rust 51.7%
TypeScript 42.5%
JavaScript 5.6%
MDX 0.2%