X-Moto 0.5.3
Copyright (C) 2005-2010

Main activ developpers:
2005-2006 Rasmus Neckelmann (neckelmann !at! gmail !dot! com)
2006-2009 Nicolas Adenis-Lamarre (nicolas !at! adenis-lamarre !dot! fr)
2007-2009 Emmanuel Gorse (e !dot! gorse !at! free !dot! fr)
2009-2009 Jens Erler (mothbox !at! gmx !dot! net)

(Change !at! by @ and !dot! by . to reconstruct the email addresses.)

http://xmoto.tuxfamily.org

Introduction
============

X-Moto is a challenging 2D motocross platform game, where physics play 
an all important role in the gameplay. You need to control your bike to 
its limit, if you want to have a chance finishing the more difficult of 
the challenges. 

First you'll try just to complete the levels, while later you'll compete 
with yourself and others, racing against the clock.  

System Requirements
===================

General hardware requirements:

 - CPU: 300 MHz (a wild guess)
 - RAM: 64 MB (at least 40 MB of free memory prefered)
 - Graphics: nVidia GeForce-class card with 128 MB of video memory
 - HDD: 50 MB of free space on your hard drive.
 - Software: Windows, Linux, Mac OS X or FreeBSD (other UNIX-like 
   OS's might be supported as well)

Recommended:

 - CPU: 1 GHz
 - Graphics: nVidia GeForce FX/ATI RADEON 9600-class GPU

Software dependencies for compiling on non-Windows platforms:

 - libjpeg
 - libpng
 - zlib
 - libbz2
 - SDL
 - GL
 - libcurl (3.x)
 - lua (5.x)
 - ode (0.x)
 - SDL_mixer (1.2.7)
 - SDL_net (1.2)
 - libsqlite
 - libcurl
 - SDL_ttf 

Installation
============

The file INSTALL offers information on how to get X-Moto up and 
running on your non-Windows computer. If you're reading this file on
you're Windows computer, you've probably already installed X-Moto
successfully :)

Basic Gameplay
==============

A number of strawberries are spread around each level, which generally 
consists of a complicated landscape seen from the side - i.e. much like 
islands in the sky. You need to collect all these berries to 
complete the level - when you've got the last one, you should find 
the sunflower which will complete the level when you touch it. 
Variations to this basic gameplay may be found around some of the 
levels.
Your motocross bike is likewise seen from the side, 
and you control its throttle, braking, and simple changes to the 
attitude by jerking the bike back and forth. Additionally you can change 
the direction of your driving, by rotating on the spot. 

Controls
========

You control your bike using the keyboard:

Up arrow - Accelerates
Down arrow - Brakes
Left arrow - Rotates it counter-clockwise
Right arrow - Rotates it clockwise
Space - Turns around and drives in the other direction

Note that the above keys can be configured to something else to suit
your needs.
Additionally, some other keys can be pressed while playing:

Escape - Pauses the game, and opens the in-game menu
F12 - Takes a screenshot (saved in the game directory on Windows,
  otherwise in the ~/.xmoto directory)

Command-line Options
====================

X-Moto supports a range of options you can specify on the command
line when starting the program:

 -res WIDTHxHEIGHT  This forces X-Moto to use a resolution of 
                    WIDTHxHEIGHT. Note that this resolution must be
                    supported by your video card and monitor if -res
                    isn't combined with -win, in which case you can
                    specify any weird resolution you'd like.
                    Note that this option overrides the settings you
                    have specified inside the game.
 
 -bpp BITS          Sets the display bits per pixel to BITS. When
                    running in windowed mode this option has no 
                    effect at all. If BITS is 0 the current display
                    setting is used.
                    Like with -res, this option overrides the 
                    in-game setting.
                    
 -fs                Forces the game to run in fullscreen mode
                    regardless of the setting specified inside the
                    game.
 
 -win               Like -fs, but forces windowed mode instead.
 
 -q                 Enables quiet mode, in which no messages is 
                    written in the log or to the console. This 
                    overrides the -v option.
 
 -v                 Enables verbose mode.
 
 -noexts            Disables the use of OpenGL extensions. Try this
                    option if you experience weird graphical errors 
                    inside the game. Expect the use of this option to
                    lower the framerate a bit, especially when 
                    playing large levels.
                    
 -level ID          Jumps directly into a specific level identified
                    by ID. Built-in levels are identified by their
                    number, i.e. use -level 16 to play level #16.
                    External levels are identified by their IDs.
         
 -replay NAME       Plays the given stored replay. NAME is the name
                    of the replay file in the Replays/ sub-directory,
                    with or without the .rpl extension.
                    
 -profile NAME      Play the game using the given player profile. 
                    This is useful when combined with the -level 
                    option.

 -listlevels        Outputs a list of all available levels, and then
                    quits. Useful if you want to use -level to jump
                    right into a level, but you don't want to go into
                    the game to see what the level IDs are.
 
 -listreplays       Like -listlevels, but with replays instead.
 
 -timedemo          Disables framerate throttling, i.e. the game will
                    run at maximum framerate. 
 
 -fps               This will display the current framerate in the 
                    upper left corner of the screen.
 
 -ugly              Enables "ugly" mode. This will increase the game's
                    framerate significantly, but it will also make 
                    the graphics look very ugly - most things inside 
                    the game will be drawn with lines, the rider for
                    instance being a simple stick figure.
                    This option is very useful if your system doesn't
                    have a proper OpenGL-capable video card (like
                    for instance if you have a laptop with on-board
                    video card).
                    If you have the right amount of CPU power, it 
                    should even be possible to run X-Moto in OpenGL
                    software emulation mode (MesaGL on linux, Windows' 
                    OpenGL fallback driver, etc).
 
 -benchmark         When combined with -timedemo and -replay, the game
                    will simply run the replay as fast as possible, 
                    write the average framerate to stdout, and then 
                    quit.
                     
