Making music with bots in combat

Oliver, Pickles, 2002-2003 and 2006


q3apd was a project developed in 2002 and 2003 by Steven Pickles and Julian Oliver to expose the events in a game of Quake3 Arena, whether multiplayer or otherwise, to external programs used by artists to the ends of making music, graphical art or controlling mechanical events. It is the belief of the artists that the richness of activity in a 3D computer games is ripe for aesthetic and scientific investigation, merely needing some means of getting that information out of the game and into another tool.

q3apd has now been used by many artists and researchers in the creation of artwork. q3apd has been toured from Europe to America and Japan in game-based performances by Oliver and was exhibited in an installation context at the LoveBytes Festival 2006, Sheffield, U.K for one month.

In this installation the movement, position, health, viewangle and item status of 4 software agents in combat was sent to the synthesis environment Pure Data and used to make an auralisation of activity in the arena: a musical re-presentation of the flows and gestures of artifical life in combat. The LoveBytes link to the installation is archived here.


q3apd 2003


Here is a low quality version of q3apd recorded from the ‘eyes’ of one bot in the LoveBytes 2006 exhibition.


(DISCLAIMER: This guide worked in 2006. It may not work any more due to the availability of software and/or software versions outside the author’s control.

q3apd is free software but was made before QuakeIII itself was released under the General Public License, to later become the ioquake3 project. For this reason you still need to use the official QuakeIII release to use q3apd.

q3apd was made for Linux and as such will only run on that platform.

First grab the latest Quake III point release. We used version 1.32. Make a directory called pd in /usr/local/games/quake3/, or wherever Quake3 is installed on your system (this is the default install path on a Debian system). cd into this new directory and unzip this package of modules ensure that this machine is on the same network as the machine with PD on it. Run the q3apd.pd patch (from the above archive) in PD on this machine (ping it to be sure). In the terminal, exec Quake III with:

yourbox:~$ quake3 +set sv_pure 0 +set fs_game pd +devmap (yourmap)

Once the map is loaded pull down the console in q3a with the ‘~’ key and type:

/set fudi_hostname localhost  
/set fudi_port 6662  
/set fudi_open 1

netsend, an object used in PD and MaxMSP systems to send UDP data over a network, is is now broadcasting. at this stage you should see plenty of activity in the pd patch on the PD machine. enjoy!