If you want to try it out, let us know so we can run the game. In demo mode, matches are started manually.


Our work does a rock paper scissors bracket every year at the holiday party. We wanted to build that into an automated game that scales with any number of players.

What it does

RPMMO throws everyone into a bracket, and people match off until there is only one person left in the bracket. Rock paper scissors is a simple and surprisingly fun game to play in this manner.

Gif of game

How we built it

We built a server-authoritative backend in Node and a dumb client in Vue that receives and emits game state events over Socket.io

Challenges we ran into

State management in vue is easy but reasoning about the minimal game state the client needed was hard. Designing the backend was also challenging as it's essentially a cluster of dynamically instantiated state machines but they're all completely asynchronous.

Accomplishments that we're proud of

Our UI is great and the game is a lot of fun.

What we learned

We learned a lot about working with Socket.io, and we learned a lot about game state management.

What's next for Rock Paper MMO

Deploying and scaling to multiple brackets happening at the same time to handle more than ~50 people at a time.

Share this project: