co-RPS

PennApps - SendGrid API Winner

I was responsible for coding the Node.JS backend and developing the front-end using HTML5 Canvas. CoRPS is a collaborative team-based massively-multiplayer Rock, Paper, Scissors game played via email thanks to SendGrid’s infrastructure. Our dashboard keeps track of players as they vote by sending emails to us with their selection in the subject line. Players may change their votes as often as they like before the timer ends. The majority vote on the team is the weapon that is used when the time runs out. In addition, players may post short comments in the body of their emails. This project was completed within a 48 hour window at PennApps. The code can beĀ found here.

My Role

Web Developer

Team Members

  • Andre Le
  • Pavel Samsonov
  • Ramya Mallya

Challenges

Our initial brainstorm was to write out all the API’s that were presented at the kick-off for the hackathon. We wanted to see what were the important features of each API that we could use in our project. SendGrid stood out because we realized that email was used primarily for communication and output, but the API allowed us to use email as input as well. Another option was to use Twilio as input, but we really wanted to win the SendGrid prize, 2 Oculus Rifts!

We also wanted to take advantage of Node.JS / Socket.IO to handle multiple connections and real-time communication. The front-end and back-end were both written in Javascript. The front-end also leverages Jade, SASS, and Canvas to create a game engine to support a massive amount of players.

The game lets players join the game via email. The subject contains the vote for the team and the body lets the player leave a comment on the screen. The votes are counted up for each team, and the majority vote chooses the Rock/Paper/Scissor combination. Players are allowed to change their vote until the timer runs out. This allows the teams to work together to choose the right combination to beat each other!

Process

  • gravatar_test

    Gravatar Integration
  • corps_testload

    Testing Load
  • game

    Early Game Testing