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.