Augmented reality

Wowzers, it's been two whole months since I last posted! And for good reason: I've been relaxing, and not working on any of the projects (except for learning Latin). I think I may have burned out on mechanical things.

In any case, I have yet another half-baked project: an augmented reality game (ARG) for smartphones with cameras, GPS locators, and tilt sensors. The general interface for ARGs is simple: show the user the real-time input to the camera, and then based on the player's location and orientation of the phone, overlay game graphics that can be interacted with. The game mechanics are then worked in, and since it is a multiplayer ARG, there will have to be a central server.

When the Droid X comes out in a few days, I'm going to get one and play with it.

The only things I haven't quite figured out are:

  • How to prevent someone from writing a program which spoofs http requests to make it look like they are walking around with their phone, when in reality they are sitting at a desk? I haven't yet found a crypto protocol that works under the assumption that the malicious player can decompile the program to find any and all secret keys, unique phone IDs, and protocol details.
  • How to interact with objects that are within the range of the current GPS accuracy, and how to deal with GPS accuracy changes. The accuracy, based on quick let-me-google-that-for-you technology, should be anywhere from 1 meter to 30 meters. So an object could be 30 meters away from the phone, but the GPS coordinates would be the same.

One possibility would be to allow the player to interact with anything within view that is within 30 meters. However, that still doesn't solve the basic problem of how to display the object. If the player walks in one direction facing an object, that object will not even move until the GPS coordinates change, and then it may suddenly disappear, because now the player is suddenly 30 meters away according to GPS.

Maybe shaking the phone slightly could make the user "walk" in the direction they are facing, but I think the player's hand would get tired after a while.

As for the game itself, I think it would be cooperative, similar to A Tale in the Desert. Resource collection, building, trading, exploring, and leveling.

An idea I have been considering is how to ensure that there are enough resources around a player's starting location so that they don't have to get stuck in a "bad location". My idea is that upon starting, a player gets a number of "seeds". The player can drop a seed, which will let the server generate resources in a circle (maybe 10 km in diameter) around the player: all the common resources, and some rarer resources. Seeds cannot be dropped within, say, 5 km of any other seed. This ensures that the player will not end up in a bad location, and also allows the player to seed other areas that they may normally be around.

Fun? Maybe. A Tale in the Desert isn't nearly as popular as, say, WoW. So I will most likely just release the game for free and allow the players to come up with enhancements that would then be worked into the game.

Oh, and the theme would be Imperial Rome, because then I can work some Latin in!