Tank wars with robocode


Many AI researchers find out that games are excellent test-beds for their theories. The advantage of games is that there exists an environment and a concrete interface to interact with it. For example, there are applications of SOAR architecture to control a bot inside a quakeTM game to play against other bots or humans. In the quakeTM game, the bot can hear the steps of other players and see them. This way, constructing a bot in quakeTM becomes a simplified version of constructing a robot in a real environment.

Following this research trend, this example shows how to acquire elements from a game to express them in the methodology language. The chosen game for this example is RobocodeTM. Robocode is a Java game distributed by IBM whose purpose is to teach Java programming in an environment that motivates learning. The game is about tank-shaped robots fighting among themselves. Each robot can actuate with predefined primitives (like ahead, turn left, turn right) and perceive the environment with radar, position sensors and some events. Each robot tries to survive the battle with different strategies (some of them are commented in Robocode tutorial pages). Java programmers have to figure out, without any human intervention, which sequence of actions will improve the chances that a robot survives.

In this case study, we apply INGENIAS to model how a team of agents fight against another team of enemy agents. The case study includes organization of the team of agents, interaction among the members of the organization, and certain capabilities of planning.


This section shows current state of robocode development. It includes elaboration and inception results, according to the Unified Process.