API for the Quake Agents platform in Python, Matlab/Octave, and XSB Prolog
The file quagent_client.zip
contains API's that that I wrote to enable easy access to the Linux-based
Quagents (Quake
Agents) platform. Quagents uses a client/server model that passes messages through socket calls.
My code does the socket calls for you, so you don't have to write socket code to use Quagents.
The API follows the
Quagents communication protocol, and I have tested all the methods except the
XSB implementation of LOOK.
Here's what you need to do:
- Follow the instructions on the
Quagents: Building the System page to download and build the Quagents
project. I was unable to get the project to compile as-is under
Fedora 7. I fixed this this with the
following modifications:
- Check with your system administrator about what ports are available on the
host machine where you'll be running Quagents. Quagents is
hard-coded, in quake2ur-20050512/src/quagent/quagent_server.c,
to use port 33333. You may want to ask
you system administrator what ports you can use, modify this file appropriately,
and re-compile.
- Download and unzip quagent_client.zip.
- If you're using Octave,
you'll need the sockets package. If it's not already installed on your system,
you can get it here.
For Matlab, I've implemented the necessary socket calls for you, using Java.
The QuagentClient constructor detects whether you're using Octave or Matlab, and
calls the appropriate socket code automatically.
- Launch the server using the quake2ur shell script.
- On the same host machine, change to the appropriate directory (matlab, python, xsb)
and run the test program. A bot should appear, turn around, run a few steps, and die.
If you had to change the port number in the Quagents server,
you'll have to change it in the line that invokes the client (first line in the test program).
Please contact me with any questions or
suggestions.