			March 9 2004
Turbo Sliders 0.86 beta (c) Antti Mannisto <Antti.Mannisto@iki.fi>
-----------------------------------------------------------------

  This is an unfinished beta version of the game. Running the
beta version generates a debug file named output.txt which can grow 
quite large (the old file is automatically deleted when a new game
is started, though). If the program crashes and you want to inform 
me, send the last few lines of output.txt to me and describe what
happened. You can also add debug level by for example running the program 
with the command line option "-d 2". For each session, the game also 
generates a new log.txt file which contains log for the games played and 
messages sent.

  Help for the editor is found in README-editor.txt. README-mod.txt 
contains information about how the game features (cars, graphics, 
sounds etc.) can be modified. README-autoserver.txt contains information
on how to run a dedicated Turbo Sliders server.


LICENSE

  Running and distributing (as long as the package is unmodified) this version 
of Turbo Sliders is free. If you want to support developing the game, read 
SUPPORT.txt.

  Turbo Sliders uses several LGPL libraries (SDL, SDL_gfx, SDL_image,
SDL_net, a modified version of BFont, OpenAL, libpng, zlib). See LICENSE.txt 
for details. 


GAME

  This game idea is based on T&J Kauppinen's legendary Slicks'n'Slide
(http://slixnslide.tripod.com/). The main improvement is the
network support but lots of features from the later versions of S'n'S
are missing. I have no time to write a manual yet, but playing the game 
should not be too hard after you learn to control the slide :). The next
chapter contains some miscellaneous tips:


TIPS

  - Use the Server list (under the Connect menu) to find other players.
    If no other games are on, you can simply start your own server
    and others may join (if you are not behind a firewall).
  - Each time you play the game, log.txt contains information about the
    races you played. For example, you can get nice graphs if you cut'n'paste
    graph data to Excel or similar. Remember that the file is always cleared
    when the game is started so make sure you copy it if you want to 
    archive it. 
  - If you upgrade to a new version, you can use your old player profile
    by copying data/players.dat from the old install directory. To get
    your old settings, copy sliders.ini in the main directory, too. 
    Or you can just unpack the files on top of the old version. 
    If you don't copy the player profiles, your old records appear to 
    have been made by another player even if the name is the same.
  - The game automatically generates HTML lists of your track records.
    See the file "records/html/index.html".
  - If the game lags, you can debug the situation with the diagnostics key 
    (F10 by default). FPS should be 50 and load much less than 100 %.
    If you have lag when connected to a server, you also see whether you
    should add or decrease the client prediction time (PageUp/PageDown).
    See the troubleshooting section for more information.
  - You can make subdirectories under the tracks directory and move your
    tracks there. Remember to move all the files associated with
    the track (normally there are two files, the trk file and the png file
    but there can be more). The HTML track record summaries are divided
    according to the directory hierarchy.
  - Tracks downloaded from servers are put to subdirectories under
    tracks/downloaded/xx-xx-xx-x. You can move them to other directories
    but make sure that all the needed files are moved to the same place and
    that you don't overwrite other files.
  - You can see track records by pressing R in the tracks menu or by
    viewing index.html in the html directory.
  - Shift + backspace removes the whole line when writing messages.
  - You can define server macros and auto-server actions by editing macros.ini
    or by some other file when using the command line option "-macros".


COMMAND LINE OPTIONS

  The following command line options can be useful: (<1|0> means 1 or 0)
   -f <1|0>          full screen on or off
   -x <size>	     x size of the window/screen
   -y <size>         y size of the window/screen
   -connect <ip>     immediately connects to the given IP
   -name <name>      select (only) the given player
   -sound <1|0>      sound on or off
   -priority <0|1|2> sets process priority, 0 low, 2 high (default: 2)
   -debug <0|1|2|3>  sets debug level for output.txt (default: 1)
   -usestore <1|0>   whether to use surface store, use 0 to save memory 
                     but Alt+Tabbing may not work in Windows (default: 1)
   -macros <file>    sets the macros file (default: macros.ini)


