Project #3 FAQ

This page contains answers to the Frequently Asked Questions for our RoboCup project. I also recommend that you check the Help forum at the RoboCup site on SourceForge. Finally, here's a useful, although somewhat dated, FAQ.

Please send an e-mail to to add a question and/or answer to this list.

  1. How do I get started using the the RoboCup server?

    There are three important components to playing RoboCup: the soccer server, a monitor for watching the game, and a set of client programs. How to use these programs are described in Chapter 3 of the official RoboCup manual (dated July 25,2002), however it is a little out of date. I recommend you look at the most recent developer's snapshot of the manual. It has corrected some of the problems but is not perfect. I describe the basics below:

    You can start up a server and monitor simultaneously with the rcsoccersim program (note, the manual calls this sserver). By default this will start up on your current machine and use port 6000 for communication with the server. Once you have the server and monitor started, you'll need to connect one or more clients (i.e., players).

    For the actual competition, we will be running the server on a separate machine from your clients. If you want to start up the server and monitor separately, use rcssserver and rcssmonitor respectively.

  2. Where can I find the sample client described in Sect. 6.2.1 the RoboCup manual?

    The client is now called rcssclient (not sampleClient or client). Note the syntax for parameters has also changed. If you wish to have your client connect to a soccer server anywhere other than port 6000 of the local host, then use the rccsclient -server name -port num syntax.

  3. When I start the rcssclient, it doesn't appear to connect to the server. What is wrong?

    This client simply allows you to type commands in manually. In order to get anything going you need to type (init MyTeam). It should then begin continuously displaying the agent's percepts. Note, if you want to use this to test out the commands, you'll probably have to redirect the output of the client.

  4. Where can I get simple sample RoboCup agents from?

    A number of RoboCup agents (called clients) are available on the Web. A number of simple clients for older versions of the server can be found at the original RoboCup site on SourceForge.

    The Noda client mentioned on page 80 of the manual can be downloaded from here. See the following page for running the Noda client in Solaris (compliments of Abir Qasem). You are allowed to reuse any parts of this client code you wish when you build your own agents. Note, since I am allowing you to use this client, the new minimum level of performance for your Beta demo is that your team can score when playing the Noda client!

  5. Are there any libraries that I can reuse?

    Yes, the Official RoboCup Library page has a number of libraries that you may wish to reuse. These include libraries for socket handling, parsing incoming and outgoing messages, and estimating position from visual information. Most of the libraries are in C++ or Java, but libraries for a few other languages are available as well.

  6. How can I test my team against opponents?

    You may want to download one or more teams from the Official Team Repository and play them against your team. This repository has teams from all of the international RoboCup competitions.

  7. What version of the simulator will we be using for the tournament?

    Version 9.4.5, which is the official release. You should be sure when your agents init themselves with the server, that they specify version 9.0, or else the server will default to using the version 3 protocol to communicate with them.

  8. On what machine will the tournanment be run?

    Tentatively, the server will be run on europa, a Sun Blade 1000 with 4096 MB of memory. You may choose to use any other Sun workstation in the department's public labs to run your client on. However, if an opponent objects to your use of a particular machine, I have the right to ban it. We have set up an alias for europa, so that if we need to change the server's machine, it can be done invisibly. However, your agents should not hard code in a server host name or a port. You should be able to specify these at the command line.