Monday, January 25, 2010

Seeker: Reinventing Assassins

In the past, Speed School Student Council hosted a game called Assassins that was played at Speed School. The concept was fairly simple and it was an easy, social, game that allowed players to have fun during the semester. The rules were fairly simple: You were given a target and a secret. The targets were assigned in a circle such that when you found your target, you then were to find their target. The system kept everyone honest by requiring you to enter your targets secret to confirm the "kill." In the end there would be only two people that would need to find each other. Despite the violent name, Assassins is harmless and is more like a big game of hide and seek.

The concept of the game is brilliant, but there are some major shortcomings. The main problem is that the game was designed to be played with pencil and paper. If every player was given an index card with their target, when they found their target they got their index card, in the end the player with the most cards won. However, Assassins in practice was played on the web, requiring players to memorize or carry their password with them and go back to a computer to tell the system they found their target.

Less than two weeks ago I was talking to Mike and Alex about the game and it turned out if we slightly changed the rules some interesting things happened. We played out what would happen and it seemed to work. The first problem is the circle of targets, in the end two people have each other. Additionally, the targets are not secret because the person you eliminated has no reason to keep quiet. Another problem is that once you are found you are out of the game, no more fun for you. Lastly, requiring players to use a website to progress in the game takes you out of the experience. I believe I managed to fix all of these shortcomings with Seeker.

The first change is to issue contract targets at random. The first side effect is that multiple people can have the same target. No problem, first one to reach the target gets credit. When issuing a contract there are some limitations: you can't have someone that has your, you won't be issued your previous target, and you won't be issued someone who is not in the game. This still provides a large degree of randomness in the game. When you are eliminated you fail your contract and if someone reaches your target before you do you fail your contract as well. Since contracts continue to be issued, this is not a problem. When you are eliminated or found you are only out of the game for a short period. In this case 24 hours. This respawn time is taken straight out of the way video games offer. To keep the game moving contracts will expire after 72 hours.

The last problem is how to play when you are not around a computer. While some players would have smart phones, it is not a guarantee. However, a large fraction of college students have text messaging plans. ZeepMobile provides a free web based text messaging API that was used to allow players to play the game. By allowing players to get their current secret and target along with completing contracts via text messages it makes the game more transparent to the player. Additionally, players will get text messages when they get a new contract, are eliminated, or fail a contract.

I managed to code the entire game in a single weekend and we started playing the next week. It is still somewhat a work in progress and I am still working a few of the bugs out, but it seems to be working. The game is open source and you can see the code at seeker-game on Google Code. The best part about Seeker is how simple the concept is. At the core, there is only a table of users and a table of contracts. The most complicated part is keeping the game state updated. Once that is ironed out the rest is up to the players.

No comments: