111 lines
4.2 KiB
YAML
111 lines
4.2 KiB
YAML
schema: 1
|
|
id: systemic-design
|
|
title: Systemic Design
|
|
pitch: Learn to build a rule-driven game engine by writing the systems that make its rules compose.
|
|
visibility: public
|
|
gating: sequential
|
|
root: /home/user/systemic-design-course
|
|
tracks:
|
|
- { id: rust, label: Rust }
|
|
- { id: ts, label: TypeScript }
|
|
mentor: mentor/SKILL.md
|
|
source: { kind: authored }
|
|
modules:
|
|
- id: m00
|
|
title: "The Rewrite Trap"
|
|
lessons:
|
|
- id: m00-lesson
|
|
title: "The Rewrite Trap"
|
|
type: text
|
|
file: "course/00-rewrite-trap/lesson.md"
|
|
- id: m01
|
|
title: "Handles and order of play"
|
|
lessons:
|
|
- id: m01-lesson
|
|
title: "Handles and order of play"
|
|
type: text
|
|
file: "course/01-handles/lesson.md"
|
|
localCommand: "node tools/start-module.mjs 01 <your-workspace>"
|
|
- { id: m01-scenarios, title: Scenarios, type: text, file: "course/01-handles/scenarios.md" }
|
|
- id: m02
|
|
title: "The action queue, depth-first"
|
|
lessons:
|
|
- id: m02-lesson
|
|
title: "The action queue, depth-first"
|
|
type: text
|
|
file: "course/02-action-queue/lesson.md"
|
|
localCommand: "node tools/start-module.mjs 02 <your-workspace>"
|
|
- { id: m02-scenarios, title: Scenarios, type: text, file: "course/02-action-queue/scenarios.md" }
|
|
- id: m03
|
|
title: "Deferred death"
|
|
lessons:
|
|
- id: m03-lesson
|
|
title: "Deferred death"
|
|
type: text
|
|
file: "course/03-death-step/lesson.md"
|
|
localCommand: "node tools/start-module.mjs 03 <your-workspace>"
|
|
- { id: m03-scenarios, title: Scenarios, type: text, file: "course/03-death-step/scenarios.md" }
|
|
- id: m04
|
|
title: "Interceptors and \"trigger twice\""
|
|
lessons:
|
|
- id: m04-lesson
|
|
title: "Interceptors and \"trigger twice\""
|
|
type: text
|
|
file: "course/04-interceptors/lesson.md"
|
|
localCommand: "node tools/start-module.mjs 04 <your-workspace>"
|
|
- { id: m04-scenarios, title: Scenarios, type: text, file: "course/04-interceptors/scenarios.md" }
|
|
- id: m05
|
|
title: "Behavior as data and Assemble"
|
|
lessons:
|
|
- id: m05-lesson
|
|
title: "Behavior as data and Assemble"
|
|
type: text
|
|
file: "course/05-assemble/lesson.md"
|
|
localCommand: "node tools/start-module.mjs 05 <your-workspace>"
|
|
- { id: m05-scenarios, title: Scenarios, type: text, file: "course/05-assemble/scenarios.md" }
|
|
- id: m06
|
|
title: "Grid, lexer and parser"
|
|
lessons:
|
|
- id: m06-lesson
|
|
title: "Grid, lexer and parser"
|
|
type: text
|
|
file: "course/06-parser/lesson.md"
|
|
localCommand: "node tools/start-module.mjs 06 <your-workspace>"
|
|
- { id: m06-scenarios, title: Scenarios, type: text, file: "course/06-parser/scenarios.md" }
|
|
- id: m07
|
|
title: "Resolving rules: NOT, identity, meta-nouns"
|
|
lessons:
|
|
- id: m07-lesson
|
|
title: "Resolving rules: NOT, identity, meta-nouns"
|
|
type: text
|
|
file: "course/07-rule-resolution/lesson.md"
|
|
localCommand: "node tools/start-module.mjs 07 <your-workspace>"
|
|
- { id: m07-scenarios, title: Scenarios, type: text, file: "course/07-rule-resolution/scenarios.md" }
|
|
- id: m08
|
|
title: "Push chains: validate, then commit"
|
|
lessons:
|
|
- id: m08-lesson
|
|
title: "Push chains: validate, then commit"
|
|
type: text
|
|
file: "course/08-push-chains/lesson.md"
|
|
localCommand: "node tools/start-module.mjs 08 <your-workspace>"
|
|
- { id: m08-scenarios, title: Scenarios, type: text, file: "course/08-push-chains/scenarios.md" }
|
|
- id: m09
|
|
title: "The turn pipeline"
|
|
lessons:
|
|
- id: m09-lesson
|
|
title: "The turn pipeline"
|
|
type: text
|
|
file: "course/09-turn-pipeline/lesson.md"
|
|
localCommand: "node tools/start-module.mjs 09 <your-workspace>"
|
|
- { id: m09-scenarios, title: Scenarios, type: text, file: "course/09-turn-pipeline/scenarios.md" }
|
|
- id: m10
|
|
title: "SpellGrid"
|
|
lessons:
|
|
- id: m10-lesson
|
|
title: "SpellGrid"
|
|
type: text
|
|
file: "course/10-spellgrid/lesson.md"
|
|
localCommand: "node tools/start-module.mjs 10 <your-workspace>"
|
|
- { id: m10-scenarios, title: Scenarios, type: text, file: "course/10-spellgrid/scenarios.md" }
|