18 | | == Table of Contents == |
| 18 | == What is a Quagent? == |
| 19 | At the lowest level, Quagents are much like remote control robots. They can move about their area, jump, rotate, and perform basic actions. They have a variety of sensors to gather data about their environment. Quagents look like characters of the Quake 3 game. |
| 20 | |
| 21 | [[Image(rsz_screenshot_from_2012-07-03_082122.png)]] |
| 22 | |
| 23 | A standard Quagent. |
| 24 | |
| 25 | == [[ProtocolZero]] == |
| 26 | Quagents can be directed by ProtocolZero commands. With ProtocolZero, you act as a client and send commands over a TCP channel to the “remotely controlled” bot. ProtocolZero commands look something like this: "n mo 90 0". These commands can order a Quagent to execute certain predefined actions, such as move indefinitely, or rotate. They can also get information about the state of Quagent, such as its location or the direction its facing. To learn more about how the TCP channel works, read TutorialTelnet. |
| 27 | |
| 28 | == ProtocolOne == |
| 29 | There is also a level above ProtocolZero, called ProtocolOne. ProtocolOne is the Java API which abstracts the Quagents game engine to a simple Java interface. If you don't want to deal with input/output on sockets, you can do that instead via function calls in java. So instead of typing commands like “n mo 90 0”, quagent.rotate(90) will execute the same thing for you. |
| 30 | Using the ProtocolOne java code, you can program different actions and behaviors for the quagents. You can also program Scenarios. |
| 31 | |
| 32 | == [[Scenarios]] == |
| 33 | [[Scenarios]] are the main part of Quagents. A scenario is essentially an environment with different rules and features that you set up for your quagents to interact in. Scenarios are launched at the start of Quagents. These are the environments in which AI research can be conducted. |
| 34 | |
| 35 | [[Image(wumpusworld.png)]] |
| 36 | |
| 37 | This is an example of the [[Wumpus World]] Scenario. |
| 38 | |
| 39 | == [[ioquake3]] == |
| 40 | Quagents source code can also be modified to accomplish anything else you can't accomplish with the above options, such as creating a new object in the game. For more information about Quagents source code programming, see [[ioquake3]]. |
| 41 | |
| 42 | == Detailed Table of Contents == |
51 | | |
52 | | == Project Goals == |
53 | | |
54 | | * Open-source and freely-redistributable |
55 | | * Cross-platform (linux, mac, windows) |
56 | | * Support AI research and education |
57 | | * Easy to install/deploy, easy to run, easy to develop for |
58 | | |
59 | | == TRAC Documentation == |
60 | | |
61 | | * TracGuide -- Built-in Documentation |
62 | | * [http://trac.edgewall.org/ The Trac project] -- Trac Open Source Project |
63 | | * [http://trac.edgewall.org/wiki/TracFaq Trac FAQ] -- Frequently Asked Questions |
64 | | * TracSupport -- Trac Support |
65 | | |
66 | | For a complete list of local wiki pages, see TitleIndex. |