The SimpleSoccer Page



Welcome to the home page of the SimpleSoccer robot soccer simulation environment.

SimpleSoccer is a tool for investigating the behaviour of one or more agents playing a soccer-like game. The game can be played by a single player, two teams of up to eleven players per team, or anything in between. The game can be viewed on a standard text monitor (or window) using ordinary ascii characters (no special graphics required).

SimpleSoccer came out of research for my PhD. I was interested in using the RoboCup Soccer simulator to evolve the behaviours for robotic soccer players, but since I needed to have a large population of players play lots of games in order to evolve anything useful, playing in real time was prohibitive.

I decided I needed an environment that would approximate RoboCup, but would play in cpu time rather than real time.  SimpleSoccer was inspired by Ascii Soccer, but coded to be more RoboCup-like.  Unlike Ascii Soccer, SimpleSoccer allows movement and kicking in any direction from 0-360 degrees, has a RoboCup-like field with goals etc., and gives the players sensors more like RoboCup (i.e. players see more than just the eight adjoining cells).  SimpleSoccer works a lot like RoboCup (it has the turn, kick and dash primitives).  SimpleSoccer lacks the uncertainty of RoboCup (there is no uncertainty added by the system), and it runs in cpu time rather than real time.  It also lacks some of the complexity - it has no coach, no verbal communication etc.  Otherwise it is a pretty good model of RoboCup soccer.

SimpleSoccer is written in C and runs in a text window on Unix or Windows systems.

SimpleSoccer screenshot:

This is a screenshot of a game with two teams, each consisting of 4 players.  It was taken at tick 99 of the first game.  The east team players are represented by the "<" characters and kick to the left of the field; the west team players are represented by the ">" characters and kick to the right of the field.  The ball is the inverse video rectangle, the boundary is marked by the "." characters, and the goals by the "|" characters.

The score line at the base of the field displays the current game number, the current tick number, the tick at which the last dash was performed (by any player), the tick at which the last kick was taken (by any player), and the number of goals scored in the current game by each team.




    The SimpleSoccer README (June 6, 2006)

    SimpleSoccer v1.00 source package (June 6, 2006)



After downloading and uncompressing/untarring/unzipping the source package, make the binary:

        For gcc and curses, type

                "make" or "make -fMakefile"

        For bcc32 (Borland C++) and DOS, type

                "make -fMakefile_DOSWIN"

If there are compile errors you may need to look at some of the platform specific console IO stuff in visual.h. If there are other compatibility issues they shouldn't be too difficult to fix.

Once the binary "simplesoccer" exists, type "simplesoccer" or "simplesoccer -?" to get help.

To start a demonstration, type

        simplesoccer -pdemo.parms -w10

This will start a series of 10 games between two 4-player teams. Each game will be played for 2000 ticks, or to 10 goals, whichever comes first. The "-w10" argument slows play down a little so you can see what's happening - omit that argument to see the game play at normal speed. At normal speed on a dedicated PC the ten games take 10-20 seconds to complete. With the "-w10" option it could take a few minutes. The program can be interrupted by cntl-C (or by pressing any key if compiled using bcc32 and executing in a DOS window), and new options selected or the program terminated.

SimpleSoccer was developed by Jeff Riley (click here to see Jeff's other research).  Feel free to
with suggestions for enhancements or defect repairs.