Inspiration
Reddit is built around communities, but most games are designed for individuals. I wanted to explore a different idea: what if entire subreddits could compete together? Instead of real-time multiplayer, Rivalry turns Reddit into an asynchronous battlefield where every member contributes a single strategic pull toward their community's success. This makes participation accessible regardless of time zone while preserving the feeling that every contribution matters. To make the concept approachable for judges and new players, I also built a Practice Match, allowing anyone to experience the game's mechanics before jumping into Community Clash.
What it does
Rivalry is a Reddit-native asynchronous tug-of-war game. Players choose a pull angle and complete a timing-based tap challenge that determines pull quality. Each pull contributes tension and torque to a shared rope. Coordinated pulls accumulate torque, eventually triggering Slip events that dramatically shift the rope in favor of one side. Community matches last for one hour, after which the winning subreddit is determined and permanently recorded in the Hall of Rivalries. For solo play, Practice Match simulates an opponent so players can learn the mechanics without waiting for another community.
How I built it
I built Rivalry using Devvit, TypeScript, Phaser, Hono, and Redis. A major design goal was keeping game logic deterministic and shared between the client and server. The rope physics engine lives in a shared module so every pull is resolved using the same calculations regardless of where it originates. Persistent match state, player participation, history, and matchmaking are stored in Redis, while Phaser handles rendering, animation, audio, visual effects, and the tap-based interaction. Community Clash and Practice Match share the same core physics engine, allowing the gameplay to remain consistent while supporting different play styles.
Challenges I ran into
Designing an asynchronous multiplayer game was the biggest challenge. Unlike traditional multiplayer games, players never act simultaneously, so I needed mechanics that still rewarded coordination over time. Balancing rope tension, torque accumulation, Slip events, and victory conditions required many iterations before matches felt engaging. Another challenge was making the project easy to evaluate in a hackathon environment. Since judges cannot rely on multiple active communities, I designed Practice Match to demonstrate the complete gameplay loop while preserving Community Clash as the primary experience. Building around Devvit also meant carefully separating shared game logic from server-specific functionality while maintaining persistent state across matches.
What I learned
This project taught me how to design gameplay around asynchronous participation rather than real-time interaction. I gained experience building shared game logic, designing deterministic simulation systems, structuring client/server architecture, and balancing gameplay through iterative testing. Most importantly, I learned how to build mechanics that take advantage of Reddit's unique community-driven platform instead of treating it as just another place to host a game.
What's next for Rivalry
My vision is to expand Rivalry into a persistent Reddit competition featuring seasonal leagues, subreddit rankings, achievements, cosmetic rewards, richer matchmaking, and a global Hall of Rivalries where legendary community battles become part of Reddit history. I'd also like to introduce special community events, new game modes, and deeper progression while keeping the core idea intact: every pull matters, every match tells a story, and every community has the chance to make Reddit history.
Log in or sign up for Devpost to join the conversation.