RoboCup Soccer Simulation Imitation

Our goal is to imitate software agents that can participate in a Soccer Simulation. We take advantage of the existence of the 2D RoboCup Simulation Server, and the availability of agents that were designed to play (as a team) on the RoboCup Simulation League. From time to time we also create simple agents in order to study how to imitate specific behaviors.

The RoboCup Simulation Server

The first thing we need is a RoboCup Simulation Server ready to run. We have been playing around with a windows port of the server (version 9), as well as with the official distribution of the server (version 11 for Linux). Additionally, the RCSS monitor has been useful to visualize the simulation.

Competition teams

This is a list of teams designed to compete on the RC simulation league that we know to work with the simulation servers mentioned above.
  • CMUnited 99 (requires old clib, works with both servers)
  • ATTCMUnited 2000 (works with some troubles on recent linux distributions, windows and linux servers)
  • AT Humboldt 2007 (works perfectly on recent linux distributions, only with server version 11)
  • Other teams

This is a list of other teams we know to work with the simulation servers we employ. All of them are coded in java and work with both servers.

Data Collection

Our first step on collecting data is to create log files of the messages exchanged between an agent and the server. To that end we use our LogServer as a proxy to the simulation server. Agents initiate a connection to the LogServer (listens on port 7000 by default), which in turn establishes the communication with the simulation server (listens on port 6000 by defautl). The LogServer then saves all the messages in a text file, one file per agent logged.

Data preprocessing

Log files obtained this way are the source from which we build our case bases. Log files however cannot be used directly as a case base since they may contain incomplete and biased cases, and often log files provide way more information than necessary, making it hard to pin point the relevant bits of information.

On the imitation agent side, imitation is generated on-line from the case base. Imitation agents have less than 100 ms to produce an output, thus the case-based reasoning has to be performed very quickly. For that reason it is desirable for case bases to avoid redundant cases, contain as many relevant cases, and be as small or simple as possible. Therefore, in building a case base we have been experimenting with different pre-processing approaches.

These are the approaches explored thus far:
  • A fixed format (with a small number of context attributes) for the cases
  • Using a genetic algorithm to approximate optimal weight values to use over a set of context attributes on calculating the "nearest" case to a given input.
These are the pre-processing approaches that we are currently studying:
  • Using Rough Set Theory to select a set of context attributes to be used on representing the cases.


RCScenes (deprecated, but still useful) is a set of tools that we first created for the RoboCup Simulation Imitation project. The tool set included:
  • a log file to case base converter,
  • some case pre-processing tools, and
  • some reasoners that perform the case-matching on-line.