The Last Lantern: A 3D Halloween Game Built in RiveThe Last Lantern: A 3D Halloween Game Built in Rive
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
The Last Lantern - a full 3D Halloween game, built and running entirely inside one Rive file.
The candle is dying, and the graveyard is not empty. You wander a haunted graveyard in first person with a lantern, catch ghosts in your light, bring their souls to five jack-o'-lanterns to relight them, and survive the red-eyed wraith until you reach the church, before your candle burns out.
How it's built😍 - Rive CLI + coding agent: I directed my coding agent through the Rive CLI. It wrote the RML scene, the Luau game scripts and the WGSL shaders, verified every build with rive --verify, captured test frames headless and pushed straight to my Rive file. I played every build and steered each iteration (controls, difficulty, fog, the scare).
- GPU Canvas: the whole 3D world is drawn in real time with custom WGSL shaders: moonlight shadow map, triplanar textures, wind bending the dead trees, volumetric ground fog lit by the lantern and the moon, 4x MSAA and a filmic post pass.
- Scripting: Luau runs the game: first-person movement and collisions, ghost and wraith AI, soul capture, candle wax, havens, tutorial, sound, dawn ending.
- Data Binding: a view model drives the HUD (souls, lanterns, candle), the title, game-over and dawn screens, tutorial hints and keyboard input.
- State Machines: screen transitions and UI animations.
- Human touch in the Rive Editor: I reworked the title screen by hand (colors, title, How to Play layout).
- Blender: I modeled the graveyard (about 185,000 triangles), exported as a binary mesh the shaders draw directly.
Controls: hold the mouse to walk, move it left or right to turn, click a ghost to catch it, press FLARE to drive the wraith away. Arrow keys work too.
@rive_app
Post image
Post image
Post image
Anna's avatar
pro
• 2d
that's cool🔥
Rohan's avatar
A full 3D graveyard with first-person movement inside one Rive file is ambitious. How did you keep performance steady with the lantern light and the ghosts on screen together?
Blanco's avatar
Thanks! Mostly by keeping things simple. The whole graveyard is a single mesh drawn in one call, and the moon shadow is only rendered once since the moon never moves. The lantern light is just math in the shader, no extra shadow pass, so carrying it around is basically free. The...
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