Inspiration
I was mid bed-rot when I came across a reel of the immortal snail meme (pls google if udk). I wondered if my lazy self would even get up and move if the snail suddenly appeared at my bedside...
That's when I had the idea to make the immortal snail a reality to test this theory.
What it does
To incentivise all doomscrollers to get up and touch some grass, we created The Snail. In our game, you can send virtual snails that crawl at the speed of a...snail (duh) to your friends' houses.
How to play
- You can only release from your current GPS location, incentivising you to travel further or closer to your friends for different strategies.
- When an enemy snail is after you, intercept it before it reaches your home to neutralize the threat!!
- The quicker you intercept, the more rewards you get!
Game Economy
- Release your snail. If your invasion is successful, you get it back (and also get 100 salt)! If not, too bad... goodbye snail...
- Intercepting an enemy snail rewards you with their snail. The earlier you intercept it, the higher your salt reward.
- Your base passively generates salt to keep the action going!
- Trade 100 salt for a snail.
How we built it
- Frontend: React, TypeScript, Tailwind CSS, Mapbox GL JS.
- Backend: Supabase (PostgreSQL + PostGIS).
- Shared logic: TypeScript shared module (shared/) for game constants and snail movement math.
Challenges we ran into
A lot... it sends a chill down my spine... 🐌
(Had to get creative with the way we demo and showcase since its a geo-location focused game)
Accomplishments that we're proud of
- We did it!
- I love seeing snails move about on the map. I hope you do too. 🐌
What we learned
- Code smart, not complicated: Instead of heavy real-time server updates, we implemented client-side interpolation to calculate snail positions along encoded polylines based on a 48-hour timestamp.
- What makes a game fun: Through some experimentation, we realised hiding the projected routes of incoming snails created a more engaging and skill-based interception experience.
- I guess geolocation isn't so scary after all: We learned how to use PostGIS within Supabase to handle complex real-world distance checks.
- The frontend makes the experience: Yes, the gameplay must work seamlessly, but what you design also must have its own character!!!
What's next for The Snail
- Different types of snails with special abilities.
- Special powers to boost your snail and disrupt the journey of enemy snails.
- Ability to place tower defences to ward off enemy snails.
PS For demo purposes, we spoofed our locations and sped up snails so you get to enjoy the full experience within the time and location constraints.
Built With
- mapbox
- react
- supabase
- tailwind
- typescript
Log in or sign up for Devpost to join the conversation.