We wanted to make a relaxing game to have fun with people. Everyone can play rock paper scissors. Now it's even easier because you only have to use hand gestures, much like a real life game of rock paper scissors.

What it does

Start the game by hitting the 'Start' button. You will be put in a queue and eventually paired up with another player. You too will use hand gestures to play. After the countdown, whatever the gesture is will be used to consider the winner. The game goes on until one of you quits.

How I built it

We use NodeJS as a backend to do all the processing. We use SocketIO to create a real-time experience for the users. In frontend, we use tensorflow.js to identify the gesture right on clients' browser and just send back the gesture that the machine learning model recognise. We use Heroku to deploy our app.

Challenges I ran into

Debugging the backend processing with NodeJS and SocketIO, creating data structures (i.e queue list for players, on going game sessions list, etc.) to manage and scale the app for many users.

Accomplishments that I'm proud of

The real-time experience provided by SocketIO was on point. It worked much better than we had expected.

What I learned

As a whole, we learned how to setup a whole scale system that consists of backends and frontends as well as how to setup efficient and optimal backends to process the data.

What's next for Rock Paper Scissor Battle Arena

We will implement a database storage to minimise loss of data. We will train a more optimal model to recognise hand gestures. We will refactor the backend code for easier maintenance and improvements. To improve the game experiece, we will implement usernames, a more interactive way of playing it (i.e you can see other people, like both having a video call and play rock paper scissors together).

Built With

Share this project: