Inspiration

I really wanted to build a game that actually makes people want to come back every single day. A lot of games on Reddit are fun for five minutes, but then you just forget about them. I wanted to create a twenty four hour delayed gratification loop. The idea is simple but super engaging: you have to vote on the art other people drew yesterday to unlock the ability to draw the prompt for today. It builds this crazy sense of anticipation because you literally cannot see if your art made the Hall of Fame until the next day!

What it does

Draw Tomorrow is an asynchronous multiplayer drawing game where you compete to make the daily Hall of Fame. But there is a catch! To unlock the ability to draw today, you first have to vote on five drawings that other people submitted yesterday. Once you finish voting, you get the daily prompt and a blank canvas to create your masterpiece. The next day, the top three highest rated drawings are immortalized on the front page for everyone to see!

How we built it

I built the entire frontend using React and Phaser for the actual drawing engine. The UI is completely custom and uses Framer Motion for all the bouncy animations that make it feel alive. I wanted the game to feel incredibly polished and smooth, especially on mobile phones. For the backend, I used the Reddit Devvit platform to handle all the daily prompts and store the user generated art.

Challenges we ran into

The absolute hardest part was figuring out how to send the complex vector drawings back to the Reddit servers. The native Reddit mobile app has a strict data limit for its bridge. At first, the app would completely freeze whenever someone tried to submit a detailed drawing because the data payload was way too massive.

To fix this, I had to invent a custom math compression algorithm. Instead of sending bulky data objects, we used Phaser math functions to calculate the exact distance between brush strokes and distilled thousands of points down into a tiny, mathematically pure string format.

Here is the exact formula I used to calculate the distance between two points to compress the paths: $$ d = \sqrt{(x_2 - x_1)^2 + (y_2 - y_1)^2} $$

This shrank the data size by eighty percent and allowed the game to run without crashing the Reddit app!

Accomplishments that we're proud of

I am incredibly proud of how flawless the drawing experience feels. By combining Phaser with React, the brush strokes are buttery smooth and perfectly responsive, even on older mobile devices. I am also super proud of the twenty four hour voting loop because it genuinely makes you want to open the app every single day to check if you made the cut.

What we learned

I learned so much about optimizing web apps for native mobile environments. When you build for Devvit, you are not just building a website, you are building something that has to talk perfectly with the mobile Reddit apps. It really taught us how to think outside the box when you hit a hard technical wall.

What's next for Draw Tommorow

Moving forward, we want to add a global leaderboard so players can track their total career upvotes over time. We also plan to introduce special colored pens and brush sizes that you can unlock by maintaining a long daily streak. The goal is to make it the most addictive creative outlet on Reddit!

Built With

Share this project:

Updates