Inspiration

Both of us love party games like Gartic Phone. We believe these games are the perfect way to bring people together, especially when you're in a room full of people you don't know. So, we asked ourselves: How can we create a game that we would genuinely enjoy playing with our friends? That's when we came up with the idea for Promptionary, inspired by our shared love of charades and our desire to make connecting with others fun and easy.

What it does

Promptionary is a party game where one player describes a secret picture out loud while an AI tries to draw it. The game runs on one big screen, like a laptop or TV, and everyone joins by scanning a QR code with their phone, with no app or account needed. On your turn, you get a picture and a list of words you’re not allowed to say, and you have 20 seconds to describe it. The AI turns what you said into its own drawing, while everyone else in the room types a guess for what the original picture was, based on what they heard you say. Then the big screen shows the real picture next to the AI’s version, gives it a match score, and adds a short roast about how close it got. You earn points when the AI’s drawing comes close and the room guesses right, and guessers earn more the faster they lock in a good answer. After two rounds, the player with the most points wins, and the funniest misses end up in a Hall of Shame at the end.

How we built it

We started in Figma, designing the big screen and the phone screens before writing any code. The frontend is Next.js with Tailwind, with one view for the host screen and one for phones. Behind it is a Node server using Socket.io that runs the whole game. It keeps track of every room, player, turn and score, and sends updates to all the screens at the same time so everyone sees the same thing.

For the AI part, the phone turns your voice into text using the browser's built in speech recognition, and if that isn't available it records the audio and sends it to Gemini instead. The text goes to an image model that draws exactly what it heard. Then Gemini compares that drawing to the original picture, gives it a match score, and writes a short caption roasting the result. Gemini also checks everyone's guesses and decides how close each one was. We run Gemini through Google Cloud's Vertex AI, and we added backups so the game keeps going if the AI is slow or hits a limit.

Phone browsers only allow the microphone on secure https sites, so we run the game through a Cloudflare tunnel. That gives it a real https address at promptionary.design that anyone can open from their phone, on any network, just by scanning the QR code.

Challenges we ran into

A few major challenges we encountered stemmed from not fully fleshing out our idea from the beginning. Our first setback came from not having a clear understanding of how we wanted the gameplay to work. Originally, the game was simply going to involve players describing an image, without any mini-challenges in between. However, we realized that this would leave a lot of downtime for players who weren't actively describing an image, making it easy for them to lose interest. This forced us to slow down, rethink our approach, and figure out how to make the game more engaging for everyone.

Our second major challenge was not thoroughly researching the limitations of our tech stack beforehand. We didn't realize that Gemini's API key was limited to 20 requests per day, which became a constraint we had to account for later in development. This taught us the importance of understanding the tools and technologies we're working with before fully committing to them.

Accomplishments that we're proud of

We're proud that our game actually works as a fully functional party game. You can display it on a TV, have a room full of people scan a QR code, and play an entire game on their own phones without having to install anything. We're also proud of how our game records players' audio and uses the transcriptions to generate AI images. Our favorite part is the reveal, when the original picture and the AI-generated drawing appear side by side, and everyone gets to react to the results.

We're also proud of the game's visual design. We designed everything in Figma first and stayed true to our original vision instead of just throwing something together. We even deployed the game on our own domain, promptionary.design.

Overall, we incorporated a wide range of technologies into our tech stack, and we're proud of how successfully we integrated them. Most importantly, we're proud that we took the time to understand each component of our game and how everything works together to create a fun, seamless experience.

What we learned

One of the biggest lessons we learned throughout this project was the importance of testing early and often. We realized that even when a feature works as intended from a developer's perspective, it might not be as intuitive for someone playing the game for the first time. Through playtesting, we were able to identify confusing aspects of our gameplay and make improvements based on real player feedback. Features like the guessing mechanic and many smaller adjustments came directly from observing how people interacted with our game and asking what they expected to happen. We also learned how important it is to test with multiple players at once, especially in a real-time multiplayer game where actions don't always happen in the order we expect. Overall, this experience taught us that testing isn't just about finding bugs, but also about understanding the player's perspective and creating a more enjoyable experience for everyone.

What's next for Promptionary

In the future, we would love to give users the ability to create their own picture banks, either by generating images with AI or uploading photos directly from their galleries. This would make the game feel more personal and customizable, allowing friend groups to incorporate their own inside jokes, shared memories, and funny moments into the gameplay. We believe this feature would make Promptionary even more engaging and create a unique experience for every group of players.

Built With

Share this project:

Updates

Submission history