The Official Speed Dreams 1.4.x FAQ

0. About this Document.

1. About Speed Dreams in general.

2. Platforms and Requirements.

3. Installation.

4. Problems and Solutions.

5. Problem reporting.

6. Links.


0. About this Document.

0.1 License and copyright.

Copyright (c) 2004-2006 Bernhard Wymann, 2009 JeanPhilippe Meuret.

Permission is granted to copy, distribute and/or modify this document under the terms of the GNU Free Documentation License, Version 1.2 or any later version published by the Free Software Foundation; with no Invariant Sections, no Front-Cover Texts, and no Back-Cover Texts. A copy of the license is available here.

0.2 Document version.

2009-25-12.


1. About Speed Dreams in general.

1.1 What is Speed Dreams ?

Speed Dreams, an Open Motorsport Sim, is a motorsport simulation, which allows you to drive in races against AI opponents (simulated by the computer). You can also develop your own computer-controlled driver (also called a robot) in C or C++ (or even in Delphi, as Wolf-Dieter Beelitz).

Speed Dreams is "Open Source" (GNU General Public License Version 2 or later).

1.2 Who develops Speed Dreams ?

The Speed Dreams project was forked from TORCS in late 2008 by Xavier Bertaux and Jean-Philippe Meuret in order to deliver a better end-user experience through new and visually improved tracks, new cars sets with more realistic handling and improved liveries, more challenging AI opponents, and many other exciting new features to come soon (network, force feedback, career mode ...).

Some long time TORCS-addicted developers and artists immediately joined them in the core developers team : Andrew Sumner, Brian Gavin, Eckhard Jager, Mart Kelder and Wolf-Dieter Beelitz, quickly followed by Gabor Kmetyko and Haruna Say. Christos Dimitrakakis, Sebastian Heni and Kristof Kaly-Kullai also contribute a lot. Visit the official Speed Dreams site, the under-construction SF.net Wiki and the in-game credits pages for more information, .

In the development team, democracy is the rule : we try and take time to discuss about everything and decide together what and how we work for the project. But we also believe in freeness and responsability : once things are clear, one or multiple members often get the mission to achieve what's been decided, based on their will, skills, interest on the mission, and trust from the team.

1.3 Is documentation available ?

Yes, there is some documentation available. Look at the official Speed Dreams site and on the under-construction SF.net Wiki. You can find installation instructions here, the TORCS robot tutorial here, instructions about how to use Speed Dreams here. A very brief track howto is available here, there is as well a track editor available, and Andrew Sumner is currently creating a car building tutorial.

1.4 Which features has Speed Dreams ?

There are 4 different car sets featuring a total of 28 cars, AI opponents for nearly all of these (except for the LS-GT1 car set : WIP) and 38 tracks to race on. You can steer with a joystick, a gamepad or a steering wheel with pedals, if it's supported by your platform. It is also possible to drive with the mouse or the keyboard, but it's not easy. Graphic features lighting, smoke, exhaust flames, skidmarks and glowing brake disks. The simulation features a simple damage model, collisions, tire and wheel properties (springs, dampers, stiffness, ...), aerodynamics (ground effect, spoilers, ...) and much more. The gameplay allows different types of races from the simple practice session up to the championship (and soon a full racer life-time career mode). Enjoy racing against your friends in the split screen mode with up to four human players.

1.5 What are the future plans ?

Besides maintenance and bugfixing, the develoment team is currently working on network gaming, racer life-time career mode, full weather simulation, improved engine sound, new tracks ; force feedback, new car sets with AI opponents will also be there for the next release (2.0) ; improved physics, better inside view, replay, improved graphic rendering, improved performances are also domains in which we'll be working in the mid-term.

1.6 Why don't you ... ?

Don't ever forget that we develop Speed Dreams in our spare time and you get it for free. Your wishes, ideas and feature requests are welcome in the speed-dreams-users mailing list or tracker. If nobody picks up your idea feel free to contact the development team : we'll be happy to help you implement it yourself ;-)

1.7 What do you mean with robot ?

In Speed Dreams a "robot" is a piece of program code that automatically drives a car, so all the opponents you choose are robots. Aka "AI" opponents (Artificial Intelligence).

1.8 Why don't you replace GLUT with SDL ?

We actually are doing so : next release will no more use GLUT.

1.9 Why don't you replace PLib with OGRE 3D / OSG ?

We are currently thinking about starting to move that way ; but we have to rewrite the whole 3D graphics module from scratch ... so it will probably take some time. Fortunately, the modular architecture of the code we inherited from TORCS enables us to achieve it smoothly : expect some preview soon.

1.10 Are there official championships ?

Yes, you can find offline robot championships in the TORCS Racing Board.

This championship is actually dedicated to TORCS-compatible robots but Speed Dreams offers backward compatibility with TORCS as for this : your TORCS robot will work as is in Speed Dreams, and your Speed Dreams robot will work in TORCS if you follow some very simple rules (contact the dev. team for more details).

1.11 Should I start my own racing sim project ?

Definitively not, no! Why ? Do a search on sf.net and Google, you will find between 15 and 40 open source car/driving/racing sim projects, and most of them have been "promising" and died. Instead of starting another dead project contribute to the few existing successful ones.

Believe it or not, but your project will very likely be a dead one as well. The reason is quite simple, people underestimate the required effort and the change of their lives during the project lifespan, think about it. Just that you get an idea, TORCS turns now 12 ...

Of course, you will say : "this is a strange advice, from you guys, who recently forked from TORCS ...". Yes, true ... and false. Because if TORCS had been that open to our ideas and working will, certainly we had joined its dev. team ... but most of us have been proposing so much valuable work for such a long time without seeing it actually integrated ... that we finally come to that extreme conclusion.

And believe it or not, we promise here we won't do this TORCS error twice : from the beginning, we stated that everything in the project would be decided on a democratic basis inside the development team. And that we'd be happy to welcome good candidates in the team provided they accept this democracy statement and the main purpose of the project : deliver a game for the sim driving and racing addicts.


2. Platforms and Requirements.

2.1 On which operating systems does Speed Dreams run?

  • Linux (x86 and x86_64) on several distros (Mandriva 2008, 9, 10 ; Ubuntu 9.x), with GCC 4.x compiler
  • Windows XP, Vista, 7, with MS Visual C++ 2005/2008 compiler
The Mac OS X port is 95% finished, with the CMake build system : Volonteers are welcome for the last 5%, and make it available for the next release ;-).

And TORCS was known to work also on PPC Linux, FreeBSD and Windows 98/2000, so it should not be complicated to port Speed Dreams to these platforms if needed. Please report of any try !

2.2 What are the hardware requirements ?

Minimum: 1 GHz CPU, 256 Mb RAM, OpenGL 1.3 compatible graphics card with 32 Mb GRAM.
Recommended: 2 GHz CPU, 512 Mb RAM, OpenGL 1.3 compatible graphics card with 64 Mb GRAM.

2.3 What are the software requirements ?

You need recent, working and properly configured OpenGL/DRI drivers.

You need also several 3rd party libraries :

  • GLUT 3.7 or better FreeGlut
  • PLib 1.8.3, 4 or 5
  • Open AL 1.6.x
  • Free ALUT 1.1
  • ZLib
  • LibJPEG
  • LibPNG
Important: You'll find ready to use MS VC 2005 SP1 Windows binaries for these libs here (along with other libs we use for future developments) as well as the associated sources.

Note: Under x86_64 Linux, you need to set the "-fPIC" compiler switch when compiling PLib (export CFLAGS="-fPIC", export CPPFLAGS="-fPIC", export CXXFLAGS="-fPIC"). Under Windows, make sure you compile all the 3rd party libraries using the "Multi-threaded DLL" run-time C library.


3. Installation.

3.1 How do I install Speed Dreams ?

You can find installation instructions here.


4. Problems and Solutions.

4.1 General problem solving approach.

You may encounter this kind of problems: System configuration problems, build problems and runtime problems. If you face a problem follow these steps:

  • Have a look into this FAQ, perhaps your problem is already known.
  • Clean up your old Speed Dreams installation (Windows : C:\Program files\speed-dreams ; Linux : /usr/local/share/games/speed-dreams, /usr/local/libs/speed-dreams, /usr/local/bin/speed-dreams).
  • Clean up your old environment settings (Windows : /speed-dreams.settings ; Linux : ~/.speed-dreams).
  • Read the installation instructions carefully, double check your steps (don't forget the "make datainstall" step under Linux ;-).
  • Make sure that you have not installed multiple GLU libraries.
  • Make sure that you have installed the latest OpenGL/DRI and sound drivers.
  • Try to start up Speed Dreams with the "-s" switch to disable multitexturing.
  • Make sure that the version number of your ALSA drivers, libraries and utilities match.
  • Test your OpenGL setup with tuxracer and bzflag (under Linux).
  • Search into the mailing list archives here or here, perhaps there is already a solution.
  • If you get stuck learn how to report a problem.

4.2 Build Problems.

4.2.1 ./configure reports "configure: error: Can't find GL/glut.h".

Download and install FreeGLUT or install GLUT which is probably included in your distribution (you need also the header files, which may be in a separate package like glut-devel). We suggest using FreeGLUT.

4.2.2 ./configure reports "configure: error: Can't find plib/ssg.h" or "plib/ul.h".

Speed Dreams requires plib 1.8.3, 4 or 5 and its header files. Download and install plib.

4.2.3 Speed Dreams does not compile on Windows.

To compile Speed Dreams in Windows you need MS Visual C++ 2005. Follow exactly the installation instructions in the Windows chapter.

4.2.4 FreeGLUT compilation fails with NVidia OpenGL driver.

If you have an NVIDIA driver and FreeGLUT breaks the compilation with complaints about libGL.la, then update your drivers to 5336 (previous libGL.la was broken).

4.2.5 Speed Dreams does not compile with make: 'Make-config' is up to date.

You have some environment variables set like $SPEED_DREAMS_BASE and $MAKE_DEFAULT (to follow the robot tutorial), they are pointing now to the wrong directory. Unset or update the variables suitable for the new directories.

4.2.6 Compiling stops with "error: `GL_TEXTURE0_ARB' undeclared".

If the compiler stops with the above message you have probably OpenGL header files installed which do not define the GL_TEXTURE0_ARB and other symbols. If you have updated your NVidia drivers to 6xxx you will experience this error (NVidia removed those definitions...). To fix it, you need to install a gl.h which defines the missing symbols. You can get it from your old (5xxx) NVidia drivers or from Mesa (the problem is not the driver itself).

4.2.7 Compiling fails with "The syntax of the command is incorrect. Error executing c:\winnt\system32\cmd.exe".

You have probably installed your sources in a path which contains blanks or other special characters, e.g. on the desktop. Move your source folder to a location with a "clean" path, a drive is the best bet (e.g. D:\speed-dreams-1.4.x).

4.2.8 ./configure fails in "checking for sin in -lm" on Gentoo.

This is a Gentoo problem, have a look at this report.

4.3 Startup and Runtime Problems.

In several situations Speed Dreams will crash at startup. The causes are often not bugs of Speed Dreams, but a broken installation, Speed Dreams user settings or buggy OpenGL/DRI drivers.

4.3.1 Broken OpenGL/DRI drivers or '~' file.

/usr/local/bin/speed-dreams: line xx: 31895 Segmentation fault
$LIBDIR/speed-dreams-bin -l $LOCAL_CONF -L $LIBDIR -D $DATADIR $*

There are two known possibilities which cause such a crash:

  • You have buggy OpenGL/DRI driver, you should update to a recent version. Start Speed Dreams with the "-s" option to disable multitexturing.
  • You have edited a Speed Dreams XML file (e. g. endrace.xml) and your editor left a copy with an appended "~" (e. g. endrace.xml~). Remove those "~" files.

4.3.2 Multiple GLU libraries.

linuxModLoad: ...  modules/graphic/ssggraph.so:
undefined symbol: gluBuild2DMipmaps
/usr/local/bin/speed-dreams: line xx: 21215 Segmentation fault
./speed-dreams -l $LOCAL_CONF $*

You have probably two GLU libraries installed on your system and Speed Dreams has been linked to the wrong one, which does not export the "gluBuild2DMipmaps" symbol. First find all your GLU libraries on the system (cd /usr; find . -name "*GLU*"). Then check which one exports the "gluBuild2DMipmaps" symbol (e. g. nm ./lib/libGLU.so | grep gluBuild2DMipmaps). Finally move or remove the GLU libraries which do not define the symbol, such that the linker can't see it. Now recomplie and reinstall Speed Dreams.

4.3.3 Old un-removed Speed Dreams version present.

/usr/lib/speed-dreams/speed-dreams-bin: relocation
error: /usr/lib/speed-dreams/lib/libtgfclient.so: undefined symbol:
_Z15GfParmWriteFilePKcPvPc

If you see such a message you have probably not cleaned up your old Speed Dreams installation. Make sure that you have removed all old Speed Dreams files, then recompile and reinstall Speed Dreams.

4.3.4 Speed Dreams reports missing files and crashes.

data/fonts/b5.glf: No such file or directory
data/fonts/b5.glf: No such file or directory
data/fonts/b5.glf: No such file or directory
data/fonts/b5.glf: No such file or directory
data/fonts/b7.glf: No such file or directory
data/fonts/b7.glf: No such file or directory
data/fonts/b7.glf: No such file or directory
data/fonts/b7.glf: No such file or directory
data/fonts/digital.glf: No such file or directory
Can't open file data/img/splash-main.png
Can't open file data/img/splash-single-player.png
Can't open file data/img/splash-qrdrv.png
/usr/local/bin/speed-dreams: line 54:6839 Floating point
exception$LIBDIR/speed-dreams-bin -l $LOCAL_CONF -L $LIBDIR -D $DATADIR $*

If you see this you have not installed the mandatory data packages (you missed "make datainstall" ?) or installed it in the wrong location. Please read the installation instructions carefully and reinstall Speed Dreams.

4.3.5 My screen resolution is not supported.

You have a screen resolution which is not available in the Options / Display menu of Speed Dreams : exit Speed Dreams and edit the file ~/.speed-dreams/config/screen.xml (or /config/screen.xml under Windows), change the x, y, window width and height to your values, and then restart sped-dreams.

And please, report us your particular resolution and hardware configuration !

4.3.6 I have a problem with the fullscreen mode.

You switched Speed Dreams to fullscreen and got a scrolling screen, or the screen size is not fully utilized : if you use the original GLUT library, you should choose the real resolution of your screen in the display settings. To fix the problem, you can also download and install FreeGLUT, then recompile and reinstall plib and Speed Dreams.

4.3.7 Speed Dreams graphics is slow and it crashes on "READY!"

Select in the Speed Dreams display menu a color depth of 24 or 32 bpp, even if your display runs at 16 bpp.

4.3.8 Speed Dreams on Windows hangs after "READY!"

Shutdown Speed Dreams and restart it, go to the sound menu and disable the sound or try the other backend (PLib or OpenAL). One of us already experienced this issue with built-in OpenAL under Mandriva 2008.0 Linux x86_64, and the solution was to install from sources and self-compile OpenAL.

4.3.9 Speed Dreams does not start and reports slDSP:.

Make sure that the sound device is available for Speed Dreams and you use the latest drivers. Perhaps you have a sound daemon running in the background and you need to start Speed Dreams with a wrapper (e. g. artsdsp of KDE) or to disable the daemon.

4.3.10 The cars are flickering.

Probably your depth buffer has just 16 bit, you should have seen a hint at Speed Dreams startup. Try to run your X-server at 24 or 32 bpp, or update/replace your OpenGL/DRI drivers. In Windows set the quality in the OpenGL properties tab to maximum, such that Speed Dreams has a chance to get a 24 bit depth buffer.

4.3.11 I use ALSA and Speed Dreams does not start up.

You get an error message similar to this:

slDSP: getBufferInfo: Broken pipe.

Altough the sound works with the other applications, you have messed up your ALSA installation. Make sure that the versions of your ALSA driver, libraries, tools and utilities are matching. This can especially happen if you run a self-compiled kernel.

4.3.12 Speed Dreams does not start up and complains about display requirements.

Visual Properties Report
------------------------
The minimum display requirements are not fulfilled.
We need a double buffered RGBA visual with a 16 bit depth buffer at least.
Trying generic initialization, fallback.

If you use the open Mesa/DRI drivers, update your OpenGL/DRI drivers and try FreeGLUT. It seems to be a bug in the visual matching code of GLUT or OpenGL/DRI. The output of 'glxinfo | grep "OpenGL version"' should report at least "1.2 Mesa 5.0.1".

4.3.13 The racetrack mini map is just a blue square.

You have probably more than one GLU library installed on your system and Speed Dreams is linked with a version that does not match the version defined in the header files. Remove all old GLU libraries, make sure that the header files are matching with the library. Make also sure that you have recent OpenGL headers installed which define the GL_UNSIGNED_INT_8_8_8_8 symbol, then recompile Speed Dreams.

4.3.14 Speed Dreams runs but without textures.

This is probably an OpenGL setup problem, check your installation with bzflag and tuxcart. You have to reinstall the XFree86 libraries, FreeGLUT and your OpenGL drivers.

4.3.15 Speed Dreams on Windows crashes after "New Race".

The instruction at 0xXXXXX referenced memory at 0xYYYY. The memory could not be written.

Speed Dreams on Windows crashes with the above message after you have choosen "new race". Probably you have not downloaded all required files or installed them in the wrong place. Please check your Speed Dreams installation carefully.

4.3.16 Multiple OpenAL libraries.

You have probably two OpenAL libraries installed on your system and Speed Dreams has been linked to one, and uses another one at run-time (when starting a race). Fix this issue in your build environment (CXX/CPP/LD_FLAGS) and / or run-time one (LD_LIBRARY_PATH). Now recomplie and reinstall Speed Dreams.

4.4 Other Problems.

4.4.1 How do I capture a movie ?

First, you have to configure the video capturing in config/raceengine.xml. The captured frames are stored in the output directory, so you need to have write permission and plenty of space (~ 1GB for one minute, depends on framerate and resolution).

During the simulation, you can hit "c" to start and stop the capture. The frames are stored in the output directory and named this way: torcs-ssss-ffffffff.png, ssss is the sequence number and ffffffff the frame number in the sequence.

Now you need a tool to compose the frames to a movie. If you use mencoder (of the mplayer 0.92) you have first to convert the images to jpg's with the png2jpg tool from src/misc/png2jpg. Now encode the video with mencoder -ovc lavc -lavcopts vcodec=mpeg4:vhq:vbitrate=1800 \*.jpg -mf on:fps=25.

4.4.2 Can I develop a robot using Windows ?

Yes, you can. Here is a rough guide:

  • Download the Speed Dreams source and manage to compile and run it.
  • Download e. g. the bt robot package, it is a little enhanced version of the robot developed in the tutorial, so there is good documentation available to understand it.
  • Copy the sources into a new directory, e. g. when you choose the name "myrobot" create a directory /src/drivers/myrobot.
  • Copy all the bt files into the myrobot directory.
  • Now rename all "bt*" files into "myrobot*".
  • Edit myrobot.def and also change all bt strings into myrobot.
  • The same for myrobot.dsp, .xml, perhaps more, you get the idea.
  • Change the "bt" module entry point in myrobot.cpp to "myrobot", also make the strings for the robots names and description match with those in myrobot.xml.
  • Add the myrobot project to Speed Dreams, open the project with vc++ and try to compile it.
  • If you want to deploy the files you have to do that manually, create a directory in "runtime" where the other robots are and copy the required files there (myrobot.dll, .xml, setup subdirectories etc.).
  • Now Speed Dreams should pick up your robot.

4.4.3 Is my joystick / steering wheel / gamepad supported ?

If your operating system supports your device, it will also work within Speed Dreams. To learn how to setup your input device visit the Speed Dreams site and read the "How to drive" section or read out the how_to_drive.html document shipped with the game.

4.4.4 How do I set up a multiplayer game ?

Speed Dreams supports split screen multiplayer games with up to four players. Setup:

  • Set up the players in the "Configure Players" screen.
  • If more than one player uses the keyboard, read this.
  • Now choose a race, select the players in the configuration screen.
  • Start the race, stop it with "p" to pause.
  • Now create the split screens with "]", or remove them with "[".
  • If you want to change the view of a "mini screen" point with the mouse on it and set it up as usual (F1-F11, ">", "<", ...).
  • When you have set up all views press "p" to end the pause and start the race.
  • Have fun;-)

4.4.5 I can't adjust the joystick / wheel / gamepad axis centering.

Before you start Speed Dreams, make sure that the joystick / wheel / gamepad is correctly setup/calibrated for your system. You can use the "jscal" and "jstest" utilities for that ; you should find them in your Linux distribution or from the Linux Console project on the internet. If this works fine, center your axis (e.g. if you have noncentering axis like sliders), then startup Speed Dreams and setup your players and controls configuration. It is important to center the axis before you go to the calibration (Question: is it still relevant ?).


5. Problem reporting.

5.1 When do I report a problem ?

You should report a problem only after you have carefully read the available documentation and did not find a solution for the problem.

5.2 How and where do I report a problem ?

You can report a problem in 2 ways :

  • send a message to the speed-dreams-users mailing list : first subscribe to it, otherwise your messages need to be approved, so it can take long till they become distributed
  • create a ticket in the bug / feature tracker : you need to be logged in to SF.net do do that

In any case, send us as much information about the problem as you know. At least provide the following :

  • A good description of the problem.
  • The Speed Dreams version
  • Whether you installed Speed Dreams from a binary package (which one), or you compiled it from sources
  • The console output of Speed Dreams.
  • Your operating system (uname -a).
  • The output of "glxinfo -l" (Linux, FreeBSD).
  • The /var/log/XFree86.0.log file (Linux, FreeBSD).


6. Links.

6.1 Speed Dreams.

6.2 TORCS.

6.3 Libraries and Drivers.

6.4 Other.