Skip to content
lyudmil edited this page Dec 13, 2010 · 40 revisions

#Unabomber

##Introduction Unabomber is a multiplayer role-playing game for mobile platforms. It uses your phone’s map application to create an augmented reality in which assassins (unabombers) are pitted against regular citizens and the police. Can you survive and capture the killers in time?

##Game logline The line between real and virtual is blurred as you survive terrorist attacks and help apprehend the perpetrator.

##Game synopsis and roles Upon joining the game, you are assigned one of the following roles: a regular citizen, a unabomber, or a policeman.

###Regular citizen If you’re a regular citizen your goal is to survive long enough for the unabombers to be caught. You need to avoid getting murdered, but collect useful information so that the police can track the criminals down faster. You'll be able to track your own movement as well as the movement of all other players in the game. You therefore need to observe the game and communicate to the policeman any relevant information such as who you've seen near the site of an explosion. It is in your best interest to do so, as you only win if all the perpetrators are caught.

###Policeman If you’re the policeman, your objective is to catch the unabombers. Like all other players, you can also track your movements and the movements of others. However, you are the only player who always survives bombings. With that power comes the responsibility of catching the perpetrator. You try to identify suspects and build your case against them by observing the game and talking to witnesses. Once you have reasonable suspicion who the criminal is, you can choose to send them to prison. Keep in mind that if you get the wrong guy, they are out of the game and the unabomber comes that much closer to winning.

###Unabomber The goal of a unabomber is to kill as many of the citizens as possible without getting caught by the police. Like the ordinary citizen, you can track your movement and the movement of everyone else. However, you have the added ability to place bombs at locations of your choosing. Once you've placed a bomb, you have the option to detonate it at any point in time and kill all citizens within its range. Keep in mind that policemen always survive and it is a good idea to cover your tracks so they don't find out who you are and send you to prison. It is also useful to remember that citizens are potential witnesses that can testify against you, so if you suspect you’ve been exposed, it’s better to get to those witnesses before they talk to the police.

##What makes Unabomber unique?

  • ** Your whole city is your playground. Play everywhere!** The “world” in Unabomber is a map of where you’re located and not artificially simulated.

  • Boundless possibilities The winning strategies in Unabomber are only limited by your imagination.

  • No gameplay to adapt to There are almost no controls. You interact with the real world.

#Target Audience Unabomber is meant for serious and casual gamers alike. On the one hand, the multitude of complex strategies would appeal to people who enjoy solving such problems. On the other hand, there are no complex controls or expensive hardware to put off someone who doesn't play as a hobby.

Since the subject matter of the game is terrorist attacks, Unabomber would probably not be suitable for children. Since the platform for the game is a smart phone, this also implies a minimum age, as kids are less likely to own an iPhone or an Android.

#Platform The first version of Unabomber will be developed for the Android operating system.

The game requires a way to track and map the locations of all players. Therefore, we need for a GPS device and a mapping device that can load arbitrary geographical data. Given how popular smart phones are, they are an obvious choice as they provide the full functionality. We chose Android because it is the most popular mobile platform if we consider the raw number of devices. It is also free and open-source, which allows easier prototyping - we do not need to purchase SDK's, we do not need to deal with reviews before publishing our app, etc. However, for Unabomber to truly be successful, the client will eventually need to be ported to the iPhone.

#Gameplay As mentioned above, the world in Unabomber is a real map showing the player's location and the location of other players. All players can see where everyone else is and move around on the map. At any point in the game the player can do one of two things - (1) press a button on their screen which represents taking an action at their current location, or (2) move somewhere more interesting or beneficial. Depending on their roles players will be allowed different actions (and different buttons to hit), and would perceive different locations as valuable. For example, a citizen would want to run away from a place near a bomb since bombs can kill him or her. However, a policeman would like to be near such a location so that they can deactivate the bomb. You can consult the game flowchart to get a general overview of what actions are available and the conditions for winning. A more detailed description follows.

##All players Regardless of their role, all players can:

  1. Set up a new game, specifying different game parameters such as the number of players, number of unabombers, number of policemen, etc. (details and screens)
  2. Join an existing game (details and screens)
  3. See their location on a map, which updates continuously (details and screens)
  4. See the continuously updated location of all other players on the map (details and screens)
  5. Pick up "bonuses" that give them certain priveledges based on their role. Some of them are pretty simple: a citizen may pick up a "restore health" bonus, for example. Others are more complex such as bonuses that give the policeman the ability to track someone. (details and screens)

##Citizens The goal of a citizen is to survive long enough for all the unabombers to get caught. It is in their best interest to assist the police with information so that they can catch the criminals more quickly. It is also best for them to save other citizens, since that prolongs the game and allows the police more time to find the unabombers. To help them achieve their goals, citizens have the following tools at their disposal:

  1. Health. Citizens die when they are near an explosion with not enough health to survive it. (details and screens)
  2. Police. Citizens have the ability to alert the police of anything they find suspicious. It could be that they saw someone suspicious near the site of an explosion, for example. (details and screens)
  3. Bomb threats. Citizens that are near a bomb which is about to explode are warned and given time to run away. (details and screens)
  4. Sixth sense. In general, citizens aren't aware of the locations of the bombs because they don't see them on the map. However, they can use the built in camera of their phone to scan their surroundings. If there is a bomb nearby, they will see it on their screen and will know to move away and call the police. (details and screens)

