Inspiration
Have you ever been in a social situation where you wanted to say something but could not come up with a response on the spot? We wanted to create a fun, low-pressure way for people to practice improvisation, quick thinking, and articulation. After brainstorming several ideas and getting feedback from each other and board members, we chose to build Improv Faceoff for students, casual gamers, improv beginners, and anyone who wants to become more confident speaking spontaneously.
What it does
Improv Faceoff is a fast-paced 1v1 online improv game where two players are matched, given an AI-generated scenario and roles, and perform a timed scene together. Players can use “Switches” to interrupt each other and force quick adaptation. The game includes live video and audio, speech-to-text transcription, automatic turn handling, AI-generated scenarios, and AI judging based on creativity, adaptability, coherence, collaboration, and response speed.
How we built it
We split development into three parallel tracks: frontend, backend, and AI/transcription. The frontend used React and Vite, the backend used Flask, Flask-SocketIO, and Redis, and AI features used Gemini and Deepgram. LiveKit handled camera and microphone rooms, while Render handled deployment. Our shared milestone system allowed each developer to work independently before combining everything through integration milestones.
Challenges we ran into
Our biggest challenges were managing development credits, reducing speech-to-text latency, testing features that depended on unfinished tracks, and debugging integration issues. We also ran into merge conflicts, missing dependencies, inconsistent environments, and backend failures that were difficult to diagnose without proper logging. Some seemingly simple UI features, especially Switch effects, also became unexpectedly difficult to make consistent across devices.
Accomplishments that we're proud of
We are proud that we successfully combined matchmaking, real-time video and audio, speech recognition, AI-generated scenarios, multiplayer game state, Switch mechanics, transcripts, and AI judging into one playable experience. We also built the project so three developers could work concurrently using shared structures and mock data instead of constantly waiting for another track to finish.
What we learned
We learned that parallel development only works well when teams establish clear interfaces, shared data structures, and milestones early. We also learned how important logging, error handling, and environment management are when working with real-time systems. Finally, we gained experience integrating AI, WebSockets, video, speech recognition, and multiplayer state into a single application while learning to use AI development tools and credits more efficiently.
What's next for Improv Faceoff
Next, we want to improve replayability and competition by adding features such as an Elo ranking system, accounts, leaderboards, additional game modes, scenario rerolls, tone bans, improved AI-generated situations, matchmaking minigames, and more detailed post-match feedback. Our goal is to turn Improv Faceoff into a replayable social game that helps people become quicker thinkers and more confident speakers while having fun.
Built With
- cloudflare
- css
- deepgram
- flask
- flask-soc
- gemini
- livekit
- python
- react
- redis
- render
- socket.io
- sqlalchemy
- vite
Log in or sign up for Devpost to join the conversation.