Treasure Quest

Treasure Quest takes the classic treasure hunt and mixes it with location services and the 4Square API to create a competitive treasure hunt game of bars and restaurants that you can play with friends across the urban landscape of your choice.

Create your own quest with a random selection of bars and restaurants that are within your geographic parameters - choose how many and how far you're willing to go. Each team gets the objectives in a different order and you'll all end up at the final destination of your choice. The details of your objectives (name) are only revealed when you get close enough, and your only clue is your map pin turning green when you are headed in the right direction. Push notifications let all the players in the game know which teams are making progress. Check the map to see where the other players are and compare your progress against the other teams.

Parse Server and ParseUI

We used Parse Server as our backend for user authentication, database and notifications.

ClodeCode is javascript that runs on the Parse Server allowing us to create server-side logic for sending push notifications to the different users for different situations during gameplay.

 

Team Play

One aspect of gameplay we wanted to explore was competitive play with multiple teams. So when you create a quest, you can specify how many different players, and then send text invitations to other people to join the game.

The game starts when everyone has joined - either by opening a text with a link to the game, or typing in unique code.

TQ_Wait.png

Wayfinding

The following is placeholder text 

TQ_List.png

Process

Treasure Quest was the final group project for my Advanced Software Development in iOS course at Code Fellows. The basic process was for every student to pitch at least one idea and vote on them. Students then selected which of the top 3 projects they wanted to work on. Treasure Quest had a team of four - myself, Sean, Rick and Michael.

Our team spent pretty much an entire day defining the scope of the project and deciding on the overall game strategy and game play. I had pitched a general idea of a treasure hunt / scavenger hunt game and while we all wanted to build a generalized engine, we decided to focus on generated lists of objectives instead of curated, have teams so it could be competitive, and use a location map with way-finding ui for the game play. 

Contributions

Our team worked well together so we were able to pair program to work through a variety of different areas and solve challenges as a team. My main contributions were working with Parse Server on the backend, and implementing server-side CloudCode for in-game push notifications (i.e. when a team reaches an objective, the rest of the players are notified.) I also implemented a map view showing the play field and the other players as well as a leader-board showing each teams progress. I also worked on various integration issues like sharing game codes between users, bringing together the creation and play phases of the game. Additionally, I synthesized all of our initial product definition work into a set of mockup screenshots and segmented the work into 3 phases - Create, Join and Play. 

Technology

This project was written in Objective-C. We used Parse Server for our database, user authentication and push notifications. The project also utilized mapkit, location services and the 4Square API for locations. 

Screenshots

The following screenshots show the basic application flow from the sign-in process, creating a new quest and the game-play list and maps.