THINGS TO DO

  - Better graphics, more tiles, more tracks
  - More sound effects, music
  - More cars
  - Computer players
  - Some 3D elements (bridges, jumps etc.)
  - Recording games / best laps
  - Linux version 
  - Bug fixes
  - Bandwith optimization


TROUBLESHOOTING

1. Crashes
  - Check if the last lines in output.txt tell what the problem is. 
    If you can reproduce the problem, run the program with more debug
    information ("-d 2") to get more information to output.txt. 
  - Try to start without sound (command line option "-snd 0") and
    in a window ("-f 0"). If sound is the problem, try updating
    the latest OpenAL drivers (see the item 4).
  - As we all know, sometimes Windows needs to be rebooted for things 
    to work.
  - You must have writing access to the files in the installation
    directory, otherwise the game cannot be started. Remember this 
    especially if you have Windows XP and have installed the game 
    with some other user.
  - If nothing helps or you find a new problem, please inform me 
    (<Antti.Mannisto@iki.fi>). 

2. Cars do not move smoothly in a local game
  - Press F10 during game to see, what seems to take too much time. 
    FPS should be 50 (total ticks per frame 20) and load much less 
    than 100 %.
  - If graphics lag, try:
    - Full screen, smaller resolution (and/or zoom level)
    - Turn off shadows 
    - Turn off smoke and skidmarks
    - Close all other programs
    - Boot
    - Play only small tracks
    - Buy a faster computer 

3. Network problems
  - If you can connect and send messages, but other cars do not move,
    you have a firewall or NATting problem. If you have a firewall, 
    make sure it allows TCP and UDP packets to and from the server port
    (default 6655). Firewall should also allow sending and receiving
    UDP packets to and from the client port. Client port is currently 
    fixed but server should be able to adjust to different client 
    ports (if for example NATting changes the port). 
  - If every player is experiencing lag or jerky car movements, problem
    is probably in the server. First, check server ticks per frame 
    as described above.
  - If the server bandwith is not enough and finding a better ISP is not 
    an option, add send interval. With n players and the default send 
    interval, server upstream has to be about 200 n^2 B/s (that is 
    1.6 n^2 kb/s) and client should be able to receive about 
    200 n B/s (1.6 n kb/s). 
  - Use the diagnostics key (F10) to debug your connection to the server.
    The "Serv diff" value should always be positive. If it is negative, add
    prediction with PageUp. If the value is very big (over 200 or so), 
    you have so much prediction that it may cause other problems (too
    much to predict). The warp values tell how many "time warps" the
    client has made. The race ping value is in the normal case approximately
    the same as the real ping time from the client to the server and back.
    If the server is not receiving client events and/or the client is not 
    receiving server updates, "Disconnected?" text is shown. If the server 
    is not getting any events from the client, "Race ping" and "Serv diff" 
    are permanently "???".
  - The idea of the prediction times is that it is the amount of 
    time the client wants to be ahead of the situation it receives from 
    the server, predicting what the situation would be after that time. 
    The difference between min and max prediction defines how much ping time
    changes are tolerated. If the window between min and max is narrow, 
    smoothness can suffer if the ping times differ a lot. 
  - Event send times can be added if you believe lots of packets get lost.
    The value is the number of times the client sends one event (for example
    starting braking or steering) to the server in successive frames.

4. Sound problems
  - If there is no sound, try to decrease the number of engines and effect
    channels.
  - Boot (if using Windows).
  - There seems to be some problems with the OpenAL implementation. For
    example, sometimes samples start looping for no reason. Usually restarting
    the program helps. You can also try to upgrade the OpenAL implementation.
    Delete (or preferably rename) OpenAL32.dll and then install the latest
    implementation. Find OpenALwEAX.exe or similar from Creative or Ndivia. 
    When writing this, it was found for example here: 
    http://developer.creative.com/landing.asp?cat=1&sbcat=31&top=38

5. Graphics get corrupted 
  - Alt+Tab can get the graphics somewhat corrupted. 
  - Graphics can also get corrupted if you are out of video memory,
    try to decrease the zoom level and/or screen/window resolution.

