Most games ask you to win something, but in Lantern River you just watch. You stand by a river at night, and when you click, a paper lantern starts to drift away toward the horizon. That’s the whole game, with no score, no timer, no goal and no interface.
Open it full screen → Click or tap anywhere on the river to release a lantern.
What is on the screen#
I drew the river in perspective, so lanterns start large near you and shrink as they float toward the horizon. Plenty of them are square or round paper lanterns, with rarer lotus flowers and little candle boats mixed in, and every lantern has a coloured glow that reflects in the water. Above them there are twinkling stars, slowly drifting constellations and a moon that goes through phases.
The physics is gentle. Lanterns follow the current, drift a little and bump into one another, and some of them flicker out or slowly sink. The idea comes from comfort games, where you’re there to enjoy the atmosphere and to watch more than to interact (nothing you do can be lost).
How it is built#
TypeScript and PixiJS 8 with WebGL rendering, built with Vite. I split the code into systems for the river, the lanterns and the sky, and kept the colours and timings in one configuration file. I’d like to add ambient sound through the Web Audio API, but that part isn’t built yet.