Killer by Text
Summary
A game that runs the game Killer (or Assassin) by text message. Players are secretly assigned one other player to 'kill' with a foam dart gun. They receive new targets and report kills to 'Killer by Text' via text message.
Background
There's a popular game my friends and I played in sixth form called Killer. The basic premise is that you are given one other person from your group to 'assassinate' (with a paper knife or foam dart gun). A games master (GM) runs the game and assigns targets. Your target is secret, so this creates lots of tension and suspicion. It's great fun! Check out the Wikipedia article for more information: http://en.wikipedia.org/wiki/Assassin_(game)
However it does require someone to run the game. When you kill your target you tell your GM, who then confirms with the killed player. After this the GM will give you a new target. The GM also has to handle people quitting, removing inactive players, and assigning new targets. With large or fragmented groups communicating changes and receiving updates can be problematic.
To make assigning new targets easier on the GMs they could have a program that will do this automatically and display relevant contact information so the GM can communicate this. This could easily be taken one step further by connecting a phone to the computer. Now the players can communicate directly to the program, essentially eliminating the need for a GM!
The program
The program needs to be able to parse a list of commands which the players use to register for a match, report kills, summon help, get information, etc. These messages need to be parsed and processed. The players will be sent a message appraising them of any updates.
The messages must be in a simple format, and user commands must be easy to execute. A user always needs to receive a reply to a message, either confirming it was executed correctly or otherwise. A 'help' command is a good idea, so a player needn't memorise all the commands.
Reassigning targets also needs to be handled. Each player must have only one target and be only one person's target. If a player is removed then a message needs to be sent to the removed player's assassin notifying them of a new target.
To send out messages a phone that can process AT commands is needed. The phone needs to be connected to a computer that runs constantly.
Currently
KillerByText is now being used! Bristol University's BUZAN society is currently running a game. Updates can be found on their Tumblr page: http://bristolassassins.tumblr.com/
KillerByText has been set up to use SMSLib — an open source API for sending and receiving text messages. The game has been run several times with no major bugs, which is great news! Minor tweaks have been made (such as confirmation from the killed player being required for kills to complete, and dead players being able to kill alive players, being used in the case of a mutual kill).
Future work will include making the system more user friendly, allowing players to communicate with the system via email or text message, and having more options per match (e.g. removing scores, disabling name changes).
More complex changes that I want to implement are simultaneous matches, persistent players (for a league table of scores), and text-to-speech software that phones players.
Details
Language: Java
Lines of code: 4559
Number of classes: 72
Libraries used: RXTX, SMSLib, Simple XML Serialization.