##Policemen A policeman's job is pretty simple - they need to catch all the unabombers. They do this by observing the game and deducing, based on each player's patterns of movement, which players are unabombers. It is in their best interest to save as many citizens as possible as that allows them more time to conduct the investigation and gives them more potential witnesses. To do their jobs, policemen are allowed to:

  1. Send people to jail. Once a policeman has determined someone is a unabomber, they can choose to send them to jail. If they are wrong, though, the unabombers gain an advantage. (details and screens)
  2. Place "bugs" on people. If a policeman suspects someone, under certain circumstances they are allowed to track their movements by placing a "bug" on them. That way they can confirm or deny their hypothesis. (details and screens)
  3. Examine a player's past. If a policeman suspects someone, under certain circumstances they are allowed to see where they have been by checking their past records. That way they can confirm or deny their hypothesis. (details and screens)
  4. Deactivate bombs. Policemen are given a scanner which works similarly to the citizens' "sixth sense". If they see a bomb on their screen they are also allowed to deactivate it. (details and screens)
  5. See bombs that are about to detonate. That way they can note each player's location and form theories on who the perpetrator might be. (details and screens)

##Unabombers Unabombers are the villains. Their goal is to kill all the citizens before getting caught. They do so by placing a limited supply of bombs in strategic locations and detonating them at the opportune time. Whether they succeed depends on how effectively they place their bombs and how well they cover their tracks. To achieve their goals, unabombers can:

  1. Place bombs. (details and screens)
  2. Detonate bombs. (details and screens)
  3. Build new bombs. Eventually, the unabomber will run out bombs, at which point they'll need to build new ones. They do so by collecting appropriate materials from the map. (details and screens)
  4. Get accomplices. Unabombers can collect a bonus that allows them to coerce regular citizens into assisting them. This prevents the citizen from talking to the police and allows the unabomber to suggest things for them to do to cover their tracks. (details and screens)

#Delivery and Release Schedule We will roll out Unabomber in four releases, each containing a certain set of features. Each feature has been discussed above and is atomic and independent. Therefore, we have the freedom to move any feature to any release, or indeed remove it from a release - the ones we have are simply a logical grouping.

Our estimation method is as follows. First, we assign a point value to each feature - 1 point, 2 points, or 3 points. Point values are scalar and measure relative complexity (a 3 is more complex than a 2, a 2 is more complex than a 1). Then, we track our velocity as the number of points we complete in a week and can thus estimate how many weeks it would take for each release. Based on our estimations, the releases and numbers are as follows:

Date development begins: 15/11/2010

Target velocity: 5 points/week

  1. Minimum Viable Product Release (feature breakdown): 8 points; 2 weeks
  2. Enhanced Gameplay Release (feature breakdown): 8 points; 2 weeks
  3. Game Setup Release (feature breakdown): 5 points; 1 week
  4. Final Release (feature breakdown): 13 points; 3 weeks

Note that if the velocity changes, that has an effect on the whole schedule. This schedule is meant to be continuously updated based on changes in the project throughout development. Adjustments can be made by moving, adding, or removing features.

#Technical Analysis Unabomber has two components: (1) a client written for the Android platform, and (2) a web service running Ruby on Rails.

##Client The client is a simple Android application displaying a Google map (through the MapView interface), with custom overlays for displaying the appropriate game elements (players, bombs, bonuses, etc.). Since Android powered phones have different specs, the system requirements are as follows:

  1. Android 2.2 or higher
  2. GPS
  3. Built in camera
  4. An internet connection

The device will periodically (and often) report its current position to the server and download an up-to-date state of the game. This would include all the information needed to allow the interactions the player is allowed based on their role. To achieve this, we will use the HTTP protocol to make calls to the server, who will return the data in JSON format as a result. This simplifies the architecture and allows the application to work through virtually all firewalls.

To provide the "sixth sense" feature discussed above, we would make use of the mixare library for Android.

##Server The server is nothing but a REST-ful web service. It exposes certain services through a URL and returns results as JSON. For example, to update it's location a client would send a POST request to www.unabomber.com/locations/update with their client ID and geographical data as collected by the GPS in the parameters. Similarly, if the same client would like to get the game data, they would send a GET request to www.unabomber.com/game and would receive an JSON response containing all the necessary information in a predetermined format.

The Ruby on Rails framework provides excellent infrastructure for building such API's, and therefore is a good choice. It can also free, open-source, and allows us to deploy it to a variety of configurations. It is especially useful during development since we can use a free Heroku account to set up a zero-configuration, zero-maintenance test server.

##Development platform and tools To read more about the tools used, click here.