Old fashioned scavenger hunts, where teams or individuals complete a series of fun or interesting (sometimes difficult) challenges.
What it does
A creator can build a quest by using a desktop app. The creator uses the map to define a boundary in which the quest takes place and a set of challenges to complete. Challenges might be as simple as going to a certain location, answering a question about something they find at a location, or more complicated things like aligning team members along a specified heading or doing some GIS analysis (overlay, for example) to answer a question. The creator can create new challenges for the quest and also include existing (previously created) challenges. After choosing the teams (and players) to participate in the quest, setting a start location and start/end times, the quest is ready!
To participate in the quest, players assemble at the start location at the specified time. Teams use their mobile devices (iOS) to complete the quest. They can view challenge descriptions and choose any challenge they want to try. Challenges are completed successfully by either submitting geometry at the correct location or by answering a question. Each challenge has a different point value (based on difficulty), and teams can always back out and start a new one if they have problems completing it. As challenges are completed, the points are recorded and a leader board is updated that the teams can check. When the quest is over (everyone completes it or time expires), a winner is declared.
How we built it
We used ArcGIS Online to store the hosted feature services and tables required to define quests, challenges, teams, and players. We consumed these data using ArcGIS Runtime apps for the quest creation (Universal Windows Platform with .NET SDK) and for the client app (iOS SDK). The client app adds features using the device location to submit answers for each challenge. Geometry overlay and text comparison are used to validate responses to quest challenges, so the player can get instant notification of success/failure for a task.
Challenges we ran into
- Our original intent was to develop the client app for Android, iOS, and Windows (as a cross-platform Xamarin project). We didn't want to waste the native iOS expertise on our team, so we went with iOS Swift instead.
- We found some problems with the database design, but didn't feel we had time to update it. Relationships in the hosted feature services may have made access to related features easier (rather than doing intermediate queries for related feature IDs, e.g.).
Accomplishments that we're proud of
- Solid framework for the app that allows quest creator to customize their quests (define a variety of challenges, create a theme for the quest, etc.) and track players during game play.
- Simple and intuitive UX for the client app.
- Created something that could be easily picked up and used by another organization.
What we learned
- Time spent on the design pays off.
What's next for GeoQuest
- Support for more complicated challenges: add some basic GIS functionality to the client app to use in completing a task, e.g.
- More sophisticated scoring, tracking scores for individual players (not just for teams).
- Ability to use hints for challenges (incurs a score penalty).
- Levels for players (increase with experience or score), levels for challenges and quests.
- Virtual quests ... performed using the map but without physically traveling to locations.