Tuesday, December 11, 2012

Virtual World Domination

Overview:

Virtual World Domination is an interactive board game in which players can use portable controllers to attack and defend territories and ultimately control all territories. 

Input: 

Virtual World Domination take in input from the controller's infrared lights which are sensed by the Play Station Eye, which has been modified by removing an infrared light sensor and adding a visible light filter in order to sense infrared light. It has also been modified to take in mouse clicks for versatility.

game board

Output:

The game board is projected onto a flat surface using a basic projector. As a Territory's units increase of decrease, the numbers to the right of the Territory names increase and decrease correspondingly. In order to keep track of the Territory's owner, each player is assigned a color. This color is displayed behind their name during their turn and behind the Territories they own, which changes dynamically as Territories are conquered. An info box rests at the bottom of the board and gives players options as to how many they can defend with and how many they can attack with. Once the attacker and defender have chosen how many units to play with, dice are rolled and the results are projected on a panel in the center of the board. 

Construction:

The physical parts of Virtual World Domination include a Play Station Eye (with the infrared filter removed and visible light filter added) and a projector to display the board which are both mounted on the ceiling, directed down to the flat surface. A computer is needed to run the program. Multiple finger lights were constructed from basic children's toys. We removed the LED and added an infrared light in it's place. 


Software:

We used Processing 1.5.1 programming environment for all of Virtual World Domination's software. A finite state machine was used to step through the entire game with states including attackFrom (player selects which Territory to attack from), attackToNumber (the number of defending units from the attacker's chosen Territory), endTurn (moves to the next player's turn), and initialDraft (each player places initial units in Territories) to name a few. Multiple modules were also used. We included Dice, Players, Territory, World, SoftwareButtons, VideoDetection, MarkerDetection and TimeOptions.
Each Territory's information was from data files with their names, continents, location on the board, the number of territories in the continents, the number of bonuses, and the surrounding Territories.
In order to assure precision when selecting, we created two debugging modes. One mode stretches the camera width and height to match with the map's dimensions. The other calibrates the Territories info box to create the detection area.
The game board was customized for functionality with popup boxes and option buttons to prompt players throughout the game on who won, who lost, options for defending and attacking, canceling a move and ending a turn.
For players satisfaction, we added a clicking sound to play when the button is pressed. To assure that only one units is placed at a time, each time the infrared light is on it only allows for one "click". The Territories are also color coded to the players personal color for easy identification.

Part of the state machine
A map of the states


The mac mini we used to run the program

Modified Finger Lights

The modified finger lights in action

Problems:

As with any project, the Virtual World Domination had it's share of complications. The controller went through many modifications before reaching the final product. We started with a device similar to a flashlight, but it directed the light outward more than upward, giving an imprecise calibration. We used a remote that directed light directly up but realized that users would be standing at different locations around the board and would therefore assume the light would be in a different place depending on their angle. We finally created the finger lights you see above which can be placed directly over the desired location and be readable to the infrared camera simultaneously. 

As we learned at the beginning of the course, the product must be user friendly most of all. We went through many trials in order to attain the ease of the user as well as keeping the enjoyment at a high level.