wiki:Getting Started

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.

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 Quagents source code programming, see ioquake3.
  • To get more information about ProtocolZero programming, see TutorialTelnet.
  • 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.]
Last modified 13 years ago Last modified on Aug 26, 2011 3:01:56 PM

Attachments (3)

Download all attachments as: .zip