Unreal Tournament is a three-dimensional network based first person shooter game where players can compete in either individual or team games. GameBots is an Unreal Tournament modification that allows software agents to play the game. The Unreal Tournament game server feeds the player’s sensory information to the agent (over the network) and the agent player feeds actions (like move, shoot, talk, etc.) back to the game. This sort of modification is ideal for use as an environment for AI research. Andrew Marshall at USC-ISI created the JavaBot API to provide a higher-level interface in order to the GameBots for Unreal protocol and make it much easier for research groups to develop agents/bots for this rich domain. Developers can create Unreal Tournament software players without having to worry about the specific GameBot protocol, network socket programming, message passing and other pragmatic issues. A group of students from Texas A&M extended Andrews code as part of a multi-agent systems course project. We created and currently maintain this sourceforge project.

DiagramThis diagram shows how the different components fit together in the development of a Java-based agent player in Unreal Tournament. In the diagram shown, the Gamebots for Unreal Tournament infrastructure is colored blue, the components colored green are contained in the Javabot package, and the red components are those built on top of the Javabot platform. As you can see, developing a Java-based AI engine for an agent player for Unreal Tournament is straightforward. Not much knowledge of the specifics of the Gamebots protocol is necessary to implement an agent player, just the ability to implement the Bot interface in the Javabot package (view the API documentation online).

What's in a JavaBot Release


The following are required to run Javabot but not included with the release (see the downloads section of the Gamebots page):

Running the BotRunnerApp

The BotRunnerApp is a GUI Javabot starter (screenshots are here). To run the BotRunnerApp, download a release and unpack it. The file JavaBots.jar is an executable java file. Windows users can double-click on the file in Windows Explorer to run BotRunnerApp. You can start the application from the command line by typing: java -jar JavaBots.jar

Getting Involved

Mostly, since the university course that we were working on this project for is complete and other courses and responsibilities have gotten in the way, updates to this project have been slow. If you would like to contribute to the development of the JavaBot API and be added as a developer to this project, send an e-mail to

SourceForge Logo