Unnamed project
A DSL and interpreter for player scripts in a simple game, also dogfooded for the game's enemy AI. After finding a behavior-tree dependency "too easy," the author built a custom pipeline: typed builders split into an untyped AST and a typed IR, then a TypeScript schema feeding a TypeScript codegen step that emits .ts/.rs build artifacts. Described as a fun two-week side project, not counting time spent reading PL literature.
What it addresses
The author wanted player scripts (and enemy AI behavior) to be possible in a simple game, but hand-rolled typed builders were stateful and annoying, and a hand-written typed IR was highly repetitive, motivating a DSL plus schema-driven codegen.
Shared over time
Each entry reflects what was shared on that date. Details and invitations may have changed since then.
Unnamed project
A DSL and interpreter for player scripts in a simple game, also dogfooded for the game's enemy AI. After finding a behavior-tree dependency "too easy," the author built a custom pipeline: typed builders split into an untyped AST and a typed IR, then a TypeScript schema feeding a TypeScript codegen step that emits .ts/.rs build artifacts. Described as a fun two-week side project, not counting time spent reading PL literature.
Problem: The author wanted player scripts (and enemy AI behavior) to be possible in a simple game, but hand-rolled typed builders were stateful and annoying, and a hand-written typed IR was highly repetitive, motivating a DSL plus schema-driven codegen.
Posted by @Frotag · Builder identity supported: @Frotag · Original comment ↗