wiki:Scenarios

Version 7 (modified by xwang, 13 years ago) (diff)

--

Scenarios

Quagents revolves around scenarios. A scenario is designed to be a modular cluster of code consisting of:

  • A set of changes to the server, which constitute global "rule" changes. These must be able to be enabled and disabled using Quagents Configuration Options.

This page describes currently implemented scenarios that users may immediately access. For more information, see Quagents Application? and Scenario Development?.

Wumpus World

We have simulated the Wumpus World in Quake. The goal is for an agent to explore the Wumpus World and find the gold while avoiding the Wumpus and Pits. We use invisible items to represent the senses, which the agent can perceive by calling the radar function. These items are "quagent_sense_breeze", "quagent_sense_stench" and "quagent_sense_glitter". The gold is also represented by an item we have created called "quagent_item_gold". The agent starts in the room at the lower left corner of the map. The gold and wumpus are placed in random rooms other than the start room. Each room other than the start can also have a 0.2 probability of being a pit. A stench is perceived in all rooms adjacent to the wumpus. A breeze if felt in all rooms adjacent to a pit. A glitter is seen in the room with the gold.

We have a working demo of an agent exploring the Wumpus World. The agent is able to update its view of the world through what it senses in each room. The agent uses breadth first search to plan a path from one room to another, only travelling through rooms that it knows are safe, and depth first search to explore the world. We have two maps for the Wumpus World: WumpusWorld.map and Wumpus2.map. We are currently working on generating random maps.

Capture the Flag

We have implemented a Capture the Flag (CTF) scenario into Quake. The goal of this scenario is to produce data on how players act in throughout the course of the game. Currently, the scenario produces tuples of location data, timestamps, and audio tags. This data will be used for further experiments, such as using machine learning to create a general model for Capture the Flag. The scenario could also be extended by replacing human players with collaborative agents.

There are currently two implementations of the CTF scenario implemented in Quagents - one clientside and one serverside:

  • The clientside scenario is implemented using only the Quagents3 Java API. In it, the player controls a Quagent using Java swing listeners. A simple GUI is provided, which provides experiment control. Additionally, audio recording is automatically handled within the client code, so the user need only attach a microphone. For a more detailed description, see Quagents Capture the Flag?.
  • The serverside scenario is implemented from within the Quake VM. Enabled using Quagents Configuration Options, it automatically records all player's data (as described above) and uses a trap function to write the data to a logfile within the ioquake3 private filesystem. The user must, however, start up an external voice recorder to record audio tags. The Quagents team has provided one of these for general use, located in quagents/client/auxquagents.

It is important to note that this scenario is distinct from the native Quake 3 Capture the Flag mode. The goal of the scenario is to produce usable data for further research, not to "win" the game and get the highest score.

Sandbox

This scenario is to allow users to easily experiment with Quagents. It provides a simple framework which users may insert code into, so users need only worry about the Quagent code execution, and not the macroscopic scenario model.

Cave Exploration

This scenario gives the user control over a team of Quagents, with the goal of exploring an unknown map. The user controls the Quagents indirectly, via behaviors accessible through drop-down menus in the scenario GUI. Using these behaviors, the user must collaborate with the agents to effectively explore the map.