Quest World is a text-based adventure game with an observability twist. In this game, you'll embark on a journey through a mystical world, interacting with characters, exploring locations, and making choices that shape your destiny. The game is designed to teach you about observability concepts while you embark on an exciting quest.
Checkout our blog post here to learn more about the game.
You can play Quest World in a sandbox environment. The online VM is pre-configured with all the necessary components to run the game. Click the button below to launch the VM and start playing.
-
Clone the repository
git clone https://github.com/grafana/adventure.git
-
Navigate to the
adventure
directorycd adventure
-
Spin up the Observability Stack using Docker Compose
docker compose up -d
Quest World runs as a python application our recommended way to install it is to use a virtual environment.
-
Create a virtual environment
python3.12 -m venv .venv
-
Activate the virtual environment
source .venv/bin/activate
-
Install the required dependencies
pip install -r requirements.txt
-
Run the application
python main.py
- Upon starting the game, you will receive a description of your current location and a list of available actions.
- Type the command corresponding to the action you want to take and press Enter.
- The game continues based on your inputs and choices.
- This game involves checking Grafana dashboards to progress. You can access the Grafana dashboard at
http://localhost:3000
. Check the dashboard for hints and clues.
At any point, you can type list actions
to see the available commands in your current location.
Some universal commands include:
quit
orexit
: End the game.list actions
: Display available actions.
Sample Actions:
- Movement:
go north
go south
go to town
- Interactions:
request sword
pick herb
explore
accept quest
look at sword
pray
- Special Commands:
cheat
(to obtain a sword immediately; not recommended).
Note: Not all actions are available in every location. Some actions may require certain conditions to be met or prerequisites to be fulfilled.
- Explore Thoroughly: Don't hesitate to try different actions to discover hidden elements.
- Manage Your Items: Keep track of items like swords and herbs; they can affect your interactions.
- Interact with Characters: Talking to NPCs like the blacksmith, wizard, or priest can open new paths.
- Monitor Forge Heat: When at the blacksmith, you'll need to manage the forge's heat to get your sword.
- Beware of Choices: Some decisions, like accepting the wizard's offer, have consequences.
-
Starting Out:
- You're at the starting point with the option to
go north
orcheat
. - Typing
go north
takes you to the forest.
- You're at the starting point with the option to
-
In the Forest:
- Options include
go north
to the cave,go south
back to start,go to town
, orpick herb
. - You might choose to
pick herb
and thengo to town
.
- Options include
-
In the Town:
- Several locations to explore:
blacksmith
,mysterious man
,quest giver
,chapel
. - Visit the
blacksmith
torequest sword
.
- Several locations to explore:
-
At the Blacksmith:
- After requesting a sword, you'll need to
heat forge
andcheck sword
periodically. - Adjust the forge heat using
heat forge
andcool forge
until the sword is ready.
- After requesting a sword, you'll need to
-
Getting the Sword:
- Once the forge is at the correct temperature,
check sword
will let you obtain it. - With the sword, you can interact with other characters differently.
- Once the forge is at the correct temperature,
-
Meeting the Wizard:
- Return to town and choose
mysterious man
to meet the wizard (requires having a sword). - Decide whether to
accept his offer
ordecline his offer
.
- Return to town and choose
-
Accepting a Quest:
- Visit the
quest giver
toaccept quest
. - Your ability to complete the quest may depend on previous choices.
- Visit the
-
Visiting the Chapel:
- Go to the
chapel
andlook at sword
to interact with the priest. - The priest can bless your sword, especially if it's been cursed.
- Go to the
Remember, the game is dynamic, and your choices can lead to different outcomes. Enjoy the adventure!