Introduction
------------
This is an all in one package of TORCS. Be aware that some included
artwork has non free (in the GPL sense) licenses, you will find a "readme.txt"
in those directories. The rest is either licensed under the GPL or the Free
Art License.


Non-Free content (in GPL sense)
-------------------------------
Here the list with the directories containing non free content, look at the
readme.txt for details:
- data/cars/models/pw-*
- data/cars/models/kc-*
- data/cars/models/vm-*


Linux Installation from Source
-------------------------------
- Requires plib 1.8.3, FreeGLUT or GLUT, be aware to compile plib with -fPIC
  on AMD64 if you run a 64 bit version of Linux. Be aware that maybe just
  1.8.3 works.
- Requires OpenAL from www.torcs.org for best sound quality.
- Untar the archive
- cd into the torcs-1.3.0 directory
- ./configure (use --help for showing the options, of interest might be
  --enable-debug and --disable-xrandr).
- make
- make install
- make datainstall
- start with "torcs"

Command line arguments:
* -l list the dynamically linked libraries
* -d run under gdb and print stack trace on exit, makes most sense when compile
     with --enable-debug
* -e display the commands to issue when you want to run under gdb
* -s disable multitexturing, important for older graphics cards
* -m use X mouse cursor and do not hide it during races


Windows Installation from Source (Release)
------------------------------------------
- hint: you can have a release and a debug build side by side, the release
  version goes to "runtime" and the debug to "runtimed".
- requires VC++ 6.0 (tested with sp6)
- untar the archive into a path without whitespaces and special characters.
- cd into the torcs-1.3.0 directory
- run setup_win32.bat
- run setup_win32-data-from-CVS.bat
- select the TORCS project and the w32-Release version
- compile project (0 warnings)
- cd into the "runtime" directory.
- run "wtorcs.exe"


Windows Installation from Source (Debug version)
------------------------------------------------
- hint: you can have a debug and a release build side by side, the debug
  version goes to "runtimed" and the release to "runtime".
- requires VC++ 6.0 (tested with sp6)
- untar the archive into a path without whitespaces and special characters.
- cd into the torcs-1.3.0 directory
- run setup_win32_debug.bat
- run setup_win32-data-from-CVS_debug.bat
- select the TORCS project and the w32-Debug version
- compile project (0 warnings)
- cd into the "runtimed" directory.
- run "wtorcs.exe"


Testing
-------
Please pick bugs below and retest them (you can find the original reports on
http://sourceforge.net/tracker/?group_id=3777&atid=103777, select "any" bugs to
see as well the closed ones). If you find problems which should be already
fixed or new ones please report them to the torcs-users mailing list.


Getting Help
------------
During the game press F1. For more in depth information visit www.torcs.org,
you find there a lot of information, look at the documentation section on
the left, have as well a look into the list of howto's. If you are stuck
have a look into the FAQ to learn how and where to report a problem.

Have fun, bye

Bernhard.


Changes since 1.3.0 test 1
--------------------------
- Fixed bt pit bug reported by Mart Kelder (Mark Kelder, Bernhard).
- Fixed missing car category reported by Mart Kelder (Mart Kelder, Bernhard).
- Fixed various gcc warnings (Mart Kelder, Bernhard).
- Support newer version of OpenAL where ALUT and OpenAL are two distinct
  libraries (Bernhard).
- Add X11 libraries in configure.in to LDFLAGS in a later stage (Bernhard).
- Version number to 1.3.0 (Bernhard)


Changes since 1.2.4
-------------------
- Added Doppler workaround for OpenAL Windows (Christos)
- Fixed curb height calculation in rttrack.cpp:RtTrackHeightL() (Christos)
- Fixed very little steering error around the center discovered by Eugen
  (Eugen, Christos, Bernhard).
- Fixed reading and writing of Olethros data files on non-Posix platforms
  (Bernhard).
- Verified OpenAL volume jump, seems to be gone, perhaps caused by source
  scheduler (Christos, Bernhard).
- Track tutorial added to CVS (Christos).
- Fixed -s option in Windows and usage of multitexturing if extension is not
  available (Bernhard).
- Fixed wrong car corners for cars with noncentral center of gravity (Bernhard).
- Added support for multiple cars per pit. The cars must be of the same team,
  define it in the racemanager race section (e.g. "First Race" in endrace.xml)
  with <attnum name="cars per pit" val="2"/>. Values from 1-4 are accepted. Be
  aware that the robots are not adopted, this is just for TRB use for now
  (Bernhard).
- Fixed segfault in new pit code (Mart Kelder, Bernhard).
- Updated 360-Modena model and textures for player, berniw, inferno and damned
  (Bernhard).
