Even when in social situations and events, many of us are glued to our phone screens and disconnected from the people in front of them. We wanted to find a solution to how we can break the ice among a group of people, bringing them together towards a larger mystery, finding new friends and allies, and the spirit of competition. By using what distracts us the most to captivate and provide information, we can make non social situations, a party.

Inspired by the classic party game Mafia, we created HOLMES, a 221B Baker St. remodel of the game filled with deduction, deception and doubt. You are assigned either Sherlock, Dr. Watson, Moriarty or Mrs. Hudson. Sherlock's, Watson's and Mrs. Hudson's must work together to expose Moriarty, while Moriarty's must confuse and outwit Sherlock's team to fulfill his master plan. However, no one on Sherlock's team knows who to trust, even within each other. It is up to you to discover the truth, to defeat your enemy, and win. By automating the moderator, everyone can participate and easily join a local round, and there's no "going to sleep at night".

What it does

HOLMES is a web application accessible on many different personal devices. Using the power of Facebook, a prospective player can create or join a round of HOLMES. After entering the lobby, once the lobby has an efficient amount of people, the game will begin. Everyone is handed their role and the night begins. Every night the Moriarty's can choose to kill another player in the game by vote. Dr. Watson's can protect a player from death and Sherlock's can investigate for clues, determining if his investigation target is good or bad. After a short amount of time, results are locked in and the results are pushed to everyone's phone. The day then begins. During the day, everyone can discuss with each other the happenings of the event in search of the answer to the location of Moriarty. Sherlock's team must vote to kill Moriarty and his henchmen across multiple days to win, without losing too many of his closest friends and family.

How we built it

We built this game using Firebase and Angular2, interfacing them using AngularFire. Back end processing and logic is done using Python's Flask framework.

Challenges we ran into

  • 36 hours to create an app with little to no experience in any of the listed technologies
  • Understanding asynchronous observable streams
  • Discovering how Angular2 works

Accomplishments that we're proud of

  • Database design to limit's user exposure and access to secret information
  • A lot of features were implemented, such as voting, social login, real time databases
  • Balanced game mechanics
  • Bringing new life, angle and theme to the classic Mafia game
  • First time web and mobile development for many team members
  • First time hacking for many team members
  • First time at Cal for the entire team
  • Holmes Screen

What We learned

  • RESTful vs. Firebase
  • Observable Streams
  • How to create a web app
  • Cal === UC Berkeley

What's next for HOLMES

  • Finish implementing the Day - Night cycle
  • Twilio Integration, so you always know your current status
  • Deployment on Facebook
  • In Game Chat
  • Past Game History
  • Real Time Mode (A day is a full day)
  • New Roles
Share this project: