Rules of Soccer Simulation League 2D

(RoboCup2014 João Pessoa, Brazil)

This document contains the rules for the RoboCup2014 Soccer Simulation League 2D competition in João Pessoa, Brazil.

1. Soccer Simulator

   RCSSServer version 15.2.2 will be used. The default server configuration files (server.conf and player.conf) generated by RCSSServer 15.2.2.

Note that the number of halves and the switch of penalty shootouts will be changed according to the round.

2. Machines Configurations
  Every team will be allowed to use
 four machines (at least three in case of machine problems)  for their game. Teams can only use Linux operating system. Teams cannot use the competition machines to hack their program, but two machines will be available for the test.

2.1 Operating System
Linux (Ubuntu 12.04 64bit) will be used.

3. Schedule



League setup


League setup

Team leaders' meeting & Drawing

Team setup


Group round (A-D)

TC Election & Roadmap discussion


Group round (E and F)

Free challenge at 17:00


Group round (G and H)


Group round (G and H) contd. (if necessary)

Playoff matches

The detailed schedule will be determined at the competition site.

4. Tournament Formats
4.1 Automatic Matches

All matches will be started automatically by the league manager script (or by human referee). Please note these important points:

4.2 Binary Publication After Competition

   Teams will be published automatically after the competition. To help us with publishing your team, please create a tar.gz file before the final round and rename it to /home/[teamdir]/[teamdir].tar.gz. In case a team fails to provide this file, we will publish the complete home directory of that team. Also, it may cause disqualification in the following RoboCup competitions.

5. General Tournament Rules

The 2D competition will consist of 14 teams (as of July 20, 2014). The setup of the tournament is as follows:

6. Tiebreakers

Tiebreakers between more than one teams in the first two rounds will apply in the following priorities:

  1. Points
  2. Head-to-head results
  1. If a tie is only for two teams, the tie is broken if and only if the head to head match was not a draw. If there are more than two teams in the tie, the tie is broken if and only if one team won against all the other teams in the tie.
  1. Overall goal difference for the round
  2. If there are more than two teams in a tie, overall goal difference including only games with the tied teams
  3. Overall number of goals scored
  4. If there are more than two teams in a tie, overall number of goals scored including only games with the tied teams
  5. Penalty shootouts between the tied teams. Details of the structure will be explained further below.

If more than two teams are tied, then the above list of tiebreakers is used until only one team is put first. That one team is ranked first and the remaining teams are grouped into another tiebreaker, and the criteria above are applied again from the beginning of the list.

7. Automatic Penalty Shootouts Procedure

To resolve tie-breaks in the group rounds and the draw in the playoff matches, penalty shootouts will be used. Note that the penalty shootout will be held automatically in the case of the draw after two extended halves in the playoff matches. In the round robin games, automatic penalty shootouts is not used. For penalty shootouts, we are going to use these parameters:

pen_dist_x: 42.5   (The ball will be placed 42.5m from the goal)

   pen_allow_mult_kicks: true (allow multiple kicks so normal play)

   pen_taken_wait: 200 (the number of cycles waited after start pen is 200)

(This means that the kicker starts 42.5 meters from the goal and can use dashes, turns and kicks. After at most 200 cycles, the shootout is stopped for the kicker).

And, only in tie-breaks, we are going to use these parameters:

   nr_normal_halfs: 0  (no halves)

   nr_extra_halfs: 0  (no extra halves)

(This means that teams cannot use heterogeneous players.)


8. Code of Honor

8.1 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 should not send more than three of those standard-language directives per 30 seconds, so as not to flood the network.

8.2 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.

Possible reasons to call a foul are:

9. 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 commitment and its use during the tournament games is strictly taboo.

Violation of the fair play commitment play includes for example:

Any of the above is strictly forbidden.

Other strategies might be found violating the fair play commitment, after consultation among the 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 committee before the tournament starts. If a team is found to use unfair programming methods during the tournament, it will be immediately disqualified.

If a team is under suspicion of violating the fair-play agreement, the committee has the right to ask for source code inspection.

10. Participation by a Representative Person

General Remark: Participation by a Representative Person is only possible in extreme cases.

We will not have the resources to search for problems in participants' startup procedure, so, in their own interest, representative persons of a team 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 own development platform.