Quest is a dynamic hide and seek game where an admin can drop multiple quest items within a world for users to find.
- Search the world to find Quest items
- Collect up to a specified number per day
- Keep up your daily quest to stay on top of the leaderboard
- Key Asset: When clicked this asset will open the drawer and allow users and admins to start interacting with the app.
- Quest Items: When clicked the user will be credited with finding the Quest item and the item will then be hidden again somewhere else in the world
- Leaderboard
- Admin settings
- Quest item found details
- Click on the key asset to open the drawer and select the Admin tab
- From here you can do the following:
- Update Number Allowed To Collect Per Day. Changing this will change the number of Quest items a user can collect in a given day.
- Update Quest Item Image URL. Change this will immediately change all Quest items already dropped in world. Note: This will not change the Key Asset image (see Implementation).
- Click the Hide in world button to hide a new Quest item somewhere in the world. Once it's been placed you'll see it added to the bottom of the Placed items list
- Click the Remove all button to remove all Quest items currently dropped in the world.
- The Placed Items table shows a list of all existing Quest items. Clicking on the Walk to Item icon button will move your avatar to that place Quest item. Clicking on the Remove Item button will immediately remove the place Quest item from the world.
- Clone this repository
- Run
npm iin server cd client- Run
npm iin client cd ..back to server
API_KEY=xxxxxxxxxxxxx
DEFAULT_QUEST_ITEM_IMAGE_URL=pathtodefaultimage
INSTANCE_DOMAIN=api.topia.io
INSTANCE_PROTOCOL=https
INTERACTIVE_KEY=xxxxxxxxxxxxx
INTERACTIVE_SECRET=xxxxxxxxxxxxxx
WEB_IMAGE_ASSET_ID=webImageAssetTopia Production Account Dashboard
We use data objects to store information about each implementation of the app per world.
-
Dropped Assets: the data object attached to the dropped assets can optionally include
questItemImagewhich will be used instead of the default image when someone first interacts with the instance of Quest. Additionally it'll capture user progress to be displayed in the leaderboard- leaderboard (
leaderboard.${profileId})
- leaderboard (
-
World: the data object attached to the world will store information for every instance of the app in a given world by sceneDropId and will persist if a specific instance is removed manually from world instead of through the Admin screen.
- questItems (
scenes.${sceneDropId}.questItems.${assetId})
- questItems (
-
User: the data object attached to the user will store user's progress per instance of Quest across all worlds.
- currentStreak
- lastCollectedDate
- longestStreak
- totalCollected
- totalCollectedToday