Trick or Room: A Multiplayer Haunted Manor Puzzle GameTrick or Room: A Multiplayer Haunted Manor Puzzle Game
The network for creativity
Join 1.25M professional creatives like you
Connect with clients, get discovered, and run your business 100% commission-free
Creatives on Contra have earned over $150M and we are just getting started
🎃 Trick or Room
A cute-spooky puzzle game where every room you survive lets you build one that haunts someone else's night, and the monsters you design roam other players' rooms.
▶ Play it (phone or desktop): https://trickorroom.canvastools.nl ⭐ Judges, short on time? https://trickorroom.canvastools.nl/?judge opens everything: the whole manor, Create's tools, every costume and endless candy, on saves of its own.
You're Tuck, a trick-or-treater in a bedsheet, sneaking through a haunted manor. Every room is a small turn-based puzzle: monsters move only when you move. Gloop patrols, Mumbles the mummy chases, Flit the bat bounces off the walls and Echo copies your every step. Push pumpkins onto plates, flip levers, lure Mumbles behind a wall, grab the candy and reach the door, in par if you can.
Clearing a room is the reward: its pieces unlock in your room builder. Build a room, prove it can be cleared, publish it, and the manor slips it into other players' nights. Their treats fill your candy jar while you're away, raise your haunter rank and buy Tuck costumes.
Play on and Create opens up: the Object Workshop for furniture of your own, then the ultimate reward, the Monster Lab. Pick a body, a face, extras, colours, a pattern and a move, and watch it act out its behaviour. Let it roam, and it turns up as a guest in other players' rooms.
On the title, the two O's of ROOM are my own jack-o'-lantern, rigged and animated by hand in the Rive Editor: the Watcher turns his head after your pointer in semi-3D, and the Moody One shows how he feels. Tap him and he laughs, fuss over his brother and he gets jealous, leave and he sulks, wait and he dozes off.
Also: Endless Night (how many rooms before dawn?), a Hall of Fame, invites, and the whole game in English and Dutch.
Built in about 23 hours of work, in under three days: from the first prompt on Thursday afternoon to this entry on Sunday morning.
Along the way I also worked out a variant for Tilburg Law School (Tilburg University): the same game as a way to learn, with its own cast of students. It isn't built yet, but it shows where this can go: Trick or Room as a template that can be re-themed and reused.
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.
The human touch • The concept and the reward loop are mine: rooms that haunt other players' nights, the Monster Lab as the ultimate reward, players' monsters roaming other players' rooms. • Decided on a real phone: isometric and landscape versions were built, tested and rejected; the straight view, tilted 52°, was picked from three; the Lab was redone when its chips proved too small. • Art direction by hand: the UI style (a mix of three proposals), the candy corn, the hero's name, and my own jack-o'-lantern in the logo. • Hand-animated in the Rive Editor: the Jacks' rig (ribs on bones, a joystick for the semi-3D turn), the Moody One's faces, the gaze. The film's Human Touch part shows the recordings. • Rooms designed by hand, then checked against a solver that plays the real rules.
Features used: the Rive CLI and GPU Canvas, plus Luau scripting, data binding and state machines.
@rive_app #rivehalloweenchallenge
Math's avatar
Update on the doors...
Umar's avatar
Good work
Back to feed
The network for creativity
Join 1.25M professional creatives like you
Connect with clients, get discovered, and run your business 100% commission-free
Creatives on Contra have earned over $150M and we are just getting started