For the last 9 months I’ve been working on an augmented reality field sport called, Flatland: The Game. We’ve been so busy building that we haven’t really had a chance to document anything. So this week I’m going to try my best to document some stuff and post it here temporarily. Some time in the near future I’ll put together a whole project page for it when the documentation is complete. For now, I’ll post a drawing of the different technologies that the project employs. The project is a commission and features the Nokia N810 Internet Tablet. The original design document specified quite a tall order of technical demands and after some testing we determined that we would have to outsource some of the features to additional technologies.
The game consists of two teams of players interacting on a playing field. Each player is equipped with a magic scepter (which contains the N810 and additional technologies). Players use their physical location and specific gestures to manipulate their in-game characters. Each player can see the virtual field on their scepters LCD screen. To accomplish all this we needed to know:
- The players location relative to the boundaries of the field and at a resolution of less that 1 meter and an update frequency of more than 15 times per second
- The orientation and acceleration of the magic scepter at a frequency of more than 15 times per second
In support a game we would also have to build a way for all the players data to be in sync with each other and a way to persist the state of the game. Here’s the layout that we came up with:
For the location of the players we found that the GPS antenna that’s built into the Nokia N810 does not update fast enough for a fast action field sport. So to get the players position we decided to use camera vision instead. The video feed from a camera positioned over the field is analyzed and the player positions are extracted and translated into a 2d coordinate space. Each player’s position has to be realized discretely so we needed a way to differentiate the player. We decided to go with color tracking because it works well with any resolution and the colors only need to be visible from the birds eye perspective so it would still be pretty unobtrusive to the final aesthetic of the game anyway. The camera vision application updates the game server at a fixed interval. Each player’s Nokia N810 is in constant communication with a central game server and is connected over Wi-Fi. The N810 is updating the game server with information on what the magic scepter is doing and the game server is updating the N810 with the state of the game and the position of all the players.