last update: 2008-02-04
What is it?
VsGolf was developed during one of the coolest courses ("Mobile Gaming Praktikum") I ever did at my university. It is a game running on location-aware mobile devices for (at least) two larger teams. The Gameflow is as follows: Each team has his home-area (called the "bunker"), a circular region of about 100 meters in diameter. Also, there are virtual golf-balls lying around all over the playfield (which may be a whole city!). Balls lying inside a bunker count as negative points for the respective team; so, the teams should make an effort to keep balls out of their bunker. Each team-member can therefore kick balls. She does that by walking to the spot, where the virtual ball lies and kicks it by running over it. She controls the strength of the kick and the direction through the speed and direction of her running. When she kicks the ball into the enemie's bunker, she gets some extra points for her team. A match can run from few days to a semestre (it was thought as a new game between the two big universities in Munich ;) ).
That was the basic (and implemented) concept. However, we had lots and lots of ideas how to make the game even cooler: There could be heavy balls, which can only by kicked by two or more people together; or you could tag the balls with massages or stories and add so a little more motivation and fascination. Or you could make balls become "hot": The longer a ball lies at the same spot, the more points are subtracted from the respective team, so you have to aim more carefully to hit little frequented spots. Or ....
In all of these concepts, VsGolf stays apart from virtually all other games: You can play it ambient or actively, i.e., you can just kick a ball if you randomly stumble upon one or you can actively seek balls via the simple map-view (see screenshot above). Also, VsGolf is played in the real world; yes, you kick virtual balls, but all interaction happens in reality an you don't have to look on your mobile device's display to play. Finally, kicking your ball by running over it is just waaay cooler than any button-pressing ;)
How does it work?
VsGolf relies heavily on the TraX-framework developed by Axel Küpper and Georg Treu. The VsGolf-client running on mobile devices uses this framework to fix its position by any available positioning way: GPS, bluetooth or wifi-triangulation. TraX handles also the communication with the server. So, when VsGolf is started on the client, it pulls a list of all balls from the server. Then it frequently checks its position. When the device comes near of a virtual ball it may switch into kicking-mode: The user has a few seconds to "place the ball on a tee". Then she has to step back a little and runs over the place of the "tee" to kick the ball. Speed and angle of her run determinate thereby range and direction of the kick. Afterwards, the new position of the ball is uploaded to the server, which takes the new position into account when computing points.
Closed. The final status was a prototype version (so pre-alpha) that works without any known bugs. We stopped developing after the course was finished, since we deem the concept proven. However, if location-aware devices ever hit the main-stream, we might resurrect and rewrite VsGolf.
Give me the technicals!
VsGolf is written completely (in 4 days) in JavaME with Eclipse as IDE and a mobile device emulator from Nokia. All position-fixes and communication wirh the (MySQL-)server is handled by the TraX-framework. The client effectively runs in three separate threads: TraX, that delivers events and position-fixes into a buffer-object, a animation-thread, which effectively implements a drawing-loop, and the main-thread, which runs interactions. This structure, JavaME, Eclipse and TraX proved to be a very powerful combination: After one forenoon of specifying and planning, we started implementing. And four days later, the system was up and running - granted with rather poor graphics, but also without any major bugs!
I can't give you the source-code for VsGolf, since it stayed on the computers of the university. However, we've written a scientific paper, which was published at the Computer Software and Applications Conference, 2007. You can get the paper here at IEEE:
COMPSAC 2007 - Vol. 2. 31st Annual International Volume 2, Issue , 24-27 July 2007 Page(s):109 - 114
... or download it directly from my page: VsGolf_paper.pdf (609 KB)