• Home
  • History
  • Annotate
Name Date Size #Lines LOC

..03-May-2022-

data/H07-May-2022-14,631,51614,613,073

doc/H07-May-2022-548480

src/H07-May-2022-214,103152,043

COPYINGH A D23-Mar-200317.6 KiB343281

Make-configH A D18-May-20162.8 KiB7155

Make-config.inH A D01-Jun-20082 KiB7156

Make-default.mkH A D03-May-202218.2 KiB880602

MakefileH A D03-May-20222.9 KiB12673

READMEH A D18-May-201617 KiB443380

TORCS.dspH A D01-Feb-20051.8 KiB6453

TORCS.dswH A D09-Feb-201212.2 KiB561450

TORCS.slnH A D06-Jan-201219 KiB278276

TORCS.vcprojH A D31-Dec-20111.6 KiB7574

acinclude.m4H A D29-Jun-2002818 2218

aclocal.m4H A D18-May-201636.9 KiB1,041947

autoconf.m4H A D01-Feb-20054.5 KiB114108

config.hH A D18-May-20164.4 KiB15954

config.h.inH A D20-May-20124.1 KiB158109

configureH A D18-May-2016241.8 KiB8,4597,076

configure.inH A D18-May-201612.4 KiB238197

create_dir.batH A D24-Jun-200143 42

install-shH A D24-Jun-20015.5 KiB251152

missingH A D01-Feb-200510.3 KiB354266

mkinstalldirsH A D24-Jun-2001738 4324

resource.hH A D16-Nov-2002454 179

robotgenH A D03-May-202222 KiB573513

setup_win32-data-from-CVS.batH A D11-Jun-200860 42

setup_win32-data-from-CVS_debug.batH A D11-Jun-200861 42

setup_win32-data-from-CVS_generic.batH A D14-Nov-2013386.6 KiB3,0572,920

setup_win32.batH A D11-Jun-200846 42

setup_win32_debug.batH A D11-Jun-200847 42

setup_win32_generic.batH A D05-Feb-201378.9 KiB1,079897

stamp-h1H A D07-Sep-201323 21

torcs.desktopH A D29-Dec-2011167 109

torcs.rcH A D07-Mar-20141.7 KiB7354

README

11.  Introduction
22.  Documentation
33.  Non-Free content (in GPL sense)
44.  Track editor
55.  Linux Installation from Source
66.  Windows Installation from Source (Release version)
76.1 Windows Installation from Source, additional notes
87.  Windows Installation from Source (Debug version)
98.  Testing
109.  Getting Help
1110. Running under Valgrind with Linux
1211. Changes
1312. TODO/Notes
14
15
161. Introduction
17---------------
18First a big welcome, I hope you will enjoy your ride:-)
19
20This is an all in one package of TORCS. Be aware that some included
21artwork has non free (in the GPL sense) licenses, you will find a "readme.txt"
22in those directories. The rest is either licensed under the GPL or the Free
23Art License. If you want to create cars or advanced tracks using the accc tool,
24you will require stripe from http://www.cs.sunysb.edu/~stripe.
25
26If you use TORCS for research/projects you can have a look into the FAQ for
27citation guidelines.
28
29Kind regards
30
31Bernhard
32
33
342. Documentation
35----------------
36You can find a variety of links on www.torcs.org (video tutorials about content
37creation/usage, written documentation like the robot tutorial, etc.). The TORCS
38API and architecture documentation can be generated with Doxygen 1.8, run
39"make doc", the result can be found in doc/manual/api, point to index.html.
40
41
423. Non-Free content (in GPL sense)
43----------------------------------
44Here the list with the directories containing non free content, look at the
45readme.txt for details:
46- data/cars/models/pw-*
47- data/cars/models/kc-*
48
49
504. Track editor
51---------------
52The track editor is not included in this distribution, you can get it from
53http://www.berniw.org/trb/download/trackeditor-0.6.2c.tar.bz2, the sources
54are included in the jar. The sources are also available here:
55http://sourceforge.net/projects/trackeditor.
56
57
585. Linux Installation from Source
59---------------------------------
60- Requires plib 1.8.5, FreeGLUT or GLUT, be aware to compile plib with -fPIC
61  on AMD64 if you run a 64 bit version of Linux. Be aware that maybe just
62  1.8.5 works.
63- Untar the archive
64- cd into the torcs-1.3.5 directory
65- ./configure (use --help for showing the options, of interest might be
66  --enable-debug and --disable-xrandr).
67- make
68- make install
69- make datainstall
70- start with "torcs"
71
72Command line arguments:
73* -l list the dynamically linked libraries
74* -d run under gdb and print stack trace on exit, makes most sense when compiled
75     with --enable-debug
76* -g run under Valgrind (requires a debug build for useful results)
77* -e display the commands to issue when you want to run under gdb
78* -s disable multitexturing, important for older graphics cards
79* -m use X mouse cursor and do not hide it during races
80* -r pathtoraceconfigfile, run race from command line only, for testing and AI
81     training, see FAQ for details
82* -k (keep) suppress calls to dlclose to keep modules loaded (for Valgrind runs,
83     to avoid "??" in the call stack)
84
85
866. Windows Installation from Source (Release version)
87-----------------------------------------------------
88- hint: you can have a release and a debug build side by side, the release
89  version goes to "runtime" and the debug to "runtimed".
90- requires VS 6 (tested with sp6) or VS 2008 (tested with sp1), VS2010 is reported
91  to work as well. For express editions or VS 2012 read notes in section 6.1.
92- VS 6.0 support is fading out, you will need to install the Windows Server 2003
93  February Edtion CORE SDK (the last one which worked with VS 6.0) and set the lib
94  and include path in the options (used for SHGetFolderPath etc.).
95- untar the archive into a path without whitespaces and special characters.
96- cd into the torcs-1.3.5 directory
97- run setup_win32.bat
98- run setup_win32-data-from-CVS.bat
99- select the TORCS workspace (TORCS.dsw for VS 6) or solution (TORCS.sln
100  for VS 2008), select the w32-Release version.
101- compile project (0 warnings)
102- cd into the "runtime" directory.
103- run "wtorcs.exe"
104
105Command line arguments:
106* -s disable multitexturing, important for older graphics cards
107* -r pathtoraceconfigfile, run race from command line only, for testing and AI
108     training, see FAQ for details
109
110
1116.1 Windows Installation from Source, additional notes
112------------------------------------------------------
1136.1.1 VS 2005 Express (based on imported dsw), reported by Eric Espie:
114- Run up to the setup*.bat step in the above instructions, then open the TORCS.dsw
115  file and do the following changes
116- in wtorcs -> Source Files (Solution explorer) exclude torcs.rc
117- in client -> Source Files add the file errno.cpp to the solution (located
118  in src/libs/client)
119- change in the properties of all the sub-projects :
120        in "Configuration Properties -> Link Editor -> Entry : Ignore Specific Library"
121        change LIBCD in LIBC if present.
122
1236.1.2 VS 2005 Express (based on VS2008 sln), reported by Wolf-Dieter Beelitz:
124- Edit all vcproj (=xml) files and set the "version" from 9.00 to 8.00
125- Follow the instructions above.
126
1276.1.3 VS 2008 Express, reported by Stacey Pritchett:
128- in wtorcs -> Source Files (Solution explorer) exclude torcs.rc
129- Follow the instructions above.
130
1316.1.4 VS 2012, reported by SteveO:
132- In every project (except TORCS) add /SAFESEH:NO into the Additional Options
133  (Properties-Configuration Properties-Linker-Command Line), see also
134  http://msdn.microsoft.com/en-us/library/9a89h429.aspx.
135
136
1377. Windows Installation from Source (Debug version)
138---------------------------------------------------
139- hint: you can have a debug and a release build side by side, the debug
140  version goes to "runtimed" and the release to "runtime".
141- requires VS 6 (tested with sp6) or VS 2008 (tested with sp1), VS2010 is reported
142  to work as well. For express editions or VS 2012 read notes in section 6.1.
143- VS 6.0 support is fading out, you will need to install the Windows Server 2003
144  February Edtion CORE SDK (the last one which worked with VS 6.0) and set the lib
145  and include path in the options (used for SHGetFolderPath etc.).
146- untar the archive into a path without whitespaces and special characters.
147- cd into the torcs-1.3.5 directory
148- run setup_win32_debug.bat
149- run setup_win32-data-from-CVS_debug.bat
150- select the TORCS workspace (TORCS.dsw for VS 6) or solution (TORCS.sln
151  for VS 2008), select the w32-Debug version
152- compile project (0 warnings)
153- cd into the "runtimed" directory.
154- run "wtorcs.exe"
155
156Command line arguments:
157* -s disable multitexturing, important for older graphics cards
158* -r pathtoraceconfigfile, run race from command line only, for testing and AI
159     training, see FAQ for details
160
161
1628. Testing
163----------
164If you find problems which should be already fixed or new ones please report them
165to the torcs-users mailing list.
166
167
1689. Getting Help
169---------------
170During the game press F1. For more in depth information visit www.torcs.org,
171you find there a lot of information, look at the documentation section on
172the left, have as well a look into the list of howto's. If you are stuck
173have a look into the FAQ to learn how and where to report a problem.
174
175
17610. Running under Valgrind with Linux
177------------------------------------
178First you need to build a debug version of TORCS, make sure that the CFLAGS,
179CPPFLAGS and CXXFLAGS environment variables are empty (usually they are). Then
180run "make distclean", then the configure script with the option --enable-debug
181and all other options which you require, build and install as usual.
182
183To find memory leaks run first (Valgrind must be available in the path):
184./torcs -g
185
186You will find the logfile valgrind.log in the .torcs directory. If you have
187"??" in the call stack, you can run TORCS with the -k option to avoid unloading
188the modules:
189./torcs -g -k
190
191You should use -k just to investigate the "??" in the call stacks, because the
192suppression of dlclose can hide problems related with module release and cause
193problems because modules are just recycled but not reloaded.
194
195Of course you can use this with the console (command line) mode as well, e.g.:
196./torcs -g -r ~/.torcs/config/raceman/champ.xml
197./torcs -g -k -r ~/.torcs/config/raceman/dtmrace.xml
198
199Some additional notes:
200- Valgrind (version 3.6.1) reports on systems with the ATI flgrx OpenGL driver (8.961)
201  lots of leaks, according AMD Valgrind misinterprets memory blocks handed over to the
202  kernel. When I wrote suppressions the flgrx driver hung the X Server up, conclusion:
203  Give it a try (maybe another Valgrind/driver/kernel combination does/will do better),
204  but if you run in the mentioned problems, just use the TORCS command line mode or
205  install temporarily the Open Source ATI driver alternative, maybe this does do better
206  (not tested, send me a report;-) )
207- You can edit the "torcs" script and add "--leak-check=full --show-reachable=yes"
208  to see what is still reachable at exit. This is useful to reduce the amount of cached
209  xml file handles or hunt down missing releases of handles (they are not reported
210  usually because they are reachable via the cache), beware, it is perfectly
211  fine that the GUI and some handles are held permanent.
212
213
21411. Changes
215-----------
216
217Changes since 1.3.6
218-------------------
219- Added missing pictures for Doxygen generated documentation (Bernhard).
220- Fixed all Doxygen (version 1.8.2) warnings (Bernhard).
221- Adjusted Doxygen configuration (Bernhard).
222- Added architecture overview to documentation (Bernhard).
223- Updated documentation in params.cpp (Bernhard).
224- Improved some currently unused functions in params.cpp (Bernhard).
225- params.cpp cleanup (Bernhard).
226- Restructured/improved robottools documentation (Bernhard).
227- Improved documentation of interfaces (track, graphic, robot, simu) (Bernhard).
228- Improved pointer checking in RmLoadingScreenSetText (Bernhard).
229- Improved race manager API documentation (Bernhard).
230- Added RmGetCategoryName to race manager API, as the name suggests (Bernhard).
231- Removed obsolete file confscreens.h (Bernhard).
232- Enabled documentation client side (Javascript) search engine (Bernhard).
233- Improved ReApplyRaceTimePenalties for cases where drivers did not complete a
234  single lap or the car has been wrecked (Bernhard).
235- Removed some outdated files from human driver (Bernhard).
236- TORCS configuration and result files go now to correct place on Windows,
237  e.g. to AppData/Local/torcs on Windows 7 (Bernhard).
238- Result saving creates directory if not available, matters when creating
239  custom racemanagers or running custom batches with -r (Bernhard).
240- Improved -r on Windows, paths containing backslashes ('\') are now working
241  (Bernhard).
242- Added ShFolder.lib to VS 6 project files (required for SHGetFolderPath).
243  For VS 6 builds you will need to install the Windows Server 2003 February
244  Edtion CORE SDK (the last one which worked with VS 6) and set the lib
245  and include path in the VS 6 options (Bernhard).
246- Fixed some gcc 4.8.1 warnings (Bernhard).
247- Disabled penalties after race finish, reported by MarkP (MarkP, Bernhard).
248- Added new options to trackgen for testing, see -i, -o (Bernhard).
249- Added a testsuite to generate a bulk of tracks ("test" directory) (Bernhard).
250- Added blacklisting of button events in player perferences, needed to set up
251  input devices which fire button and axis events on analogue buttons, e.g.
252  L2/R2 of playstation 4 controllers. Add in the drivers section of
253  preferences.xml e.g. <attstr name="blacklisted events" val="BTN7-0,BTN8-0"/>
254  (Bernhard).
255- Improved wheel velocity calculation (Bernhard).
256- Improved suspension code to catch damping spikes in extreme conditions and
257  setups, for TRB (Wolf-Dieter, Bernhard).
258- Added comments in susp.cpp (Bernhard).
259- Ensure that the third element just produces positive forces (Wolf-Dieter,
260  Bernhard).
261
26212. TODO/Notes
263--------------
264
265TODO for 1.3.8 "worn & blown"
266--------------
267- Z-Collision
268- Eventually Z calculation
269- Caster
270- Threshold and caster adjustable- Dynamic track
271- Wind/Temp
272- Tire Wear/Temp
273- Curb sound
274- Brake balance adjustable during ride
275- Eventually differential(s) adjustable during ride
276
277TODO for 1.3.9 "analysed"
278--------------
279- Data recorder ("Telemetry")
280- Data analyser (high/low-pass filtering, comparison, etc.)
281- Speed/Shock
282- Replay?
283
284TODO for 1.3.10 "ruled"
285---------------
286- Rules
287- Timed races (e.g. 24h).
288- Rules/Modes which do not requrie 1.4 changes
289
290TODO for 1.3.11 "tutored"
291---------------
292- Starting/race modes (multi-class for TRB?)
293- VS update
294- Robot Tutorial update
295
296TODO for 1.3.12 "managed"
297---------------
298- Document race manager XML
299- Expose secret settings in GUI (e.g. Button masking)
300
301TODO for 1.3.13 or 1.4.x "artistic"
302------------------------
303- Ingame track generation wizard (themed)
304- Ingame car livery design (themed)
305
306TODO for 1.3.14 or 1.4.x "everywhere"
307------------------------
308- Merge simuv3 parts into simuv2
309- Review and eventually apply mac os x build
310- Review MorphOS changes
311- Review WD's ABS suggestion, apply.
312- Review WD's 4WD analysis/patch.
313
314TODO for 1.3.15+
315----------------
316- Maintainance only, move development to 1.4
317- Compiler and library adoptions, fixes, compatible content updates
318
319
320TODO for 1.4.x
321--------------
322- Robot interface adoptions (maybe askfeatures, callonce, grid, postprocess, we will see...)
323- More Rules.
324- Brake/Engine Wear (with cooling)
325- Apply SDL patch from Brian Gavin but moving directly to SDL 2.0.
326- Update OpenAL to 1.1, fix use of deprecated stuff.
327- Car asignment for human players.
328- Sound (alut depricated/scheduling for lots of cars)
329- Make it possible for a robot module to carry any arbitrary number of
330  drivers (instead of static 10).
331- Pace car and trucks to remove wrecks (remove "virtual" crane?).
332- Replace wav sounds with ogg?
333- Track extensions (crossings, split/join, variable width)
334- Replays
335- Skidmarks/shadows masking with stencil
336- Phong specular highlights/in shadow occlusion
337- Skidmarks to simu/persistency (get rid of frame rate dependency)
338- Review/reduce dynamic memory allocation/release during rendering
339- Store all graphics engine state in a context struct/object (to be able to render telemetry
340  in the car setup screen or during a running session)
341- track wall properties
342- Solve problems with side entering/exiting pit lane rules (repeated violations give
343  only one penalty under some conditions).
344
345TODO TRB
346--------
347- RSS feed(s) (suggested by Quinten)
348- Race XML generation
349- Content exchange
350- E-Mail exchange
351
352TODO for Compliance
353-------------------
354155-DTM -> replace with car10-trb1
355acura -> replace with car9-trb1
356mc-larenf1 -> replace with car10-trb1
357p406 -> replace with car1-trb4
358rework buggy, baja bug
359replace rally cars
360Remove invalid geometry from tracks
361convert force units internally from lbs to lbf
362
363
364Later:
365-------------------
366- Decide about plib (not maintained anymore?) -> integration of minimal subset as base
367  for own engine?
368- Refactor trackgen (left/right -> half the code, maybe more)
369- GUI for event blacklisting.
370- Ongoing for every release: rework free car models (several holes, no
371  emmissive color of lod (model becomes dark at a certain distance), single
372  sided, add cockpit, lods).
373- Ongoing for every release: Improve visual quality of some existing tracks.
374- Fix sound in split screen multiplayer.
375- Ongoing: Replace some defines with "static const" to be able to see the
376  symbol name when debugging.
377- move berniw/bt spline code into math to share it.
378- hunt down all glGet* crap during the simulation.
379- (Problem when driver list changes during championship.)
380- (add proper init/shutdown to every module which is not bound to anything else
381  but the loading/init/shutdown/unloading process.)
382- Blind mode should not load graphics engine.
383
384
385TODO for 1.9.x (pre 2.0 series, no release)
386--------------
387- Design networking, how to embed it into TORCS?
388- Networking prototype.
389- Gaming modes suitable for online races.
390- Cockpit inside view.
391- Set up infrastructure for reading binary data files bit with and endianness independent.
392
393TODO for 2.0.0
394--------------
395- Initial Networking.
396
397
398TODO LATER
399----------
400- Add validation for the case no driver selected, do not exit to
401  console.
402- Networking (2.0).
403- SMP simulaton core (for myself).
404- Replays.
405- Telemetry recorder/viewer.
406- Phong specular highlights (optional env, cube or GLSL).
407- Shadowmapped/Stenciled dynamic car shadows.
408- so/dll with libtool, common code?
409- 3d-grass.
410- Dynamic sky.
411- TRB integration.
412- Show just fitting resolutions for fullscreen/change for windowed mode.
413- Separate components more clean (e.g. ssgInit should go back to
414  ssggraph, etc.)
415- Avoid cameras cutting the landscape.
416- Start position marks on track (same technique like fake shadow, skids).
417- Start procedures (pace car, etc).
418- Better transparency for track objects.
419- More driving aids, switch to AI and back.
420- Opponent sets for human players (e.g 20 Open Wheel cars, etc.)
421- Free camera controlled with mouse and keys.
422
423
424IDEAS FOR MUCH LATER
425--------------------
426- Weather.
427- Dynamic day/night-time, car lights.
428- Pit crew.
429- Dynamic "intelligent" Objects (e.g. Helicopter)
430- Solid/dynamic obstacles.
431- Nicer trees etc, terrain LOD.
432- Inside view.
433- Animated driver.
434- Dirt on cars, inside view.
435- free terrain.
436- Open track dynamically generated when driving.
437- Random track generator.
438- Separate pit path, Y segments, etc?
439- TORCS as benchmark or screensaver?
440- Force feedback.
441- Story mode with message.
442- Traffic simulator
443