Expand description
Narrative scoring and thread management for fabula.
Provides the GM’s evaluation toolkit — scoring signals that tell the MCTS evaluation function whether a candidate action improves the narrative.
§Research foundation
- Nelson & Mateas (2005) “Search-Based Drama Management” (AIIDE 2005)
— GM as optimizer with quality function over narrative states. This crate
IS that quality function. The
scorermodule implements the composite evaluation from signals to score. - Schulz et al. (2024) “Narrative Information Theory” (arXiv:2411.12907)
— Five measures (Complexity, Pivot, Predictability, Suspense, Plot Twist).
pivotimplements the Pivot measure via Jensen-Shannon Divergence. - Booth (2009) “The AI Director: Left 4 Dead’s Approach to Procedural
Intensity” — Pacing via trajectory sampling.
tensionclassifies numeric trajectories (Rising/Falling/Plateau/Peak/Valley). - Ely, Frankel, Kamenica (2015) “Suspense and Surprise” — Trajectory matters more than absolute value; informs tension scoring.
- Kowal, Mary Robinette. MICE Quotient (Writing Excuses) — Narrative
threads open and close; well-formed stories close in reverse order
(FILO).
threadvalidates this nesting property.
§Modules
thread— Thread lifecycle management (MICE-style open/close tracking, FILO validation)tension— Numeric trajectory sampling (is tension rising/falling/plateaued?)pivot— Event distribution shift detection (Schulz 2024 JSD pivot measure)scorer— Composite narrative quality score for MCTS evaluation
§Design principles
- Scoring, not patterns. The GM needs scoring signals, not more patterns. The engine finds matches; this crate evaluates narrative quality.
- DataSource-agnostic where possible.
ThreadTrackerandPivotDetectorwork on engine output (TickDelta, SiftEvent).TensionTrackeraccepts caller-provided samples, not DataSource queries. - Research-backed. Each module cites its academic foundation.