- Added fixed cameras to alpine-1 (Christos).
- Improved field of view ratio handling (Felix Kühling, Christos).
- Fixed floating F10 camera (Christos).
- Updated bt with changes from bt_2004 (Bernhard).
- Totally reworked lotus-gt1 model (Andrew, Bernhard).
- New textures for the new lotus-gt1 model (Bernhard).
- Hide warning about too long debug symbols in vc++ debug project (Bernhard).
- Updated binary files with admin -kb in CVS to solve problems of WinCVS
  users (Bernhard).
- Updated windows project files and code such that the projects compile
  cleanly (except Olethros, disabled for now, need to resolve the "clock"
  first) (Bernhard).
- Fixed a bug which prevented the display of all available resolutions which
  xrandr advertises (Bernhard).
- Applied suggested gcc 4.1 compile fix (Mart Kelder, Bernhard).
- Fixed wrong flags (-kk) in ssggraph (Bernhard).
- Some corrections in the robot tutorial (Wino, Bernhard).
- Added track wheel-2 created by Andrew Sumner (Andrew, Bernhard).
- Added track street-1 created by Andrew Sumner (Andrew, Bernhard).
- Replaced track dirt-3 with new track created by Andrew Sumner
  (Andrew, Bernhard).
- Removed some outdated files (CHANGELOG.html, TODO.html) (Bernhard).
- Added new track Ruudskogen created by Tor Arne Hustvedt, ported
  to TORCS by Andrew Sumner (Andrew, Bernhard).
- Fixed minor visual issues of the lotus-gt1 (Bernhard).
- Reworked viper (Andrew).
- Once again totally reworked viper (Bernhard).
- New textures for all vipers (berniw, player, lliaw) (Bernhard).
- Reduced front clift/increased rear clift of lotus-gt1 by 0.1
  to make it more drivable with the keyboard (Bernhard).
- Replaced the player setups for the viper, lotus and 360-modena
  by berniw setups with minor adjustments (Bernhard).
- Fixed aspect ratio of counters, works now fine with any screen
  resolution (Bernhard).
- Fixed multiplayer key handling when driver crashed (Mart Kelder,
  Bernhard).
- Fixed wrong key-state after pitmenu, excellent report by Mart Kelder,
  needs more testing (Bernhard).
- Adjustments on car data files and models (360-modena, viper, lotus)
  (Bernhard).
- New car (car1-trb1), prototype/experiment for "unified" cars (unified: usable
  as direct opponents) (Bernhard).
- Improved possible packers thickness of category Track-RWD-GrA to 50mm
  (Bernhard).
- Totally reworked michigan track (Bernhard).
- Added -fno-strict-aliasing for now to avoid warnings with newer versions off
  gcc which enables strict-aliasing by default (Bernhard).
- Fixed compile warnings in img.cpp (Bernhard).
- Updated bat files to deploy michigan, ruudskogen and car1-trb1 (Bernhard).
- Updated installer (Bernhard).
- Fixed ancient and obscure menu crash bug (not executed "Quit" releases handle
  of main menu "Quit") (Bernhard).
- Fixed ole-road-1 beginning/end matching (Bernhard).
- Screenshots go now to local dir (.torcs/screenshots) (Bernhard).
- Get/write raceengine.xml to users local dir (Bernhard).


TODO for 1.4.0
--------------
- Apply SDL patch from Brian Gavin (rescheduled to 1.4.0 to get to to test
  seriously).
- Update OpenAL to 1.1, fix use of deprecated stuff.



Later:
-------------------
- When car is moving sideways, the engine sound source seems shifted to the
  side under OpenAL (2.0).
- SDL port (->2.0).
- Add valgrind option to "torcs".
- Include suppressions file for valgrind.
- (Fix parallel build with make -j n, breaks currently in SOLID) (Bernhard).
- Ongoing for every release: rework free car models (several holes, no
  emmissive color of lod (model becomes dark at a certain distance), single
  sided, add cockpit, lods).
- Ongoing for every release: Improve visual quality of some existing tracks
  (e.g. e-track-3, eventually wheel-1, e-track-2).
- Add cameras (spring)
- Texture clamp to edge needs explicit setting in nvidia driver tab in windows,
  have a look into that (otherwise the border is not taken as color around the
  pit door, pits are quite dark around the logo).
- merge berniw_2004 code into berniw's (rescheduled, a bit more testing will
  not hurt).
- review/comment simuv2 (e.g. rollres, fuel, collision, more).
- fix tools (accc, trackgen, etc, these are way too touchy).
- make trackgen generate two sides for barriers and use just one sided
  polygons (better diffuse lighting).
- fix sound in split screen multiplayer. [in progress] (ask Christos).
- Add remaining kcendra cars.
- Check and add Andrews car improvements.
- Check and add Erics new car class.
- Ongoing: Replace some defines with "static const" to be able to see the
  symbol name when debugging.
