TreasureHunt

1. Introduction

     "TreasureHunt" is an interactive Android application with a main social component that aims to revolution the way people spend time together. It's based on the idea of having a master of the game that initializes a session by placing items all over the playground, items which cannot be seen by the rest of the players. Instead, the teams are guided by speech indications given based on the current orientation and the distance to the clue. The current orientation is being constantly computed by some function that collect data from sensors and compare it to the absolute position set by the creator of the game . Once a player is around the requested spot, he unlocks the hint placed in that area. This step involves using an AR module that shows the clue on the phone's screen only when it is in the camera's view range.
The picture that overlays can containing a new object to found, a person to recognize or anything that can be hidden by a picture.

2. State of the Art

     There are some applications that have already implemented the idea of treasure hunt using GPS coordinates and QR codes for finding the hidden objects on the map. However, our application comes with new features: the clue, when found, will be revealed using AR (that means "fun++") and real time feedback with directions in order to guide the player (that's because the user will not have the exact coordinates of the treasure).

Munzee - Scavanger Hunt: its main disadvantage is that it requires going to the place where the user wants to hide the treasure and mark the spot using a QR code soooo it's not easy to use!
- Geocaching: it is very expensive and it is not that fun since it only demands you to find the place indicated by the GPS coordinates, end of story
- c:geo: it only shows preset items on the map and it does not provide user interaction, you cannot enable or disable a specific hint, start a local game, because it's based on existing sites
 

3. Software Requirements

     "Treasure Hunt" aims to assist players to find the clues added in a virtual environment game by supporting the following functionalities:

     -  two main playing modes: "Create game" and "Join game"
     -  showing the current location's map and also pinning clues or adding hints on some specified locations for the "Create a Game" Mode
     -  geo-location and compass orientation using GPS coordinates
     -  client-server communication: clients should be able to choose a previously created game and join
     -  storage for the parameters of the games and also for the resources: images
     -  start searching and receiving directions;
     -  Augmented Reality for showing hints, by making visible a certain picture hidden by the game's manager

   The application also provides speech indications when the player has reached an approximate area, guiding him to "Turn Around", "Keep Walking", "Turn left" and other indications.

4. System Design

 The application has been designed and tested for Android 4.0 Ice Cream Sandwich, which is why, on lower versions, it might not offer its full functionalities .

 "TreasureHunt" requires a phone with the following specifications: GPS  Sensors and a Camera, in order to track the location in real time and interact with the game.
 
  First of all, it offers a graphical interface for choosing between: "Create game" or "Join Game", options that map on the client-server model.
  In the "Create Game" interface, the user is able to place hints on a map, map that specifies the surroundings using GPS location. A new game can be configured with multiple options, such as description,  expiration time, question and answer to unlock the hint. The data inserted is sent to the server and it will be accessed later by the players that join that specific game.
 
  In the "Join Game" interface, the user gets to interact with the most attractive part of the application, since it only has speech indications and an approximate area to search and find the clue.
  The background calculus makes sure that the user goes towards the hidden object, by collecting data from the sensors and suggest certain indications in real time.
  Once the phone gets around chosen spot, the Camera Option is activated and the user can scan the area for finding the clue, still being permanently assisted by the speech indications.
  The last step of unlocking the clue requires inserting the right answer in an answer box which pops on screen when the local coordinates correspond to those retrieved from the server for the current game.

5. Implementation

  We have implemented several modules, for offering the functionalities expected, such as:
   1. Google Maps API by using Google Play Services Library for loading maps on which will be placed specific markers
   2. Google End Points API for data storage
   3. Web Speech Recognition API, for speech indications

 Orientation and Calculus


 Data Storage for Info and Images


 Augmented Reality for hiding pictures


 Speech Recognition - Text To Speech Indications


 User Interface and Options

                                                                                                                                                                                                

  

6. Testing

  We tested our application on three phones: Samsung Galaxy S2, running Android 4.1.2 version, LG p690 running Android 2.3.4 and Samsung Galaxy S Advance, running Android 2.3.4.
  You will need a  4+ Android Version to load Google Maps V2, an Internet Connection to receive information about the treasure and the GPS service enabled.
  Our application asks you to turn on your GPS so that you are aware of this fact.

  Your phone will also requires a functional camera, in order to get the camera's angle to compute the local orientation and to scan the area, when needed.

 7. Conclusion

  Treasure Hunt is a virtual environment that comes to assist the on-site game, because it minimizes the time given for preparing the game and it is also a fun and easy to use tool.
  We will improve the application's interface and we are thinking of introducing a Team Mode, in which team members are able to see each other's progress and help their team.