Guidelines for the RoboCup World Championship 2001 Simulation League
====================================================================
1 Rules
=======
1.0 General Remarks
The values from the released server configuration file (server.conf
and player.conf) and soccer server version 7.10 will be used. Official
copies of the configuration files will be provided. The auto-dropball
feature will be used.
Teams are given a maximum of 5 minutes to start their team (prepare
scripts!) Halftime is 2 minutes. If a team is under suspicion of
violating the fair-play agreement, see below, the committe has the
right to ask for source code inspection.
1.1 Tournament Modus
(see schedule at http://www.cs.cmu.edu/~galk/rc01/sched.html)
The simulation league round robin will be partitioned into eight
groups. Seeding will be made by the committee according to rankings
of last years tournaments, i.e. Robocup 2000, Japan Open 2001 and
German Open 2001. The seedings are necessarily somewhat subjective and
not open to discussion. The rest of the teams is randomly assigned
to a group.
The assignment of groups to their group numbers (which affects the
group assingments for the second round) will be made randomly.
The groups playing on a particular day will play in two parallel threads
(see schedule). There is no extra time in the round robin - draws are possible.
At the end of the round robin stage 1, the 3 top teams from a group will
go through to the second stage.
Team members from other groups playing on the same day will be
expected to referee the games of the other groups.
There will be three points allocated for a win and 1 for a draw.
A forfeited game will result in the team receiving the worst of
its other scores or 2:0 whichever is worse.
If two or more teams are tied for 3rd place in a group whoever won
the head to head contest goes through. If that was a tie then the
advancing team will be decided on goal difference. If that was a tie
then the team with the highest number of goals goes through. Finally,
a game against a third opponent will decide (see general tie-break rules).
The second round will be played according to the same rules as the
first round. There are 4 groups of 6 teams, and the two best teams of
each group advance.
From then on, every game has to be decided. If a game is a tie after
6000 cycles, then another 6000 cycles are played under the
golden-goal-rule. After this time, the game is decided by a game
against a third opponent will decide (see general tie-break rules).
If the finals (3rd-place and 1st-place) are not decided after 18000 cycles,
then both teams are declared winners (of 3rd or 1st place respectively).
1.2 Tie-Breakers
Tie-breakers between n>=2 teams in the first two rounds will apply in
the following priorities
-points
-head-to-head results (score if n = 2, in case of n >= 3: points,
goal difference in head-to-head results, and overall
goals scored in head-to-head results)
-overall goal difference
-overall goals scored
-3000 cycles against a third opponent (see below)
If n>2 then the winner team is determined according to head-to-head
points, goal difference and overall goals scored. The winner team is
eliminated from the list and the same procedure as before is applied
to determine the winner of the remaining n-1 teams.
Tie-breakers for the elimation games will apply in the following
priorities (For all elimination games, previous results of former
group games are NOT considered for tie-breaking)
- play another 6000 cycles under the golden goal rule
- 3000 cycles against a third opponent (see below)
The 'third opponent' will be selected by the committee and is a
mid-class team, against which scoring should be possible. It will not
be announced before the competition, such that no extra training
against this opponent is possible and both teams have the same
chance. 3000 cycles are played. The team with the best goal difference
or if equal, with more goals shot goes through. If both teams are
equal, the earliest goal shot against this opponent decides.
1.3 Free-Kicks and Kick-Ins
In certain situations, like free-kicks and kick-ins, the game is
stopped.
If a team fails to put the ball back into play after a free kick, a
drop-ball is given (rough guideline: 200 cyles or no player moving to
the ball).
Players will have roughly 200 cycles to take free kicks or kick-ins.
Referees are encouraged to use some common sense. E.g. if a player
needs to run a long way to get to the ball and is nearly there after
200 cycles they should be given the chance to take the kick before
dropping the ball. The ball should not be dropped before the 200
cycles.
On the other hand, if repeatedly no player of the team that has to
perform the free kick displays efforts to move towards the ball, the
waiting time can be suitably shortened. The goal is always to keep the
game running as smoothly as possible while giving the teams a fair
chance to exert their rights.
Ball drops should be as near as possible to the current position of
the ball or on the corner of the penatly box.
1.4 Code of Honor
Coach Messages:
The coach can issue arbitrary "freeform" messages during non-play-on
mode.
The coach can send one advice, one info, and one define, every 30
seconds -- the rest will be ignored by the server. Therefore, the
Coach shall not send more than 4 of those standard-language directives
per 30 seconds, so as to not flood the network.
Fouls
Free kicks and kick-ins are detected automatically by the soccer
server in many relevant cases. Sometimes, however, fouls
occur which can only be detected by the human referee who has to award
a free kick to the disadvantaged team.
Reasons to call a foul are:
-if one team surrounds the ball so that the other team cannot kick
-if the goal is blocked by so many players so that the ball could
not go in (rough guideline: a wall of players blocking the goal);
-if a team intentionally blocks the movement of opponent players;
-the number of goalie moves is limited to 2. It is possible to get
around this by doing a small kick and catching again. This is allowed
once then the referee is required to drop the ball on
the closest corner of the penalty box (notice this practice is not
encouraged we are just acknowledging the potential for mis-kicks -
continual use may be considered violating the fair play committment);
-anything else that appears to violate the fair play committment may also be
called as a foul after consultation with the rule committee.
1.5 Fair Play
The goal of the game is to play soccer according to fair and common
sense understanding of soccer and to the restrictions imposed by the
virtual simulated world of the soccer server. Circumvention of these
restrictions is considered violating the fair play committment and its use during
the tournament games is strictly taboo.
Violation of the fair play committment play includes for example:
-if a team is jamming the simulator by sending more than 3 or 4
commands per client per cycle;
-if a team communicates by other means than via the server using
the 'say' command, for example by using direct inter-process
communication;
-if a team attempts to disturb other teams communication by
recording and sending strings of former communication or by attempting
to fake communication of the opponent team.
Any of these is strictly forbidden.
Other strategies might be found violating the fair play committment, after consultation
with the rule committee. However, we expect it to be pretty clear
what a fair team should look like. In particular, the
destructive disruption of opponent agent operation or the gain of
advantage by other means than explicitly offered by the soccer server
count as not fair play. If you are in doubt of using a certain
method, please ask the simulator rule committee
before the tournament starts. If a team is found to
use unfair programming methods during the tournament, it
will be immediately disqualified.
2 Other Issues
==============
2.1 Startup Scripts and Remote Participation
General Remark: Remote Participation is only possible in extreme cases.
To be able to run a smooth tournament, we strongly encourage you to
prepare start-up scripts for your teams. In particular, for teams that
participate remotely, we require the following:
A single directory containing:
- a ready-to-use, statically linked Linux-binary
- a startup script (called 'start.team' here) to work like that:
prompt-machine1> start.team serverhost
prompt-machine2> start.team serverhost
prompt-machine3> start.team serverhost
where prompt-machine{1,2,3} indicate the prompts seen on the different
machines used for your team, 'start.team' is the name of the script,
the first parameter gives the number of players one wishes to start on
that machine, and 'serverhost' is the name of the machine where the
server runs. A coach may be encoded by setting the first parameter to
0. Please denote the precise startup sequence in case of a remote
submission.
If you make use of server.conf and player.conf, please copy it to
your directory. DO NOT EXPECT to find it at a certain place in
the directory tree. We will make these files available at the competition
for teams to copy into their directories.
We will not have the resources to search for problems in remote
participants' startup procedure, so, in their own interest, remote
participants are asked to make sure that a 3rd party (i.e. we) can
start up your code easily and smoothly on a platform that might be
different from their development platform. We unfortunately are not
able to guarantee the participation of a remotely participating agent
team if we do not succeed in getting the code quickly and smoothly to
run.
Acknowledgements
Thanks to Peter Stone, Paul Scerri and Daniel Polani
for the material which has been used in preparation of
these guidelines.