The game was designed for up to eight players, one player for each screen of the Virtual Room at RMIT University, which consists of an octagonal array of screens. Each player controls a rectangular shaped paddle via hand movements to move the paddle across their own screen. The hand movements are tracked by Microsoft Kinect for XBox depth cameras located at the bottom of every screen. The players use shutter glasses to look into the shared octagonal virtual space via active stereoscopic rear projected panels. The virtual environment contains a virtual ball that bounces around in the virtual space at an increasing speed. It is the aim of every player to use the paddle to deflect any incoming balls to protect the player’s screen. Every game has a time limit of 90 seconds. The game records for every player the number of times the ball is successfully deflected by the paddle (hit) and the number of times the ball went past a paddle and hits the screen (miss). The winner is determined by the lowest number of screen hits. In the case of equal number of screen hits, the player with the higher number of paddle hits wins. In the event that there are players with the same number of screen and paddle hits, the game announces a tie between those players, which can be resolved in another game. Figure 1 shows a picture of a player playing the game in the Virtual Room at RMIT University. Figure 2 shows the design of the virtual space and the round ball.
The octagonal array of screens that make up the Virtual Room are 2m in length and 1.5 m in height. Every side of the Virtual Room at RMIT University is equipped with a Microsoft Kinect for Xbox Depth Camera and a NVidia 3D Vision IR emitter positioned the bottom of the screen. Players wear NVidia 3D Vision Shutter glasses. Separators between the individual screens prevent contamination of the IR signals emitted by the NVidia 3D Vision IR emitter and the Microsoft Kinect Depth Camera from adjacent screens and support the player to buy into the illusion of a shared virtual space.
Each screen is controlled by a computer equipped with commodity hardware consisting of Intel Core i7 3.3Ghz CPU, EVGA FW3 X58 Motherboard, 6Gb DDR3 RAM, Leadtek Quadro 4000 Graphics Card and Realtek 1Gb onboard Ethernet running on Win 7 Enterprise 64 bit. For the stereoscopic projection we used one ViewSonic PJD6531w data projector for every screen.
The laptop that was used for the testing of condition 1 was a standard HP EliteBook 8740w.
The computers were networked through a Nortel 72 port switch stack designed to support a minimum of 2Mbit dedicated Quality of Service.
The game itself was developed in Unity 3D and interfaced with the Microsoft Kinect for XBox through an open source OpenNI Wrapper and the open source OpenNI Sensor device module.
We executed one instance of the game on every computer, with a single instance acting as the server and the others as clients. The server maintains the ball position, paddle position and detects ball collisions with the paddles and the screen and sends this information to all the clients. The clients simply send paddle position updates to the server via Unity’s integrated network component. As the game was designed to run on a LAN, the timely transmission of game control messages was not problematic. It needs to be noted however, that this approach will not work reliably for games that are intended to be played over large distances across the internet.