JavaBot for Unreal Gamebots API

Java API to easily create Unreal Tournament Gamebots.


edu.cmu.gamebots Contains CMU's modification of the ExampleBot.
edu.isi.gamebots.client Contains the core classes needed to create a JavaBot.
edu.isi.gamebots.examples Contains the USC-ISI examplebot.
edu.tamu.gamebots.humanbot Contains the TAMU HumanBot.
edu.tamu.gamebots.ui General ui stuff to watch the execution of our bots.


Java API to easily create Unreal Tournament Gamebots.

Overview of the Project

Unreal Tournament is a three-dimensional client/server based first person shooter game in which multiple players can compete in either individual or team games. A group at CMU created the Gamebots project which is  a modification to Unreal Tournament that allows characters in the game to be controlled via network sockets connected to other programs. The game feeds sensory information for the character over the network connection. Based on this information, the client program can decide what actions the character should take and issues commands back over the network to the game to have the character move, shoot, talk, etc.. This sort of modification is perfect for use as an environment for AI research in intelligent agents. The purpose of the JavaBot architecture and API is to provide a higher level interface to the GameBots modification protocol and make it easier for reasearch groups to develop agents/bots for this rich domain. JavaBots can be created by extending java classes and working with objects without having to worry about network protocols, message parsing, etc.

Creating A New Bot

The first step in creating a new JavaBot is to extend the class edu.isi.gamebots.Bot abstract class. This class contains methods already written to do things like connect to a server and perform actions in the Unreal Tournament world. There are two methods by all classes (i.e. bots) which override the edu.isi.gamebots.Bot abstract class.
This is all you need to create your unreal tournament bot. Very easy... Other methods that are not required to override, but are optional are:

Current Bot Implementations

The following is a list of classes that you can currently type into BotRunnerApp to get a sample bot and an interface: