/* Added for full RSS */ /* end code for rss */

First Entry Submitted by Matt Simmerson!

Daniele | WCCI2008 | Thursday, May 1st, 2008

We are very happy to announce that we have received the first entry for the Car Racing Competetion.

Matt Simmerson evolved a controller with NEAT4J that outperforms the programmed controller provided with the competition package!


CG Speedway 1

E-Track 3


Total Score

NEAT4J Controller

(Matt Simmerson)





Simple Driver

(Daniele Loiacono)





Simple Solo Controller

(Julian Togelius)





Car Racing Competition Goolge Group

Daniele | WCCI2008 | Thursday, May 1st, 2008

We now have a Google Group for the competition:  http://groups.google.com/group/racingcompetition
So if you are interested in the competition please have a look to it and feel free to post your questions, suggestions, technical issues, etc.

Manual Update

Daniele | WCCI2008 | Thursday, April 17th, 2008

In the User Manual, there is a mistake in the description of trackPos sensor (“right” and “left” are swapped). Many thanks to Ho Duc Thang who found this error in the manual. A corrected version of the manual has been put online (download it here).

Preliminary Scoreboard

Daniele | News,WCCI2008 | Wednesday, April 9th, 2008

A preliminary scoreboard of the example controller is here. The score of controllers is computed as the distance raced by the controllers over three different tracks (in the final scoring process a different set of tracks will be used) within 10000 game tics. Submit your entry to get it scored!

New C++ Client

Daniele | WCCI2008 | Wednesday, April 2nd, 2008

A new version of the C++ Client is out. Download it here.

In this version:

  • fixed a bug on race restart (the driver class is no longer de-allocated at each race restart)
  • it is possible to specify the maximum number of control steps and the maximum number of learning episodes with command line options (check the User Manual)

New server package with a specific bot for training

Daniele | WCCI2008 | Wednesday, April 2nd, 2008

A new version of the server package is out (Linux / Windows Patch).

In this version we fixed a little bug in the computation of the distRaced  sensor.
In addition we developed a new sever, called wcci2008trainer , with a very “gentle” timeout on the client answers (10 seconds instead of 10ms). We strongly suggest you to use this bot to develop/learn your bot especially if you are working under Windows and with “results only” display mode. In fact there are some issues related to the timeouts under Windows when “results only” display mode is used. However, before submitting your entries be sure that your bot works properly with the strict timing requirements (i.e., 10ms) at normal speed (i.e., “normal” display mode and speed 1X). Final evaluation will be performed using the strict timing constraints at 1X speed.

To install the new server package

  • under Windows: copy the update patch in your main TORCS directory and unzip it (answer “yes to all” to overwriting questions).
  • under Linux: compile and re-install the wcci2008competition bot and compile and install the wcci2008training bot following the User Manual instructions.

Java client and learning framework: bugs fixed

Julian | WCCI2008 | Tuesday, April 1st, 2008

With plenty of assistance from Matt Simmerson, Daniele and me have now managed to solve some outstanding problems with the competition software. In this new version of the Java client software (downlad), the following are the main changes:

  • The client now tries resending information in case it does not get an answer from the server within a short time. This solves some problems with multitasking and networking on Windows.
  • Evaluation automatically stops if the car’s damage counter goes above 5000. This is done to avoid TORCS shutting down the race itself (which it would do in cases of damage over 10000, and which would stop the serverbot listening).
  • The distanceRaced value (suggested fitness measure) is now “throttled” so that it cannot increase or decrease too much in any time step. This removes an exploit that evolution found earlier on, which had the car crossing the start/finish line twice just after starting, erroneously adding a full lap to distanceRaced.
  • The fields in the Action class are now all public.
  • The default number of time steps in the SoloEvaluator are increased to 3000, on order to allow for more meaningful evaluation. In the final scoring we will likely use evaluation lengths of 10000 steps.

Usage instructions is just the same as for the last version. Go ahead and try it; you find any additional problems, please let us know!

Working Java client and learning framework (beta)

Julian | WCCI2008 | Wednesday, March 12th, 2008

Finally we have the Java framework for learning controllers ready, complete with some simple examples of hard-coded and neural network-driven controllers, and evolutionary algorithms to go with it.

To try evolving a controller for yourself, first download this Java package: Java client and learning framework (beta). Start TORCS, and start a practice race in results only mode. Go to the raceclient/classes directory. Type:

java raceclient.HillClimber raceclient.PerceptronController

…and evolution will happen before your eyes.

You might also try substituting raceclient.ES for raceclient.HillClimber, and raceclient.MLPController or raceclient.RMLPController for raceclient.PerceptronController.

To watch the crown of evolution in action, switch your TORCS display mode back to normal, and type:

java raceclient.Play best-climbed.xml

You could then compare the performance of your first-born controller to a hand-coded one thus:

java raceclient.Play raceclient.SimpleSoloController

The important parameter that decides for how long each trial will last is found in raceclient.SoloDistanceEvaluator. It is currently set to 1000, which is arguably a bit short, but allows for relatively quick evolutionary runs.

This is a beta version, and there are some things which are likely to change, e.g. the way the evaluator handles delays in communicating with the server. We also plan to introduce a multi-car evaluator. However, the core interfaces will almost certainly stay the same. In other words, you now have what you need to start evolving your own controllers!

Please mail us with installation problems, bugs, suggestions etc.

Java client and two heuristic controllers

Julian | Uncategorized,WCCI2008 | Wednesday, March 5th, 2008

Download: Java client beta


java raceclient.BasicClient raceclient.SimpleSoloController

or even:

java raceclient.BasicClient raceclient.DeadSimpleSoloController

A revised version, together with some example training algorithms and function approximator-based controllers is forthcoming in a few days’ time.

How fast can I run my simulations with TORCS?

Daniele | FAQ,WCCI2008 | Monday, February 25th, 2008

If you start a race with the normal display mode, you will be able to accelerate the simulation time up to a 4X speed with respect to real time, i.e., you will be able to simulate 1 hour of racing in 15 minutes. Instead, using the results only display mode, the simulation speed will be limited only by the speed of your machine, the client/server communication overhead and the time required by your driver bot to compute its action. In our tests we reached almost a 30x speed-up, i.e., you can simulate 1 hour of racing in approximately 2 minutes.

« Previous PageNext Page »