Fan Art of an Assassin from League of Legends. src: http://imgur.com/LQ6gRB9
Although "Assassins" was a popular game played in high school, it was also difficult to organize, especially with a larger group of people. In addition, the organizer of the game would not be able to participate themselves due to their inside knowledge. As such, we wanted to make organizing and running the popular game "Assassins" easier and more efficient.
What it does
Players can text in to join a game of assassins. Upon the start of the game, players will automatically be randomly assigned "targets" (and subsequently be targeted themselves), as well as a "secret code." The secret code is used to validate assassinations. Players can also check the status of the game via a Leaderboard on a web application developed with Flask, HTML5, and CSS.
How we built it
The majority of the hack was built on the Twilio API and Capital One's Nessie API using Python and Flask. The web application was built using Flask and HTML5/CSS.
Challenges we ran into
Connecting to the Twilio and Nessie APIs, especially allowing for Twilio to continually receive SMS messages rather than only sending messages. Integrating all the separate parts of the hack (Twilio, Nessie, and the Game Client itself) was also difficult. It was also very difficult deploying our web application so that it wouldn't be running off of local host. We also ran into various compatibility issues with dependencies and set ups (e.g. environmental variables) due to running different Operating Systems as well as the numerous dependencies we used in our project.
Accomplishments that we're proud of
Integrating everything together, as well as utilizing a circular single linked list for the target assignment and tracking system.
What we learned
Learned how to use Flask and got even more familiar with using RESTful APIs. Also learned more about deploying web applications, and how to distribute tasks in a smart and efficient manner so that you can minimize merge conflicts later on.
What's next for Assassins
Adding additional game features, especially custom settings so that each group that creates an Assassins' game can have one tailored specifically for them. For example, one such possibility for larger groups would be setting up teams rather than having a free for all. General improvements to website functionality is also in the works.