At the inaugural hackathon HackGT@FIB, a cooperative event between Georgia Tech and the Facultat d'Informacion de Barcelona held in Barcelona, Spain, the theme was "Disrupting Social Accessibility". Our team brainstormed many ideas, from utilizing the growing sharing economy to catering to the loneliness of the elderly, but in the end we decided to encourage physical activity, outdoor exploration, and plain old fun. After the release of Pokemon Go, we realized how exciting real-time GPS tracking could make a game, and what better medium than through the iconic and timeless Pac-man?

What it does

Upon navigating to the website on a mobile device (Chrome works best), a map appears, centered on the user. The Pac-man avatar is at the user's location, and several dots are scattered around along sidewalks and walkways. Upon pressing "start", the red ghost appears and begins chasing the user, and the sound effects begin. The user must run around and collect all the dots to get as many points as possibly before being caught by the ghost!

How we built it

We split the project into three main parts: the ghosts, Pac-man, and the dots. All three tasks utilized the Google Maps API in different ways.

  • The ghosts use overlays to display their sprites on the map, and to chase Pac-man they continuously move towards him, ignoring walls and terrain. When the collide, the game ends.
  • Pac-man was created by using a Marker object and continuously moving around the screen as the user moves.
  • The dots use the Google Maps Directions API to create a route from the origin (where the player began) to a location on a grid, determined by the desired map size and dot density. The nearest sidewalk or pathway to this dot is then determined, and this new location is where a corresponding dot is placed. When dots are walked over, they disappear and give the user points.

Challenges we ran into

  • It was really hard to get the dots to always fall on paths or sidewalks. There was no straightforward way that we found to input a coordinate pair to Google Maps and receive the coordinate of the clostest path, so we had to use entire routes and then only record the endpoint, since it stops before it leaves the path.
  • We couldn't get ghosts to follow the paths and sidewalks, so we just let them float anywhere they wanted. We beleive that we could implement path-bound ghosts if we could query more data and way-points from Google Maps, but with our free license we were limited to a certain amount of requests per time, and creating the dots always ran through that allotment.
  • In general, ghost AI was outside the scope of this project, other than a direct-route tactic.
  • Getting the Pac-man avatar to follow you smoothly was a challenge that wasn't ever accomplished, but this largely comes down to hardware and software limitations out of our control. Although it would be very nice to have a more responsive movement.

Accomplishments that we're proud of

  • We're very proud that we created a working game that we can enjoy and let others play to test.
  • We're also proud of having no prior experience with either JavaScript or Google Maps API, so we learned everything on our own over the 17 hours we had of hacking time.
  • We feel like this is a game that people would actually play, and we're proud to have created something that others agree is neat and useful.

What we learned

  • How to code in JavaScript.
  • How to use APIs, specifically Google Maps
  • The importance of designing an enjoyable and easily-navigable expperience.

What's next for Urban Arcade

As our name implies, we see lots of potential for other games to be played in this kind of environment. From the Tron Light Cycle game to Ping, lots of neat and novel forms of games could be implemented, and they would add to an expanding interest in their personal network.

Share this project: