42 comments

[ 2.8 ms ] story [ 110 ms ] thread
So awesome :) Thanks for putting this together. I'd love to see a Secret Hitler bot next!
ha, this is perfect. love it. sharing
This is neat, but I still wonder where people get the time to play games like this.
Between 12pm and 1pm, or after 6pm haha :P
Take a little time off from checking HN?
But that would eat into my Reddit checking time.
Used to work at a startup and after 3pm Thurs and Fri, our sys admin would set up a server for Counter Strike for the developers.

Man I miss those days. . .

My coworker and I happen to have a very strict One Slime schedule. Even slack bot knows about it and gets excited
At work..
I've never heard of this game, maybe a description or link to a wikipedia page[1] in the readme would be good.

1. https://en.wikipedia.org/wiki/Mafia_(party_game)

Good suggestion, I added to Readme
I've played it as "Mafia" but never as "Werewolf" so thanks for the informed link.
If you enjoy Mafia, check out Town of Salem - a web/desktop based version. Games are quicker than usual Mafia.

https://www.blankmediagames.com/

There's also `Secret Hitler'. A game that's better than its name sounds.
And there is this great story in Wired on the history and popularity of this game, especially at tech conferences: http://www.wired.co.uk/magazine/archive/2010/03/features/wer...
Once I attended a math olympiad training camp, and was told a story explaining why we were not allowed to play "Mafia":

The previous year, students had arranged a real-time version of the game, so that, each night, the mafia would vote and eventually someone would go knock on the victim's door. At some point, a maid found a piece of paper in someone's dorm, listing a "God", the names of people who had been "killed", who was to be killed that night, etc. The police were called.

The matter was eventually cleared up, but from then on, the camp imposed a strict policy of no "Mafia". People were free to play equivalent games, as long as the vocabulary of the game was not something that could conceivably lead to a repeat incident.

I believe the proper term is `isomorphic' games?
Ha! In my family we play the Mafia game by the book but with alternative themes. My father-in-law used to work as a fireman, so I created the game of "Pyromaniac" for a family weekend trip. And for a party of one of my children, I rewrote the game towards "Wolf in sheep's clothes". They loved it (and would not understand the mafia references).

Hopefully the police is not alarmed by bits of paper with labels as "wolf" (mafia), "dog" (guardian angel), "shepherd" (detective) and "sheep" (civilian)...

As I don't use Slack, I'm totally building an IRC version of this. Actually, I'd prefer frontend-agnostic, so I can hook the logic to IRC/matrix/XMPP/websockets.
I'm down to build this into this project. Build an IRC client in ReactPHP (async websocket pkg) and we'll work towards the necessary abstraction to make the game logic completely secular.
You might want to look up existing IRC bots for reference (like XylBot [1]). I'm not sure how usable the code is, but it could be useful for role ideas.

[1] https://github.com/RossM/XylBot

I've actually been looking at scheme. I need the practice, and it has enough frontends to make it work. Also, there is CHICKEN's C FFI, which is amazing.

But ruby might be good, too.

Have you tried out The Resistance?
Yep, I'm a fan of Resistance and Avalon as well. I think I prefer Werewolf and One Night Werewolf more.
Resistance is one of my favourite games of this type. It's great when you have 2 or 3 really talky people. Kind of falls apart when everyone is quiet though.
Sometimes you have to rally the group to play a second game and then they'll get it.

I've also seen quiet groups completely come around if you act a little more like a moderator and start asking questions. Have everyone say who they are and why. Always ask people why they voted a certain way. Its usually not too hard to get the quiet ones talking.

I wonder why it's written in PHP. Seems like an odd choice.
It's what I'm most familiar with and I didn't want to spend a lot of time building it.

There is a great Slack RTM client written with ReactPHP (http://reactphp.org/) that I took advantage of.

You should really consider investing time in learning more languages.
Very cool! I wonder how the game dynamic changes when people are not required to be in the same room as each other.
Really cool. I built something similar in python for giggles a couple months ago [1]. One day I'll get around to implementing other roles. Honestly the most fun part of it was co-workers hilarious attempts to break the script. ```!vote DROP TABLES```

https://github.com/nickweinberg/werewolf-slackbot

It's a fun group game... glad to see another addition to the growing list of Slack games...
Small nitpick: That screenshot shows a situation which shouldn't occur in the game. If there's only 1 player left, he's the winner. So I wonder: Is there a winning condition built in?
Nice, in my experience online Werewolves can be fun when you know each other well but live far away. So I could imagine it working with teams on Slack. How were your experiences thus far?

I built https://github.com/sander/lunacy for a similar purpose (CouchDB + Node + AngularJS). After a few months it did become a bit boring, I think mainly because the stakes are lower when dropping out of a game doesn’t actually mean having to sit and watch others continue to play live (you can just quit the app), and because the lack of facial expressions that can give away roles.

Anyone know how to host this on Heroku?