Version 2 (modified by jpawlick, 14 years ago) (diff) |
---|
Getting Started
This is the top level tutorial page for beginning programming with Quagents.
Getting Oriented
Before you begin programming in Quagents, it is useful to know a bit about how Quagents work.
Quagents occupy a volume of space described by a bounding box. Their bounding box is always axis-aligned (that is, does not change facing or dimension even if the Quagent does). It is 30 units wide and long, and 60 units high. The "origin" of a Quagent is 24 units above the bottom of the box. As long as an area of the bottom of the bounding box is in contact with a surface, the Quagent is on the ground and will not fall. Otherwise, the Quagent is in freefall and is affected normally by gravity.
The below image is flawed in that it portrays the bounding box as 32 units wide. Actually, it is 30 (-15 to +15). Pretend all those 16s are 15s. [FIXME: new image.]
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 out at their environment. They have a heading (0 degrees is along the positive X axis, 90 is along the positive Y, and so on), inclination (90 is straight down, 0 is level, -90 is straight up), and roll (we fix roll at zero, however). Changes in heading are called "yaw". Changes in inclination are called "pitch".
Choosing a Level
Quagents has multiple levels to develop for, depending on your project. At the lowest level, you can modify the Quagents and Quake III source code to accomplish what you want. If you prefer to use the direct commands and architecture the Quagents team has built in to Quake, you can program at the ProtocolZero level, where you act as a client and send commands over a TCP channel to a "remotely controlled" bot. If you don't want to deal with input/output on sockets, you can use the code we provide to do that for you, and simply program via function calls (ProtocolOne).
- To get more information about installing and running Quagents, see TutorialInstall?. [FIXME: Josh, it would be nice if we had such a page.]
- To get more information about Quagents source code programming, see TutorialSource?. [FIXME: Josh, it would be nice if we had a tutorial page on starting points to changing the source code.]
- To get more information about ProtocolZero programming, see TelnetTutorial?.
- To get more information about ProtocolOne programming, see TutorialOne?. [FIXME: Julian, it would be nice if we had a tutorial page on using your code.]
Attachments (3)
-
coordinates.png
(165.2 KB) -
added by jpawlick 14 years ago.
Image showing coordinates in Quake3.
- box.2.png (99.0 KB) - added by jpawlick 13 years ago.
- box.png (99.0 KB) - added by jpawlick 13 years ago.
Download all attachments as: .zip