Note that this list is not complete, several obscure ones have been 
left out. This is mostly due to not all of them being completely 
implemented and workable.

Letting X-Moto Access The Web
=============================

Alpha version 0.1.14 of X-Moto comes with a new feature that allows
the game to connect to the web and download high-scores (world 
records) and extra levels. 
The first time you run X-Moto you'll be asked about whether you want
to allow the game to access your Internet connection; if you don't
have one, simply click "No". Then you'll be asked to specify your
proxy settings. X-Moto supports HTTP proxies, SOCKS4 proxies, and
SOCKS5 proxies. If you're behind a firewall, you most likely need to
specify a proxy; ask your network administrator for guidance if 
you're in doubt.

Replays
=======

As of alpha version 0.1.8, X-Moto supports recording and playback of
replays. These are always stored in the Replays/ directory, which on
Windows is located in the game installation directory, and on 
Linux-like systems is located in the .xmoto/ in the user directory.
One should be aware that replays can take up quite a large amount of
harddisk space - on average you can expect a single minute of replay
to equal around 50 kilobytes. If you want to disable recording of 
replays, you can set the 'StoreReplays' variable to 'false' in
config.dat, which on Windows is located in the game directory, and
on Linux is located in .xmoto/. 

Other things to be aware of regarding X-Moto replays:

 - Due to the way they are stored, they seem a bit less smooth
   than the actual game.
 - If you want to exchange replays with other people, you should 
   keep in mind that the replays are already automatically 
   compressed, so doing it again will probably just add extra 
   overhead to the file size.
 - Replay can't be recorded if the level make use of scripting.
 - Don't expect exchange of replays between computers with 
   different endianness, i.e. X-Moto on PPC (Mac, etc) won't be
   able to run replays crated by X-Moto on x86 (Intel, etc). This
   will probably be fixed in the future.
 - No fancy dirt particles from rear wheel spinning.

Advanced Configuration Options
==============================

Options are saved in a file called config.dat. On Windows the file is 
saved in the game directory, while on Linux it is saved in ~/.xmoto. 
It is a plain XML text file, so it should be straight-forward to modify 
in any text editor. In addition to the options accessible from inside 
the game, there's a couple more, which is not interesting enough to 
get included in the menus:

 WebHighscoresURL   The URL from which public high-scores should be
                    downloaded. Please consult the high-scores website
                    for information about how this is used to make 
                    your own "private" high-score lists.
                    
 WebLevelsURL       Place on the web to look for extra levels.

 DefaultProfile     Specifies which player profile should be active 
                    when the game starts.
                    
 ScreenshotFormat   The format in which screenshots should be saved 
                    in. Can be either jpg or png.                  
                    
 NotifyAtInit       If true, a message about the game release is 
                    shown at startup. Automatically set to false 
                    afterwards.

 StoreReplays       If true, replays will be automatically recorded
                    during the game. When the player dies or 
                    finishes the level, he can then choose to save
                    the replay. If set to false, no replay saving
                    will be possible.
                    Recording replays have a theoretical impact on
                    the framerate of the game, but practically you
                    shouldn't be able to notice anything.
                    
 ReplayFrameRate    Specifies the framerate at which replays will
                    be recorded at. The higher it is, the smoother
                    the replay will seem to be, but it will also
                    cause the replay file to be much larger. Never
                    set this option to higher values than 50, as it
                    could cause unforeseen consequenses.
                    The default value of 25 seems to be a good 
                    compromise between smoothness and file size.   
                    
 CompressReplays    If true, replays will be compressed with zlib.
                    This is the default behaviour. Set this to false
                    if you experience replay saving to take too long.      
                    
 LevelCache         Levels are cached in the LCache/ directory for
                    faster loading. If this variable is set to false,
                    the feature will be disabled.      
 
You'll also find a number of obscure controller configuration 
options in config.dat, but I'll leave them undocumented as the plan
is they're going to be modifiable from inside the game.
 
Bugs
====

If you experiences any bugs, please submit them using the "Bugs" 
interface found on the X-Moto page:
   
   http://todo.xmoto.tuxfamily.org

License
=======

The game and its source code is released under the terms of the GNU 
General Public License. See COPYING for details.
Some of the source code origining from various third parties is not 
released under the same license. Please consult the appropriate 
license material for more information.
Generally you're free to copy and reproduce both X-Moto and the 
source code in any way you like, even to modify the source and release 
your own version of the game, as long as you comply with the 
above mentioned licenses.

Authors
=======

See the in-game credits under "Help".
 
