An multiplayer, P2P video streaming web application based on the social-deduction party game "Werewolf" (with a commonly known variation called "Mafia").
- Functionality: React
- Styling: MaterialUI
- Animations: AniJS
- Twilio API (We refactored to Twilio API from an original version that was built on WebRTC and PeerJS. Unfortunately, the latency in the streams became quite high after adding only a handful of users, and we had to pivot the approach for a smoother user experience.)
- Firebase (we used Firestore as our real-time, NoSQL database for fast lookup of game room status)
- Express (to connect our front end to Firebase)
We used bits and pieces of Fullstack Academy's boilermaker code to set up the express server, and WebPack configuration. (Since the code was forked over, our team size looks like it's 24 instead of the 4 who actually worked on the app -- contributors listed below)
Unlike in the traditional game, you no longer need a moderator to run the game. The prompts on the screen make it clear whose turn it is to act next, meaning that the whole party can get in on the fun. Once a majority of players have opted to eliminate a single player, their votes will be made official and the game will continue to flow.
When it's time for the werewolves to collaborate on choosing their next victim, the rest of the streams will be cut off, meaning that they can collaborate in secret without requiring other players to close their eyes like in the in-person game.
In order to facilitate ease-of-use, we've opted for not requiring login credentials for users -- simply set your username, and join a room!
MaterialUI and AniJS provide us with a countless styling and animation features that, coupled with some custom page designs, give you the authentic "Werewolf" feel
- Jonathan Albert (JAlbertCode)
- Aleks Mitrovic (babybear4812)
- Michael Pesek (mpesek4)
- Cameron Holsinger (echolsinger)