Buildcraft Is a Compiler Problem
2 days ago
- #ARPG systems
- #compiler design
- #game engineering
- Treating ARPG buildcraft as a compiler pipeline helps manage combinatorial complexity.
- Authoring data should remain declarative, emitting facts rather than executable code.
- Active skills and supports compile into stat modifier and behavior emission rows with provenance.
- Distinguish between entity-scoped and skill-specific modifications to prevent unintended inheritance.
- Behavior changes are represented as shape emissions, not code, stored in a skill cache for runtime use.
- Dirty domains enable incremental compilation, limiting rebuilds to affected entities.
- Tag-based applicability filtering avoids a large skill/support identity matrix.
- Rule rewrites are separate from stat math, handling special cases like "spell damage applies to melee."
- Resolution uses compiled facts from caches, removing the need for support IDs in hot paths.
- Fixed caps in behavior caches bound weirdness and keep the system manageable.
- Pipeline stages include authored data, row emission, dirty marking, cache rebuilding, and combat consumption.