What it does
This is a minigolf game happening on top of a real cardboard model track. The track has multiple Android devices positioned on top of it that display a "see-through" image of the track, that allow us to superimpose the ball and paddle on top. The game itself is gesture controlled with a Leap Motion.
How I built it
I have written an Android app that allows each device to display their portion of the track. They are all connected to and are being controlled by a Node.js server. The server assigns map portions to devices and handles transitions of the ball between device borders, as well as input from the player. The input is made possible with a Leap Motion. All devices run a physics simulation to make the game work, including complex behaviors like exploding barrels.
Challenges I ran into
We have initially designed the minigolf track to consist of 10 devices, but 4 of them turned out to be too old to work, requiring us to scrap the design and make a new one. The quirks of the physics engine had to be ironed out to prevent bugs.
Accomplishments that I'm proud of
We made a beautiful model of a minigolf course and have succeeded in implementing the key feature of a ball transition across device borders, requiring careful synchronisation. The Leap Motion integration works well and the hack joins the physical and virtual worlds, adding to the experience. The exploding barrels work perfectly well too!
What I learned
Synchronising the network communication between almost 10 devices is a difficult task, and hardware cannot always be depended on.
What's next for Augmented Reality Golf
In the future we would like to make the game track adapt dynamically to the number of devices used, so that it automatically generates the track for each configuration.