Inspiration
We were inspired by classic “Twitch Plays” style experiments, where a crowd collectively controls a single game. Sokoban felt like the perfect fit . it’s simple to understand, but deeply strategic. We wanted to explore what happens when hundreds of players must cooperate, vote, and think together to solve a puzzle designed for one brain.
What it does
RPS – Reddit Plays Sokoban is a multiplayer, vote-driven Sokoban experience where Reddit users collectively control the player.
Every few seconds:
- Players vote on a move (UP, DOWN, LEFT, RIGHT, UNDO, RESET).
- The system calculates the majority vote.
- The chosen move is applied to the shared game state.
The entire thread collaborates (or chaos ensues) to push boxes onto goal tiles and win the level together.
Play here: https://www.reddit.com/user/sobojap/
Supported on mobile and desktop browsers only.
How we built it
- Backend: Express server running on Devvit.
- State Management: Redis for persistent shared game state, tick tracking, and vote counting.
- Game Logic: Custom Sokoban engine implemented server-side (movement rules, collision, deadlock detection, win detection).
Multiplayer System:
- Time-based tick system (every few seconds).
- Votes stored per tick in Redis.
- Majority move applied during tick processing.
Frontend Client: GameMaker client fetching state and animating moves based on server responses.
We implemented:
- Deadlock detection
- Win condition detection
- Undo system
- Full reset to original map state
- Per-user vote tracking to prevent duplicate votes per tick
Challenges we ran into
- Synchronizing state between many users in real time.
- Preventing users from voting multiple times in a single tick.
- Designing a fair and deterministic tick-based voting system.
- Implementing undo/reset without corrupting the shared state.
- Handling edge cases like deadlocks and invalid moves.
- Making sure the backend remained the single source of truth.
Accomplishments that we're proud of
- Creating a clean tick-based voting system.
- Successfully implementing UNDO and RESET mechanics in a shared environment.
- Designing a scalable backend using Redis for real-time shared state.
- Turning a traditionally single-player puzzle into a chaotic but cooperative multiplayer experience.
What we learned
- Multiplayer state management requires strict server authority.
- Even simple games become complex when many users interact simultaneously.
- Clear tick timing prevents race conditions and inconsistent state.
- Redis is extremely powerful for ephemeral multiplayer state and vote aggregation.
- Designing for collaboration means designing for chaos.
What's next for RPS – Reddit Plays Sokoban
- Multiple levels and progression system.
- Difficulty scaling.
- Visual vote indicators in real time.
- Leaderboards (top contributors, most accurate voters).
- Smarter deadlock detection.
- Special event modes (chaos mode, limited moves mode).
- Expanding beyond Sokoban into other “Reddit Plays” games.


Log in or sign up for Devpost to join the conversation.