Inspiration

Mercury—the Philosophical Serpent—was alchemy's strangest substance: a metal that behaves like water, splits, re-merges, and never stops moving. Its patron, Hermes, carries the Caduceus—two serpents entwined. This isn't a snake game. It's alchemy.

How I Built It React + Canvas API – no external libraries, pure 2D rendering requestAnimationFrame – 60fps game loop Devvit Web – runs inside Reddit posts Redis – backend leaderboard storage TypeScript – full type safety All game logic is self-contained in a single file, deployed via the Devvit CLI.

What I Learned Building games with Canvas 2D instead of game engines Managing physics systems (liquid wobble, splitting, merging) Working within Reddit's WebView constraints (CSP, no external scripts) Using Devvit's Redis API for persistent storage Rapid iteration with hot-reload development

Challenges Faced Challenge Solution Phaser import failing Switched to pure React + Canvas CSP blocking WebAssembly No external libraries, self-contained code Blank white page Manual DOM canvas mounting Mercury physics Implemented wobble, split, and merge logic Score persistence Devvit Redis sorted sets for leaderboard

The Result A playable, original game where you control a droplet of quicksilver. Navigate the day/night terminator, collect Sulphur and Salt, and transmute gold at the center sigil—all while managing your mass, splits, and sun exposure.

Scoring System Score=(Mass×10)−(Splits×5)−(Sun Exposure×2)

Play It Now Test it on Reddit: https://www.reddit.com/r/snake_of_mercury_dev/?playtest=snake-of-mercury

Built With

Share this project:

Updates