Soccer Server is a system that enables autonomous agents consisting of programs written in various languages to play a match of soccer (association football) against each other.
A match is carried out in a client/server style: A server, soccerserver, provides a virtual field and simulates all movements of a ball and players. Each client controls movements of one player. Communication between the server and each client is done via UDP/IP sockets. Therefore users can use any kind of programing systems that have UDP/IP facilities.
The soccerserver consists of 2 programs, soccerserver and soccermonitor. Soccer Server is a server program that simulates movements of a ball and players, communicates with clients, and controls a game according to rules. Soccermonitor is a program that displays the virtual field from the soccerserver on the monitor using the X window system. A number of soccermonitor programs can connect with one soccerserver, so we can display field-windows on multiple displays.
A client connects with soccerserver by an UDP socket. Using the socket, the client sends commands to control a player of the client and receives information from sensors of the player. In other words, a client program is a brain of the player: The client receives visual and auditory sensor information from the server, and sends control-commands to the server.
Each client can control only one player. So a team consists of the same number of clients
as players. Communications between the clients must be done via soccerserver
using say and hear protocols. (See
section 4.2.1.) One of the purposes of soccerserver is
evaluation of
multi-agent systems, in which efficiency of communication between
agents is one of the criteria. Users must realize control of multiple
clients by such restricted communication.