Inspiration

Inspired by Reddit’s voting system and the "addictive" gameplay of Piano Tiles, Upvote Tiles turns upvotes and downvotes into a fast-paced, daily challenge.

What it does

Upvote Tiles is a rhythm-based game where tiles fall from the top of the screen. Players must “upvote” the correct tiles to score points, avoid downvote tiles, and prevent any upvote tiles from hitting the bottom. The game gets progressively faster, testing your reflexes and attention. Perfect for daily play and friendly competition among redditors!

How we built it

We built Upvote Tiles using Devvit Web with TypeScript and Vite for the client, creating a responsive, mobile-friendly experience. Tiles, scoring, and speed mechanics are handled entirely in the client, while the server uses Devvit APIs to save user progress and enable playtesting on Reddit.

Challenges we ran into

One of the biggest challenges was making the game feel responsive on both desktop and mobile while maintaining precise tile timing. Another challenge was balancing the frequency of upvote and downvote tiles so the game would be fun but still challenging.

Accomplishments that we're proud of

  • Fully playable game integrated into a Reddit post using Devvit.
  • Daily challenge mechanics with increasing speed.
  • Mobile-friendly and keyboard-friendly controls.
  • Community-focused gameplay that encourages friendly competition.

What we learned

We learned how to leverage Devvit Web to create interactive posts and integrate gameplay directly into Reddit. We also gained experience in designing responsive games, handling state updates efficiently, and balancing difficulty to make a daily game addictive but fair.

What's next for Upvote Tiles

  • Add leaderboards and score sharing within subreddits.
  • Introduce daily themes or special tiles to keep gameplay fresh.
  • Improve graphics and sound effects for a more engaging experience.
  • Explore integration of user-generated tiles or challenges to increase community involvement.

Built With

Share this project:

Updates