- add more races to championship.
- move berniw/bt spline code into math to share it.
- hunt down all glGet* crap during the simulation.
- check all textures for the user selectable cars, they should be nicer.

- (Problem when driver list changes during championship.)
- (add proper init/shutdown to every module which is not bound to anything else
  but the loading/init/shutdown/unloading process.)
- (make use of pbuffers to render trackmap if available.)
- Update FAQ
  "mencoder -ovc lavc -lavcopts vcodec=mpeg4:vhq:vbitrate=1800 \*.jpg -mf on:type=jpeg:fps=25"
  the backslash got swallowed by the CMS.



TODO for 1.9.x (pre 2.0 series, no release)
--------------
- Design networking, how to embed it into TORCS?
- Networking prototype.
- Gaming modes suitable for online races.
- Cockpit inside view.
- Set up infrastructure for reading binary data files bit with and endianness independent.

TODO for 2.0.0
--------------
- Goal: best online racing game in terms of stability/playability. Most
  commercial games really suck in this department, I hope we will do it better.
- Initial Networking.


TODO LATER
----------
- Add validation for the case no driver selected, do not exit to
  console.
- Fix more memory leaks (already hunt down a LOT there are still more).
- Networking (2.0).
- Rework the whole AC file loaders and state management (most of the remaining
  memory leaks).
- Replace vector/matrix oprations with an efficient implementation (-> use
  SIMD, e.g. enhanced version of v2/v3d.h with SIMD alternatives if compilers
  are not more clever at this time (currently they suck on useful vectorizing)).
- SMP simulaton core (for myself).
- Replays.
- Setup editor (add a function to the robot interface to ask the robot
  about the location or a file handle for its setup file, perhaps a
  close function is needed as well).
- Telemetry recorder/viewer.
- Redesign/Reimplement multitexturing and fileformat.
- Apply light maps to skid marks, smoke and wheels, etc.
- Phong specular highlights (optional env, cube or GLSL).
- Shadowmapped/Stenciled dynamic car shadows.
- Compile/crosscompile on MinGW/Cygwin/Linux for Windows native.
- so/dll with libtool, common code?
- 3d-grass.
- Dynamic sky.
- Pace car and trucks to remove wrecks (remove "virtual" crane).
- More Rules.
- TRB integration.
- Fix/create new simu/switch to updated/new simu.
- (clean up simuv3 conflicts)
- Show just fitting resolutions for fullscreen/change for windowed mode.
- Make it possible for a robot module to carry any arbitrary number of
  drivers (instead of static 10).
- Solve problem of wheels cutting the car body (stencil?).
- Nicer Tires, a bit more round, better lighting.
- Separate components more clean (e.g. ssgInit should go back to
  ssggraph, etc.)
- persistent skidmarks (simply put them back into the shadowmap after
  the race? Extra texture? Just restore them?), restore function.
- Make Windows debug build work.
- Fix windows project such that it compiles in all locations (currently it
  fails if special characters are in the path).
- Avoid cameras cutting the landscape.
- Rework models (holes, just single sided polygons for culling, etc.)
- Check (and fix if neccessary) screenshots on Windows, still wrong gamma?
- API to change setup during the practice mode.
- Timed races (e.g. 24h).
- Allow more mouse events /suggested by Frieder -> mouse wheel for gear
  switching).
- Start position marks on track (same technique like fake shadow, skids).
- Start procedures (pace car, etc).
- Better transparency for track objects.
- More driving aids, switch to AI and back.
- localization (e.g English, French, German, ...).
- add compatibility lib for strndup etc. on win32.
- New GUI.
- driving/races in reverse track direction.
- Check for consistency of simuv2/simuv3.
- verify that simulation obeys conservation of momentum and energy.
- optimise simuv3.
- Fix engine inertia/s of F1 cars, check/fix all other cars as well.
- Opponent sets for human players (e.g 20 Open Wheel cars, etc.)
- Free camera controlled with mouse and keys.
- Automate GL features verification (hopefully obsolete).
- Investigate the oscillation and roughness problems reported by Christos.


IDEAS FOR MUCH LATER
--------------------
- Weather.
- Dynamic day/night-time, car lights with projective texturing.
- Pit crew.
- Dynamic "intelligent" Objects (e.g. Helicopter)
- Solid/dynamic obstacles.
- Nicer trees etc, terrain LOD.
- Inside view.
- Animated driver.
- Dirt on cars, inside view.
- free terrain.
- Open track dynamically generated when driving.
- Random track generator.
- Separate pit path, Y segments, etc?
- TORCS as benchmark or screensaver?
- Switch to rigid body engine?
- Force feedback.
- (Compressed data files?)
- Story mode with message.
- Traffic simulator