6. Hash errors or warnings
  - The point of hash errors is to detect situations where players have
    a different version of some car or track. This way the users should be 
    able to trust lap records more (cheating is of course always possible 
    by reverse-engineering the hash generation code, but it should not happen
    by accident). If, however, hash errors occur even though there should 
    not be any differences, something does not work and I would like to 
    hear about it. In versions before 0.70, some tracks like Nasty often
    caused hash errors. Hopefully, this has been fixed, now.
    
7. Third party track problems
  - Tracks can have buggy control points which can lead to not getting
    laps always completed. Check the control points with the editor.
  - Hash errors can be caused if pattern file is not included in the
    track. This can happen, if someone renames a track and the pattern
    file and does not save the new track with editor after renaming.
  - Track preview is also unavailable if there is no pattern file included.


VERSION HISTORY

09.03.2004 v0.86
 - Ghost races (races where cars do not collide)
 - Track profile preview (if pattern file exists)
 - More variety in car colors
 - Car shadows
 - Stand-alone server
 - Better automatic lag avoidance (automatic PageUp/PageDown messages)
 - A new stats mode with double Tab
 - Better Alt+Tab recovering during race
 - Progress bars and more info screens
 - Possible to have zoom level less than 1, also added enlarge-to-fit option
 - Better sound inititialization in error situations
 - Scrolling possible in editor
 - Race stats and cup stats should not ever be broken any more
 - File transfer problems after disconnection fixed
 - Invalid tracks do not end net cup any more
 - Various smaller fixes

23.01.2004 v0.84
 - Master server support (server lists)
 - Better network and load diagnostics (F10 during race)
 - Network protocol improved (and new bugs planted?)
 - Possibly fixed some font issues (fonts sometimes broken)
 - Fixed a big OpenAL related memory leak
 - Updated some SDL libraries

16.12.2003 v0.82
 - Added the possibility to select different cars for different players
 - Cars should not get stuck so easily any more

18.11.2003 v0.80
 - Editor included
 - Improved record import and export 
 - Automatic track loading
 - Possibility to login after the game has already started
 - Kicking and banning (removing players from a cup)
 - Higher process priority in Windows (and possibility to adjust it)
 - Decreased default output.txt logging
 - Graph data for races in log.txt

10.09.2003 v0.72
 - Lots of minor stuff
   - Pasting server names
   - Starting lights
   - Penalty for too early starts
   - 8-bit characters allowed in messages
   - Preparation for editor
   - etc.

21.06.2003 v0.71b
 - Minor server command fix

21.06.2003 v0.70b
 - Track file format changes (added track pattern files)
 - Three new tracks
 - Lots of minor improvements, for example:
   - Server commands
   - HTML record summaries
   - Random track selections
   - Cup aborting
   - Possibility to adjust client prediction times when the race is on
   - New command line options
 - Included info for modders

07.06.2003 v0.65b
 - Smoke and skidmarks

26.05.2003 v0.60b
 - Track records
 - New tracks automatically found
 - Lots of invisible changes (and probably some new bugs, too)

10.05.2003 v0.56b
 - Minor fixes
 - A bit more stat info with stat key

09.05.2003 v0.55b
 - Network code changes
     - Server allows different client UDP ports (this should 
       help playing with NAT clients)
     - Not reconnecting in busy loop any more
 - Improved track file format (added tile groups)
 - More tracks
 - Player names and laps shown with stats key

03.05.2003 v0.51b
 - Bug fixes		

02.05.2003 v0.50b
 - Sound effects
 - Changing start order

22.04.2003 v0.40b 
 - Different cars supported

17.04.2003 v0.32b 
 - Fixed one big memory leak and several minor issues

17.04.2003 v0.31b 
 - Reduced cars getting stuck on collisions

16.04.2003 v0.30b 
 - More or less working client/server cup implemented


CONTACT

  Send bug reports and comments to Antti.Mannisto@iki.fi.

