How it uses Rive
• Rive CLI: the whole game is plain text in a repo (RML markup, Luau scripts and a WGSL shader). Every change is checked from the terminal (rive --verify, rive inspect, rive --test with 175 Luau tests, and 160 headless screenshots in English and Dutch), built with a coding agent as a pair programmer. CI signs every push with rive --publish and deploys it; every branch gets its own test link for phone tests.
• Luau: the rules engine (pure and tested) and a solver that proves every manor room can be cleared; tap-to-walk pathfinding; the stage that draws each room from character and prop artboard instances; the builder; Endless Night; the Lab's live demo running the real rules; players' monsters put together at runtime from 370 rendered parts; the brain behind the title's Jacks.
• Data binding: one Game view model is the contract between the .riv and the web page: progress, candy, community rooms, plays, clears and treats, roaming monsters, the Hall of Fame, invites and the language. Every text on screen is bound, which is how the EN/NL switch works.
• State machines: every character has layers for mood, facing, blink and costume; the screens are a state machine; cards pop in, wax seals stamp, jelly buttons squash and wobble; the Moody One's six faces.
• GPU Canvas (WGSL): the night itself. Tuck's lantern with soft shadows traced through the room's walls and furniture, candle tables, a moonbeam, the BOO! shock (a chromatic ring and a screen shake), iris transitions, rays and sparkles on a clear, Echo's afterimages, the title's fog and lightning, the dawn.
• Art: soft 3D clay, modelled and rendered in Blender by script, rigged in parts and animated in Rive; a UI kit of 3D panels and jelly buttons N-sliced in Rive.