1
0
Fork 0

Doc #6698: rewrite of the readme in Markdown syntax

pull/6727/head
Heiko August 2018-04-15 17:15:50 +02:00 committed by Patric Stout
parent 413ece9b51
commit 079f774fd7
1 changed files with 369 additions and 341 deletions

550
README.md
View File

@ -1,37 +1,33 @@
Last updated: 2016-07-01 # OpenTTD
Release version: 1.6.1
------------------------------------------------------------------------
## Table of contents
Table of contents - 1.0) [About](#10-about)
----------------- - 2.0) [Contacting](#20-contacting)
1.0) About - 2.1) [Reporting bugs](#21-reporting-bugs)
2.0) Contacting - 2.2) [Reporting desyncs](#22-reporting-desyncs)
* 2.1) Reporting bugs - 3.0) [Supported platforms](#30-supported-platforms)
* 2.2) Reporting desyncs - 4.0) [Installing and running OpenTTD](#40-installing-and-running-openttd)
3.0) Supported platforms - 4.1) [(Required) 3rd party files](#41-required-3rd-party-files)
4.0) Installing and running OpenTTD - 4.2) [OpenTTD directories](#42-openttd-directories)
* 4.1) (Required) 3rd party files - 4.3) [Portable installations (portable media)](#43-portable-installations-portable-media)
* 4.2) OpenTTD directories - 4.4) [Files in tar (archives)](#44-files-in-tar-archives)
* 4.3) Portable installations (portable media) - 5.0) [OpenTTD features](#50-openttd-features)
* 4.4) Files in tar (archives) - 5.1) [Logging of potentially dangerous actions](#51-logging-of-potentially-dangerous-actions)
5.0) OpenTTD features - 6.0) [Configuration file](#60-configuration-file)
* 5.1) Logging of potentially dangerous actions - 7.0) [Compiling](#70-compiling)
6.0) Configuration file - 7.1) [Required/optional libraries](#71-requiredoptional-libraries)
7.0) Compiling - 7.2) [Supported compilers](#72-supported-compilers)
* 7.1) Required/optional libraries - 7.3) [Compilation of base sets](#73-compilation-of-base-sets)
* 7.2) Supported compilers - 8.0) [Translating](#80-translating)
* 7.3) Compilation of base sets - 8.1) [Translation](#81-translation)
8.0) Translating - 8.2) [Previewing](#82-previewing)
* 8.1) Translation - 9.0) [Troubleshooting](#90-troubleshooting)
* 8.2) Previewing - 10.0) [Licensing](#100-licensing)
9.0) Troubleshooting - X.X) [Credits](#xx-credits)
10.0) Licensing
X.X) Credits
## 1.0) About
1.0) About
---- -----
OpenTTD is a transport simulation game based upon the popular game Transport OpenTTD is a transport simulation game based upon the popular game Transport
Tycoon Deluxe, written by Chris Sawyer. It attempts to mimic the original Tycoon Deluxe, written by Chris Sawyer. It attempts to mimic the original
game as closely as possible while extending it with new features. game as closely as possible while extending it with new features.
@ -40,60 +36,61 @@ OpenTTD is licensed under the GNU General Public License version 2.0,
but includes some 3rd party software under different licenses. See the but includes some 3rd party software under different licenses. See the
section "Licensing" below for details. section "Licensing" below for details.
2.0) Contacting ## 2.0) Contacting
---- ----------
The easiest way to contact the OpenTTD team is by submitting bug reports or The easiest way to contact the OpenTTD team is by submitting bug reports or
posting comments in our forums. You can also chat with us on IRC (#openttd posting comments in our forums. You can also chat with us on IRC (#openttd
on irc.oftc.net). on irc.oftc.net).
The OpenTTD homepage is http://www.openttd.org/. The OpenTTD homepage is [http://www.openttd.org/](http://www.openttd.org/).
You can also find the OpenTTD forums at You can also find the OpenTTD forums at [http://forum.openttd.org/](http://forum.openttd.org/).
http://forum.openttd.org/
### 2.1) Reporting bugs
2.1) Reporting bugs
---- --------------
First of all, check whether the bug is not already known. Do this by looking First of all, check whether the bug is not already known. Do this by looking
through the file called 'known-bugs.txt' which is distributed with OpenTTD through the file called 'known-bugs.txt' which is distributed with OpenTTD
like this readme. like this readme.
For tracking our bugs we are using a bug tracker called Flyspray. You can find For tracking our bugs we are using Githubs issue tracker. You can find
the tracker at http://bugs.openttd.org/. Before actually reporting take a look the tracker at [https://github.com/OpenTTD/OpenTTD/issues](https://github.com/OpenTTD/OpenTTD/issues). Before actually reporting take a look
through the already reported bugs there to see if the bug is already known. through the already reported bugs there to see if the bug is already known.
The 'known-bugs.txt' file might be a bit outdated at the moment you are The 'known-bugs.txt' file might be a bit outdated at the moment you are
reading it as only bugs known before the release are documented there. Also reading it as only bugs known before the release are documented there. Also
look through the recently closed bugs. look through the recently closed bugs.
When you are sure it is not already reported you should: When you are sure it is not already reported you should:
* Make sure you are running a recent version, i.e. run the latest stable or
- Make sure you are running a recent version, i.e. run the latest stable or
nightly based on where you found the bug. nightly based on where you found the bug.
* Make sure you are not running a non-official binary, like a patch pack. - Make sure you are not running a non-official binary, like a patch pack.
When you are playing with a patch pack you should report any bugs to the When you are playing with a patch pack you should report any bugs to the
forum thread related to that patch pack. forum thread related to that patch pack.
* Make it reproducible for the developers. In other words, create a savegame - Make it reproducible for the developers. In other words, create a savegame
in which you can reproduce the issue once loaded. It is very useful to give in which you can reproduce the issue once loaded. It is very useful to give
us the crash.dmp, crash.sav, crash.log and crash screenshot which are us the crash.dmp, crash.sav, crash.log and crash screenshot which are
created on crashes. created on crashes.
* Check whether the bug is already reported on our bug tracker. This includes - Check whether the bug is already reported on our bug tracker. This includes
searching for recently closed bug reports as the bug might already be fixed. searching for recently closed bug reports as the bug might already be fixed.
After you have done all that you can report the bug. Please include the After you have done all that you can report the bug. Please include the
following information in your bug report: following information in your bug report:
* OpenTTD version (PLEASE test the latest SVN/nightly build)
* Bug details, including instructions how to reproduce it - OpenTTD version (PLEASE test the latest SVN/nightly build)
* Platform (Windows, Linux, FreeBSD, ...) and compiler (including version) if - Bug details, including instructions how to reproduce it
- Platform (Windows, Linux, FreeBSD, …) and compiler (including version) if
you compiled OpenTTD yourself. you compiled OpenTTD yourself.
* The processor architecture of your OS (32 bits Windows, 64 bits Windows, - The processor architecture of your OS (32 bits Windows, 64 bits Windows,
Linux on an ARM, Mac OS X on a PowerPC, ...) Linux on an ARM, Mac OS X on a PowerPC, )
* Attach a saved game *and* a screenshot if possible - Attach a saved game **and** a screenshot if possible
* If this bug only occurred recently please note the last version without - If this bug only occurred recently please note the last version without
the bug and the first version including the bug. That way we can fix it the bug and the first version including the bug. That way we can fix it
quicker by looking at the changes made. quicker by looking at the changes made.
* Attach crash.dmp, crash.log and crash.sav. These files are usually created - Attach crash.dmp, crash.log and crash.sav. These files are usually created
next to your openttd.cfg. The crash handler will tell you the location. next to your openttd.cfg. The crash handler will tell you the location.
2.2) Reporting desyncs ### 2.2) Reporting desyncs
---- -----------------
As desyncs are hard to make reproducible OpenTTD has the ability to log all As desyncs are hard to make reproducible OpenTTD has the ability to log all
actions done by clients so we can replay the whole game in an effort to make actions done by clients so we can replay the whole game in an effort to make
desyncs better reproducible. You need to turn this ability on. When turned desyncs better reproducible. You need to turn this ability on. When turned
@ -103,15 +100,16 @@ this directory. Furthermore the log file 'commands-out.log' will be created
and all actions will be written to there. and all actions will be written to there.
To enable the desync debugging you need to set the debug level for 'desync' To enable the desync debugging you need to set the debug level for 'desync'
to at least 1. You do this by starting OpenTTD with '-d desync=<level>' as to at least 1. You do this by starting OpenTTD with '`-d desync=<level>`' as
parameter or by typing 'debug_level desync=<level>' in OpenTTD's internal parameter or by typing '`debug_level desync=<level>`' in OpenTTD's internal
console. console.
The desync debug levels are: The desync debug levels are:
0: nothing.
1: dumping of commands to 'commands-out.log'. - 0: nothing.
2: same as 1 plus checking vehicle caches and dumping that too. - 1: dumping of commands to 'commands-out.log'.
3: same as 2 plus monthly saves in autosave. - 2: same as 1 plus checking vehicle caches and dumping that too.
4 and higher: same as 3 - 3: same as 2 plus monthly saves in autosave.
- 4 and higher: same as 3
Restarting OpenTTD will overwrite 'commands-out.log'. OpenTTD will not remove Restarting OpenTTD will overwrite 'commands-out.log'. OpenTTD will not remove
the savegames (dmp_cmds_*.sav) made by the desync debugging system, so you the savegames (dmp_cmds_*.sav) made by the desync debugging system, so you
@ -125,10 +123,11 @@ then by date making it easier to find the right savegames.
When a desync has occurred with the desync debugging turned on you should file When a desync has occurred with the desync debugging turned on you should file
a bug report with the following files attached: a bug report with the following files attached:
- commands-out.log as it contains all the commands that were done - commands-out.log as it contains all the commands that were done
- the last saved savegame (search for the last line beginning with - the last saved savegame (search for the last line beginning with
'save: dmp_cmds_' in commands-out.log). We use this savegame to check 'save: dmp_cmds_' in commands-out.log). We use this savegame to check
whether we can quickly reproduce the desync. Otherwise we will need... whether we can quickly reproduce the desync. Otherwise we will need
- the first saved savegame (search for the first line beginning with 'save' - the first saved savegame (search for the first line beginning with 'save'
where the first part, up to the last underscore '_', is the same). We need where the first part, up to the last underscore '_', is the same). We need
this savegame to be able to reproduce the bug when the last savegame is not this savegame to be able to reproduce the bug when the last savegame is not
@ -145,26 +144,24 @@ Do NOT remove the dmp_cmds savegames of a desync you have reported until the
desync has been fixed; if you, by accident, send us the wrong savegames we desync has been fixed; if you, by accident, send us the wrong savegames we
will not be able to reproduce the desync and thus will be unable to fix it. will not be able to reproduce the desync and thus will be unable to fix it.
## 3.0) Supported platforms
3.0) Supported platforms
---- -------------------
OpenTTD has been ported to several platforms and operating systems. It should OpenTTD has been ported to several platforms and operating systems. It should
not be very difficult to port it to a new platform. The currently working not be very difficult to port it to a new platform. The currently working
platforms are: platforms are:
BeOS - SDL or Allegro - BeOS (SDL or Allegro)
DOS - Allegro - DOS (Allegro)
FreeBSD - SDL - FreeBSD (SDL)
Linux - SDL or Allegro - Linux (SDL or Allegro)
MacOS X (universal) - Cocoa video and sound drivers - MacOS X (universal) (Cocoa video and sound drivers)
MorphOS - SDL - MorphOS (SDL)
OpenBSD - SDL - OpenBSD (SDL)
OS/2 - SDL - OS/2 (SDL)
Windows - Win32 GDI (faster) or SDL or Allegro - Windows (Win32 GDI (faster) or SDL or Allegro)
## 4.0) Installing and running OpenTTD
4.0) Installing and running OpenTTD
---- ------------------------------
Installing OpenTTD is fairly straightforward. Either you have downloaded an Installing OpenTTD is fairly straightforward. Either you have downloaded an
archive which you have to extract to a directory where you want OpenTTD to archive which you have to extract to a directory where you want OpenTTD to
be installed, or you have downloaded an installer, which will automatically be installed, or you have downloaded an installer, which will automatically
@ -174,10 +171,12 @@ OpenTTD looks in multiple locations to find the required data files (described
in section 4.2). Installing any 3rd party files into a 'shared' location has in section 4.2). Installing any 3rd party files into a 'shared' location has
the advantage that you only need to do this step once, rather than copying the the advantage that you only need to do this step once, rather than copying the
data files into all OpenTTD versions you have. data files into all OpenTTD versions you have.
Savegames, screenshots, etc are saved relative to the config file (openttd.cfg) Savegames, screenshots, etc are saved relative to the config file (openttd.cfg)
currently being used. This means that if you use a config file in one of the currently being used. This means that if you use a config file in one of the
shared directories, savegames will reside in the save/ directory next to the shared directories, savegames will reside in the save/ directory next to the
openttd.cfg file there. openttd.cfg file there.
If you want savegames and screenshots in the directory where the OpenTTD binary If you want savegames and screenshots in the directory where the OpenTTD binary
resides, simply have your config file in that location. But if you remove this resides, simply have your config file in that location. But if you remove this
config file, savegames will still be in this directory (see notes in config file, savegames will still be in this directory (see notes in
@ -192,8 +191,8 @@ automatically selected (and downloaded) if you get the AIs via the 'Check
Online Content'. If you do not have an AI but have configured OpenTTD to start Online Content'. If you do not have an AI but have configured OpenTTD to start
an AI a message will be shown that the 'dummy' AI has been started. an AI a message will be shown that the 'dummy' AI has been started.
4.1) (Required) 3rd party files ### 4.1) (Required) 3rd party files
---- --------------------------
Before you run OpenTTD, you need to put the game's data files into a baseset/ Before you run OpenTTD, you need to put the game's data files into a baseset/
directory which can be located in various places addressed in the following directory which can be located in various places addressed in the following
section. section.
@ -206,23 +205,26 @@ Do NOT copy files included with OpenTTD into 'shared' directories (explained in
the following sections) as sooner or later you will run into graphical glitches the following sections) as sooner or later you will run into graphical glitches
when using other versions of the game. when using other versions of the game.
4.1.1) Free graphics and sound files #### 4.1.1) Free graphics and sound files
------ -----------------------------
The free data files, split into OpenGFX for graphics, OpenSFX for sounds and The free data files, split into OpenGFX for graphics, OpenSFX for sounds and
OpenMSX for music can be found at: OpenMSX for music can be found at:
- http://www.openttd.org/download-opengfx for OpenGFX
- http://www.openttd.org/download-opensfx for OpenSFX - [http://www.openttd.org/download-opengfx](http://www.openttd.org/download-opengfx) for OpenGFX
- http://www.openttd.org/download-openmsx for OpenMSX - [http://www.openttd.org/download-opensfx](http://www.openttd.org/download-opensfx) for OpenSFX
- [http://www.openttd.org/download-openmsx](http://www.openttd.org/download-openmsx) for OpenMSX
Please follow the readme of these packages about the installation procedure. Please follow the readme of these packages about the installation procedure.
The Windows installer can optionally download and install these packages. The Windows installer can optionally download and install these packages.
4.1.2) Original Transport Tycoon Deluxe graphics and sound files #### 4.1.2) Original Transport Tycoon Deluxe graphics and sound files
------ ---------------------------------------------------------
If you want to play with the original Transport Tycoon Deluxe data files you If you want to play with the original Transport Tycoon Deluxe data files you
have to copy the data files from the CD-ROM into the baseset/ directory. It have to copy the data files from the CD-ROM into the baseset/ directory. It
does not matter whether you copy them from the DOS or Windows version of does not matter whether you copy them from the DOS or Windows version of
Transport Tycoon Deluxe. The Windows install can optionally copy these files. Transport Tycoon Deluxe. The Windows install can optionally copy these files.
You need to copy the following files: You need to copy the following files:
- sample.cat - sample.cat
- trg1r.grf or TRG1.GRF - trg1r.grf or TRG1.GRF
- trgcr.grf or TRGC.GRF - trgcr.grf or TRGC.GRF
@ -230,16 +232,16 @@ You need to copy the following files:
- trgir.grf or TRGI.GRF - trgir.grf or TRGI.GRF
- trgtr.grf or TRGT.GRF - trgtr.grf or TRGT.GRF
4.1.3) Original Transport Tycoon Deluxe music #### 4.1.3) Original Transport Tycoon Deluxe music
------ --------------------------------------
If you want the Transport Tycoon Deluxe music, copy the files from the gm/ If you want the Transport Tycoon Deluxe music, copy the files from the gm/
folder from the Windows version of Transport Tycoon Deluxe to the baseset folder from the Windows version of Transport Tycoon Deluxe to the baseset
folder in your OpenTTD folder (also explained in the following sections). folder in your OpenTTD folder (also explained in the following sections).
The music from the DOS version as well as the original Transport Tycoon does The music from the DOS version as well as the original Transport Tycoon does
not work. not work.
4.1.4) AIs #### 4.1.4) AIs
------ ---
If you want AIs use the in-game content downloader. If for some reason that is If you want AIs use the in-game content downloader. If for some reason that is
not possible or you want to use an AI that has not been uploaded to the content not possible or you want to use an AI that has not been uploaded to the content
download system download the tar file and place it in the ai/ directory. If the download system download the tar file and place it in the ai/ directory. If the
@ -249,23 +251,24 @@ the content download system can be found at http://noai.openttd.org/downloads/
The AIs and libraries can be found their in the form of .tar.gz packages. The AIs and libraries can be found their in the form of .tar.gz packages.
OpenTTD can read inside tar files but it does not extract .tar.gz files by OpenTTD can read inside tar files but it does not extract .tar.gz files by
itself. itself.
To figure out which libraries you need for an AI you have to start the AI and To figure out which libraries you need for an AI you have to start the AI and
wait for an error message to pop up. The error message will tell you wait for an error message to pop up. The error message will tell you
'could not find library "lib-name"'. Download that library and try again. 'could not find library "lib-name"'. Download that library and try again.
4.1.5) Game scripts #### 4.1.5) Game scripts
------ ------------
If you want an extra challenge in OpenTTD you can download so-called game If you want an extra challenge in OpenTTD you can download so-called game
scripts via the in-game content downloader. These game scripts have varying scripts via the in-game content downloader. These game scripts have varying
functionality, though they can generally influence town growth, subsidies, add functionality, though they can generally influence town growth, subsidies, add
goals to reach or provide a different ranking system. goals to reach or provide a different ranking system.
If you download a game script manually you have to follow the same rules as for If you download a game script manually you have to follow the same rules as for
AIs, except that game scripts are placed in the game/ directory instead of the AIs, except that game scripts are placed in the game/ directory instead of the
ai/ directory. ai/ directory.
### 4.2) OpenTTD directories
4.2) OpenTTD directories
---- -------------------
OpenTTD uses its own directory to store its required 3rd party base set files OpenTTD uses its own directory to store its required 3rd party base set files
(see section 4.1 'Required 3rd party files') and non-compulsory extension and (see section 4.1 'Required 3rd party files') and non-compulsory extension and
configuration files. See below for their proper place within this OpenTTD main configuration files. See below for their proper place within this OpenTTD main
@ -273,52 +276,59 @@ data directory.
The main OpenTTD directories can be found in various locations, depending on The main OpenTTD directories can be found in various locations, depending on
your operating system: your operating system:
1. The current working directory (from where you started OpenTTD) 1. The current working directory (from where you started OpenTTD)
For non-Windows operating systems OpenTTD will not scan for files in this For non-Windows operating systems OpenTTD will not scan for files in this
directory if it is your personal directory, i.e. '~/', or when it is the directory if it is your personal directory, i.e. '~/', or when it is the
root directory, i.e. '/'. root directory, i.e. '/'.
2. Your personal directory 2. Your personal directory
Windows: C:\My Documents\OpenTTD (95, 98, ME) - Windows:
C:\Documents and Settings\<username>\My Documents\OpenTTD (2000, XP) - `C:\My Documents\OpenTTD` (95, 98, ME)
C:\Users\<username>\Documents\OpenTTD (Vista, 7) - `C:\Documents and Settings\<username>\My Documents\OpenTTD` (2000, XP)
Mac OSX: ~/Documents/OpenTTD - `C:\Users\<username>\Documents\OpenTTD` (Vista, 7)
Linux: $XDG_DATA_HOME/openttd which is usually ~/.local/share/openttd when - Mac OSX: `~/Documents/OpenTTD`
built with XDG base directory support, otherwise ~/.openttd - Linux: `$XDG_DATA_HOME/openttd` which is usually `~/.local/share/openttd`
when built with XDG base directory support, otherwise `~/.openttd`
3. The shared directory 3. The shared directory
Windows: C:\Documents and Settings\All Users\Shared Documents\OpenTTD (2000, XP) - Windows:
C:\Users\Public\Documents\OpenTTD (Vista, 7) - `C:\Documents and Settings\All Users\Shared Documents\OpenTTD` (2000, XP)
Mac OSX: /Library/Application Support/OpenTTD - `C:\Users\Public\Documents\OpenTTD` (Vista, 7)
Linux: not available - Mac OSX: `/Library/Application Support/OpenTTD`
- Linux: not available
4. The binary directory (where the OpenTTD executable is) 4. The binary directory (where the OpenTTD executable is)
Windows: C:\Program Files\OpenTTD - Windows: `C:\Program Files\OpenTTD`
Linux: /usr/games - Linux: `/usr/games`
5. The installation directory (Linux only) 5. The installation directory (Linux only)
Linux: /usr/share/games/openttd - Linux: `/usr/share/games/openttd`
6. The application bundle (Mac OSX only) 6. The application bundle (Mac OSX only)
It includes the OpenTTD files (grf+lng) and it will work as long as they It includes the OpenTTD files (grf+lng) and it will work as long as they
are not touched are not touched
Different types of data or extensions go into different subdirectories of the Different types of data or extensions go into different subdirectories of the
chosen main OpenTTD directory: chosen main OpenTTD directory:
Config File: (no subdirectory)
Screenshots: screenshot | data type | directory | additional info |
Base Graphics: baseset (or a subdirectory thereof) | --- | --- | --- |
Sound Sets: baseset (or a subdirectory thereof) | Config File | (no subdirectory) | |
NewGRFs: newgrf (or a subdirectory thereof) | Screenshots | screenshot | |
32bpp Sets: newgrf (or a subdirectory thereof) | Base Graphics | baseset| (or a subdirectory thereof) |
Music Sets: baseset (or a subdirectory thereof) | Sound Sets | baseset| (or a subdirectory thereof) |
AIs: ai (or a subdirectory thereof) | NewGRFs | newgrf| (or a subdirectory thereof) |
AI Libraries: ai/library (or a subdirectory thereof) | 32bpp Sets | newgrf| (or a subdirectory thereof) |
Game Scripts (GS): game (or a subdirectory thereof) | Music Sets | baseset| (or a subdirectory thereof) |
GS Libraries: game/library (or a subdirectory thereof) | AIs | ai| (or a subdirectory thereof) |
Savegames: save | AI Libraries | ai/library| (or a subdirectory thereof) |
Automatic Savegames: save/autosave | Game Scripts (GS) | game| (or a subdirectory thereof) |
Scenarios: scenario | GS Libraries | game/library | (or a subdirectory thereof) |
| Savegames | save | |
| Automatic Savegames | save/autosave | |
| Scenarios | scenario | |
The (automatically created) directory content_download is for OpenTTD's internal The (automatically created) directory content_download is for OpenTTD's internal
use and no files should be added to it or its subdirectories manually. use and no files should be added to it or its subdirectories manually.
Notes: #### Notes:
- Linux in the previous list means .deb, but most paths should be similar for - Linux in the previous list means .deb, but most paths should be similar for
others. others.
- The previous search order is also used for NewGRFs and openttd.cfg. - The previous search order is also used for NewGRFs and openttd.cfg.
@ -331,14 +341,15 @@ Notes:
Unless the configuration file is in $XDG_CONFIG_HOME/openttd, then all Unless the configuration file is in $XDG_CONFIG_HOME/openttd, then all
other files will be saved under $XDG_DATA_HOME/openttd. other files will be saved under $XDG_DATA_HOME/openttd.
The preferred setup: #### The preferred setup:
Place 3rd party files in shared directory (or in personal directory if you do Place 3rd party files in shared directory (or in personal directory if you do
not have write access on shared directory) and have your openttd.cfg config not have write access on shared directory) and have your openttd.cfg config
file in personal directory (where the game will then also place savegames and file in personal directory (where the game will then also place savegames and
screenshots). screenshots).
4.3) Portable installations (portable media) ### 4.3) Portable installations (portable media)
---- ---------------------------------------
You can install OpenTTD on external media so you can take it with you, i.e. You can install OpenTTD on external media so you can take it with you, i.e.
using a USB key, or a USB HDD, etc. using a USB key, or a USB HDD, etc.
Create a directory where you shall store the game in (i.e. OpenTTD/). Create a directory where you shall store the game in (i.e. OpenTTD/).
@ -350,8 +361,8 @@ media to.
As always - additional grf files are stored in the newgrf/ dir (for details, As always - additional grf files are stored in the newgrf/ dir (for details,
again, see section 4.1). again, see section 4.1).
4.4) Files in tar (archives) ### 4.4) Files in tar (archives)
---- -----------------------
OpenTTD can read files that are in an uncompressed tar (archive), which OpenTTD can read files that are in an uncompressed tar (archive), which
makes it easy to bundle files belonging to the same script, NewGRF or base makes it easy to bundle files belonging to the same script, NewGRF or base
set. Music sets are the only exception as they cannot be stored in a tar set. Music sets are the only exception as they cannot be stored in a tar
@ -372,33 +383,33 @@ same as the path in the tar file. Again it is advised to have an unique path
to the normal file so they do not collide with the files from other tar to the normal file so they do not collide with the files from other tar
files. files.
## 5.0) OpenTTD features
5.0) OpenTTD features
---- ----------------
OpenTTD has a lot of features going beyond the original Transport Tycoon Deluxe OpenTTD has a lot of features going beyond the original Transport Tycoon Deluxe
emulation. Unfortunately, there is currently no comprehensive list of features, emulation. Unfortunately, there is currently no comprehensive list of features,
but there is a basic features list on the web, and some optional features can be but there is a basic features list on the web, and some optional features can be
controlled through the Advanced Settings dialog. We also implement some controlled through the Advanced Settings dialog. We also implement some
features known from TTDPatch (http://www.ttdpatch.net/). features known from [TTDPatch](http://www.ttdpatch.net/).
Several important non-standard controls: Several important non-standard controls:
* Ctrl modifies many commands and makes them more powerful. For example Ctrl - Ctrl modifies many commands and makes them more powerful. For example Ctrl
clicking on signals with the build signal tool changes their behaviour, holding clicking on signals with the build signal tool changes their behaviour, holding
Ctrl while the track build tool is activated changes it to the track removal Ctrl while the track build tool is activated changes it to the track removal
tool, and so on. See http://wiki.openttd.org/Hidden_features for a non- tool, and so on. See [http://wiki.openttd.org/Hidden_features](http://wiki.openttd.org/Hidden_features)
comprehensive list or look at the tooltips. for a non-comprehensive list or look at the tooltips.
* Ingame console. More information at - Ingame console. More information at
http://wiki.openttd.org/index.php/Console [http://wiki.openttd.org/index.php/Console](http://wiki.openttd.org/index.php/Console)
* Hovering over a GUI element shows tooltips. This can be changed to right click - Hovering over a GUI element shows tooltips. This can be changed to right click
via the advanced settings. via the advanced settings.
5.1) Logging of potentially dangerous actions ### 5.1) Logging of potentially dangerous actions
---- ----------------------------------------
OpenTTD is a complex program, and together with NewGRF, it may show a buggy OpenTTD is a complex program, and together with NewGRF, it may show a buggy
behaviour. But not only bugs in code can cause problems. There are several behaviour. But not only bugs in code can cause problems. There are several
ways to affect game state possibly resulting in program crash or multiplayer ways to affect game state possibly resulting in program crash or multiplayer
desyncs. desyncs.
Easier way would be to forbid all these unsafe actions, but that would affect Easier way would be to forbid all these unsafe actions, but that would affect
game usability for many players. We certainly do not want that. game usability for many players. We certainly do not want that.
However, we receive bug reports because of this. To reduce time spent with However, we receive bug reports because of this. To reduce time spent with
@ -407,23 +418,22 @@ the savegame (including crash.sav). Log is stored in crash logs, too.
Information logged: Information logged:
* Adding / removing / changing order of NewGRFs - Adding / removing / changing order of NewGRFs
* Changing NewGRF parameters, loading compatible NewGRF - Changing NewGRF parameters, loading compatible NewGRF
* Changing game mode (scenario editor <-> normal game) - Changing game mode (scenario editor <-> normal game)
* Loading game saved in a different OpenTTD / TTDPatch / Transport Tycoon Deluxe / - Loading game saved in a different OpenTTD / TTDPatch / Transport Tycoon Deluxe /
original Transport Tycoon version original Transport Tycoon version
* Running a modified OpenTTD build - Running a modified OpenTTD build
* Changing settings affecting NewGRF behaviour (non-network-safe settings) - Changing settings affecting NewGRF behaviour (non-network-safe settings)
* Triggering NewGRF bugs - Triggering NewGRF bugs
No personal information is stored. No personal information is stored.
You can show the game log by typing 'gamelog' in the console or by running You can show the game log by typing 'gamelog' in the console or by running
OpenTTD in debug mode. OpenTTD in debug mode.
## 6.0) Configuration file
6.0) Configuration file
---- ------------------
The configuration file for OpenTTD (openttd.cfg) is in a simple Windows-like The configuration file for OpenTTD (openttd.cfg) is in a simple Windows-like
.INI format. It is mostly undocumented. Almost all settings can be changed .INI format. It is mostly undocumented. Almost all settings can be changed
ingame by using the 'Advanced Settings' window. ingame by using the 'Advanced Settings' window.
@ -431,16 +441,17 @@ When you cannot find openttd.cfg you should look in the directories as
described in section 4.2. If you do not have an openttd.cfg OpenTTD will described in section 4.2. If you do not have an openttd.cfg OpenTTD will
create one after closing. create one after closing.
## 7.0) Compiling
### Windows:
7.0) Compiling
---- ---------
Windows:
You need Microsoft Visual Studio .NET. Open the project file You need Microsoft Visual Studio .NET. Open the project file
and it should build automatically. In case you want to build with SDL support and it should build automatically. In case you want to build with SDL support
you need to add WITH_SDL to the project settings. you need to add WITH_SDL to the project settings.
PNG (WITH_PNG) and ZLIB (WITH_ZLIB) support is enabled by default. For these PNG (WITH_PNG) and ZLIB (WITH_ZLIB) support is enabled by default. For these
to work you need their development files. For best results, download the to work you need their development files. For best results, download the
openttd-useful.zip file from http://www.openttd.org/download-openttd-useful openttd-useful.zip file from [http://www.openttd.org/download-openttd-useful](http://www.openttd.org/download-openttd-useful)
Put the header files into your compiler's include/ directory and the Put the header files into your compiler's include/ directory and the
library (.lib) files into the lib/ directory. library (.lib) files into the lib/ directory.
For more help with VS see docs/Readme_Windows_MSVC.txt. For more help with VS see docs/Readme_Windows_MSVC.txt.
@ -448,46 +459,54 @@ Windows:
You can also build it using the Makefile with MSYS/MinGW or Cygwin/MinGW. You can also build it using the Makefile with MSYS/MinGW or Cygwin/MinGW.
Please read the Makefile for more information. Please read the Makefile for more information.
Solaris, FreeBSD, OpenBSD: ### Solaris, FreeBSD, OpenBSD:
Use 'gmake', but do a './configure' before the first build.
Linux/Unix: Use '`gmake`', but do a '`./configure`' before the first build.
OpenTTD can be built with GNU 'make'. On non-GNU systems it is called 'gmake'.
However, for the first build one has to do a './configure' first.
MacOS X: ### Linux/Unix:
Use 'make' or Xcode (which will then call make for you)
OpenTTD can be built with GNU '`make`'. On non-GNU systems it is called '`gmake`'.
However, for the first build one has to do a '`./configure`' first.
### MacOS X:
Use '`make`' or Xcode (which will then call make for you)
This will give you a binary for your CPU type (PPC/Intel) This will give you a binary for your CPU type (PPC/Intel)
However, for the first build one has to do a './configure' first. However, for the first build one has to do a '`./configure`' first.
To make a universal binary type './configure --enabled-universal' To make a universal binary type '`./configure --enabled-universal`'
instead of './configure'. instead of '`./configure`'.
BeOS: ### BeOS:
Use 'make', but do a './configure' before the first build.
MorphOS: Use '`make`', but do a '`./configure`' before the first build.
Use 'make'. However, for the first build one has to do a './configure' first.
Note that you need the MorphOS SDK, latest libnix updates (else C++ parts of ### MorphOS:
OpenTTD will not build) and the powersdl.library SDK. Optionally libz,
Use '`make`'. However, for the first build one has to do a '`./configure`'
first. Note that you need the MorphOS SDK, latest libnix updates (else C++
parts of OpenTTD will not build) and the powersdl.library SDK. Optionally libz,
libpng and freetype2 developer files. libpng and freetype2 developer files.
OS/2: ### OS/2:
A comprehensive GNU build environment is required to build the OS/2 version. A comprehensive GNU build environment is required to build the OS/2 version.
See the docs/Readme_OS2.txt file for more information. See the docs/Readme_OS2.txt file for more information.
DOS: ### DOS:
A build environment with DJGPP is needed as well as libraries such as A build environment with DJGPP is needed as well as libraries such as
Allegro, zlib and libpng, which all can be downloaded from the DJGPP Allegro, zlib and libpng, which all can be downloaded from the DJGPP
website. Compilation is straight forward: use make, but do a './configure' website. Compilation is straight forward: use '`make`', but do a '`./configure`'
before the first build. The build binary will need cwsdpmi.exe to be in before the first build. The build binary will need cwsdpmi.exe to be in
the same directory as the openttd executable. cwsdpmi.exe can be found in the same directory as the openttd executable. cwsdpmi.exe can be found in
the os/dos/cwsdpmi subdirectory. If you compile with stripping turned on a the os/dos/cwsdpmi subdirectory. If you compile with stripping turned on a
binary will be generated that does not need cwsdpmi.exe by adding the binary will be generated that does not need cwsdpmi.exe by adding the
cswdstub.exe to the created OpenTTD binary. cswdstub.exe to the created OpenTTD binary.
7.1) Required/optional libraries ### 7.1) Required/optional libraries
---- ---------------------------
The following libraries are used by OpenTTD for: The following libraries are used by OpenTTD for:
- libSDL/liballegro: hardware access (video, sound, mouse) - libSDL/liballegro: hardware access (video, sound, mouse)
- zlib: (de)compressing of old (0.3.0-1.0.5) savegames, content downloads, - zlib: (de)compressing of old (0.3.0-1.0.5) savegames, content downloads,
heightmaps heightmaps
@ -505,69 +524,71 @@ open most older savegames or use the content downloading system.
Without libSDL/liballegro on non-Windows and non-MacOS X machines you have Without libSDL/liballegro on non-Windows and non-MacOS X machines you have
no graphical user interface; you would be building a dedicated server. no graphical user interface; you would be building a dedicated server.
7.2) Supported compilers ### 7.2) Supported compilers
---- -------------------
The following compilers are known to compile OpenTTD: The following compilers are known to compile OpenTTD:
- Microsoft Visual C++ (MSVC) 2005, 2008 and 2010. - Microsoft Visual C++ (MSVC) 2005, 2008 and 2010.
Version 2005 gives bogus warnings about scoping issues. Version 2005 gives bogus warnings about scoping issues.
- GNU Compiler Collection (GCC) 3.3 - 4.4, 4.6 - 4.8. - GNU Compiler Collection (GCC) 3.3 - 4.4, 4.6 - 4.8.
Versions 4.1 and earlier give bogus warnings about uninitialised variables. - Versions 4.1 and earlier give bogus warnings about uninitialised variables.
Versions 4.4, 4.6 give bogus warnings about freeing non-heap objects. - Versions 4.4, 4.6 give bogus warnings about freeing non-heap objects.
Versions 4.6 and later give invalid warnings when lto is enabled. - Versions 4.6 and later give invalid warnings when lto is enabled.
- Intel C++ Compiler (ICC) 12.0. - Intel C++ Compiler (ICC) 12.0.
- Clang/LLVM 2.9 - 3.0 - Clang/LLVM 2.9 - 3.0
Version 2.9 gives bogus warnings about code nonconformity. Version 2.9 gives bogus warnings about code nonconformity.
The following compilers are known not to compile OpenTTD: The following compilers are known not to compile OpenTTD:
- Microsoft Visual C++ (MSVC) 2003 and earlier. - Microsoft Visual C++ (MSVC) 2003 and earlier.
- GNU Compiler Collection (GCC) 3.2 and earlier. - GNU Compiler Collection (GCC) 3.2 and earlier.
These old versions fail due to OpenTTD's template usage. These old versions fail due to OpenTTD's template usage.
- GNU Compiler Collection (GCC) 4.5. It optimizes enums too aggressively. - GNU Compiler Collection (GCC) 4.5. It optimizes enums too aggressively.
See http://bugs.openttd.org/task/5513 and references therein. See http://bugs.openttd.org/task/5513 and references therein.
- Intel C++ Compiler (ICC) 11.1 and earlier. - Intel C++ Compiler (ICC) 11.1 and earlier.
Version 10.0 and earlier fail a configure check and fail with recent system - Version 10.0 and earlier fail a configure check and fail with recent
headers. system headers.
Version 10.1 fails to compile station_gui.cpp. - Version 10.1 fails to compile station_gui.cpp.
Version 11.1 fails with an internal error when compiling network.cpp. - Version 11.1 fails with an internal error when compiling network.cpp.
- Clang/LLVM 2.8 and earlier. - Clang/LLVM 2.8 and earlier.
- (Open) Watcom. - (Open) Watcom.
If any of these compilers can compile OpenTTD again, please let us know. If any of these compilers can compile OpenTTD again, please let us know.
Patches to support more compilers are welcome. Patches to support more compilers are welcome.
7.3) Compilation of base sets ### 7.3) Compilation of base sets
-----------------------------
To recompile the extra graphics needed to play with the original Transport To recompile the extra graphics needed to play with the original Transport
Tycoon Deluxe graphics you need GRFCodec (which includes NFORenum) as well. Tycoon Deluxe graphics you need GRFCodec (which includes NFORenum) as well.
GRFCodec can be found at: http://www.openttd.org/download-grfcodec GRFCodec can be found at: [http://www.openttd.org/download-grfcodec](http://www.openttd.org/download-grfcodec)
The compilation of these extra graphics does generally not happen, unless The compilation of these extra graphics does generally not happen, unless
you remove the graphics file using 'make maintainer-clean'. you remove the graphics file using '`make maintainer-clean`'.
Re-compilation of the base sets, thus also use of --maintainer-clean can Re-compilation of the base sets, thus also use of '`--maintainer-clean`' can
leave the repository in a modified state as different grfcodec versions can leave the repository in a modified state as different grfcodec versions can
cause binary differences in the resulting grf. Also translations might have cause binary differences in the resulting grf. Also translations might have
been added for the base sets which are not yet included in the base set been added for the base sets which are not yet included in the base set
information files. Use the configure option --without-grfcodec to avoid information files. Use the configure option '`--without-grfcodec`' to avoid
modification of the base set files by the build process. modification of the base set files by the build process.
## 8.0) Translating
8.0) Translating See [http://www.openttd.org/development](http://www.openttd.org/development) for up-to-date information.
---- -----------
See http://www.openttd.org/development for up-to-date information.
The use of the online Translator service, located at The use of the online Translator service, located at
http://translator.openttd.org/, is highly encouraged. For getting an account [http://translator.openttd.org/](http://translator.openttd.org/), is highly
simply follow the guidelines in the FAQ of the translator website. encouraged. For getting an account simply follow the guidelines in the FAQ of
the translator website.
If for some reason the website is down for a longer period of time, the If for some reason the website is down for a longer period of time, the
information below might be of help. information below might be of help.
Please contact the translations manager (http://www.openttd.org/contact) Please contact the translations manager ([http://www.openttd.org/contact](http://www.openttd.org/contact))
before beginning the translation process! This avoids double work, as before beginning the translation process! This avoids double work, as
someone else may have already started translating to the same language. someone else may have already started translating to the same language.
8.1) Translation ### 8.1) Translation
---- -----------
So, now that you have notified the development team about your intention to So, now that you have notified the development team about your intention to
translate (You did, right? Of course you did.) you can pick up english.txt translate (You did, right? Of course you did.) you can pick up english.txt
(found in the SVN repository under /src/lang) and translate. (found in the SVN repository under /src/lang) and translate.
@ -579,19 +600,20 @@ You must change the first two lines of the file appropriately:
Note: Do not alter the following parts of the file: Note: Do not alter the following parts of the file:
* String identifiers (the first word on each line) - String identifiers (the first word on each line)
* Parts of the strings which are in curly braces (such as {STRING}) - Parts of the strings which are in curly braces (such as {STRING})
* Lines beginning with ## (such as ##id), other than the first two lines of - Lines beginning with ## (such as ##id), other than the first two lines of
the file the file
8.2) Previewing ### 8.2) Previewing
---- ----------
In order to view the translation in the game, you need to compile your language In order to view the translation in the game, you need to compile your language
file with the strgen utility. As this utility is tailored to a specific OpenTTD file with the strgen utility. As this utility is tailored to a specific OpenTTD
version, you need to compile it yourself. Just take the normal OpenTTD sources version, you need to compile it yourself. Just take the normal OpenTTD sources
and build that. During the build process the strgen utility will be made. and build that. During the build process the strgen utility will be made.
strgen is a command-line utility. It takes the language filename as parameter. strgen is a command-line utility. It takes the language filename as parameter.
Example: Example:
strgen lang/german.txt strgen lang/german.txt
@ -603,18 +625,17 @@ should also be.
That is all! You should now be able to select the language in the game options. That is all! You should now be able to select the language in the game options.
## 9.0) Troubleshooting
9.0) Troubleshooting
---- ---------------
To see all startup options available to you, start OpenTTD with the To see all startup options available to you, start OpenTTD with the
'./openttd -h' option. This might help you tweak some of the settings. '`./openttd -h`' option. This might help you tweak some of the settings.
If the game is acting strange and you feel adventurous you can try the If the game is acting strange and you feel adventurous you can try the
'-d [[<name>=]<level>]' flag, where the higher levels will give you more '`-d [[<name>=]<level>]`' flag, where the higher levels will give you more
debugging output. The 'name' variable can help you to display only some type of debugging output. The 'name' variable can help you to display only some type of
debugging messages. This is mostly undocumented so best is to look in the debugging messages. This is mostly undocumented so best is to look in the
source code file debug.c for the various debugging types. For more information source code file debug.c for the various debugging types. For more information
look at http://wiki.openttd.org/index.php/Command_line. look at [http://wiki.openttd.org/index.php/Command_line](http://wiki.openttd.org/index.php/Command_line).
The most frequent problem is missing data files. Please install OpenGFX and The most frequent problem is missing data files. Please install OpenGFX and
possibly OpenSFX and OpenMSX. See section 4.1.1 for more information. possibly OpenSFX and OpenMSX. See section 4.1.1 for more information.
@ -631,24 +652,26 @@ With the added support for font-based text selecting a non-latin language can
result in lots of question marks ('?') being shown on screen. Please open your result in lots of question marks ('?') being shown on screen. Please open your
configuration file (openttd.cfg - see Section 4.2 for where to find it) configuration file (openttd.cfg - see Section 4.2 for where to find it)
and add a suitable font for the small, medium and / or large font, e.g.: and add a suitable font for the small, medium and / or large font, e.g.:
small_font = "Tahoma" small_font = "Tahoma"
medium_font = "Tahoma" medium_font = "Tahoma"
large_font = "Tahoma" large_font = "Tahoma"
You should use a font name like 'Tahoma' or a path to the desired font. You should use a font name like 'Tahoma' or a path to the desired font.
Any NewGRF file used in a game is stored inside the savegame and will refuse Any NewGRF file used in a game is stored inside the savegame and will refuse
to load if you do not have that NewGRF file available. A list of missing files to load if you do not have that NewGRF file available. A list of missing files
can be viewed in the NewGRF window accessible from the file load dialogue window. can be viewed in the NewGRF window accessible from the file load dialogue window.
You can try to obtain the missing files from that NewGRF dialogue or - if they You can try to obtain the missing files from that NewGRF dialogue or if they
are not available online - you can search manually through our forum's graphics are not available online you can search manually through our [forum's graphics
development section (http://www.tt-forums.net/viewforum.php?f=66) or GrfCrawler development section](http://www.tt-forums.net/viewforum.php?f=66) or GrfCrawler
(http://grfcrawler.tt-forums.net/). Put the NewGRF files in OpenTTD's newgrf folder (http://grfcrawler.tt-forums.net/). Put the NewGRF files in OpenTTD's newgrf folder
(see section 4.2 'OpenTTD directories') and rescan the list of available NewGRFs. (see section 4.2 'OpenTTD directories') and rescan the list of available NewGRFs.
Once you have all missing files, you are set to go. Once you have all missing files, you are set to go.
10.0) Licensing ## 10.0) Licensing
----- ---------
OpenTTD is licensed under the GNU General Public License version 2.0. For OpenTTD is licensed under the GNU General Public License version 2.0. For
the complete license text, see the file 'COPYING'. This license applies the complete license text, see the file 'COPYING'. This license applies
to all files in this distribution, except as noted below. to all files in this distribution, except as noted below.
@ -675,61 +698,66 @@ The CWSDPMI implementation in os/dos/cwsdpmi is distributed under a
custom binary-only license that prohibits modification. The exact custom binary-only license that prohibits modification. The exact
licensing terms can be found in os/dos/cwsdpmi/cwsdpmi.txt. The sources licensing terms can be found in os/dos/cwsdpmi/cwsdpmi.txt. The sources
for these files can be downloaded at its author site, at: for these files can be downloaded at its author site, at:
http://homer.rice.edu/~sandmann/cwsdpmi/csdpmi5s.zip [http://homer.rice.edu/~sandmann/cwsdpmi/csdpmi5s.zip](http://homer.rice.edu/~sandmann/cwsdpmi/csdpmi5s.zip)
X.X) Credits ## X.X) Credits
---- -------
The OpenTTD team (in alphabetical order):
Grzegorz Duczyński (adf88) - General coding (since 1.7.2)
Albert Hofkamp (Alberth) - GUI expert (since 0.7)
Matthijs Kooijman (blathijs) - Pathfinder-guru, Debian port (since 0.3)
Ulf Hermann (fonsinchen) - Cargo Distribution (since 1.3)
Christoph Elsenhans (frosch) - General coding (since 0.6)
Loïc Guilloux (glx) - Windows Expert (since 0.4.5)
Michael Lutz (michi_cc) - Path based signals (since 0.7)
Owen Rudge (orudge) - Forum host, OS/2 port (since 0.1)
Peter Nelson (peter1138) - Spiritual descendant from newGRF gods (since 0.4.5)
Ingo von Borstel (planetmaker) - General coding, Support (since 1.1)
Remko Bijker (Rubidium) - Lead coder and way more (since 0.4.5)
José Soler (Terkhen) - General coding (since 1.0)
Leif Linse (Zuu) - AI/Game Script (since 1.2)
Inactive Developers: ### The OpenTTD team (in alphabetical order):
Jean-François Claeys (Belugas) - GUI, newindustries and more (0.4.5 - 1.0)
Bjarni Corfitzen (Bjarni) - MacOSX port, coder and vehicles (0.3 - 0.7)
Victor Fischer (Celestar) - Programming everywhere you need him to (0.3 - 0.6)
Jaroslav Mazanec (KUDr) - YAPG (Yet Another Pathfinder God) ;) (0.4.5 - 0.6)
Jonathan Coome (Maedhros) - High priest of the NewGRF Temple (0.5 - 0.6)
Attila Bán (MiHaMiX) - WebTranslator 1 and 2 (0.3 - 0.5)
Zdeněk Sojka (SmatZ) - Bug finder and fixer (0.6 - 1.3)
Christoph Mallon (Tron) - Programmer, code correctness police (0.3 - 0.5)
Patric Stout (TrueBrain) - NoProgrammer (0.3 - 1.2), sys op (active)
Thijs Marinussen (Yexo) - AI Framework, General (0.6 - 1.3)
Retired Developers: - Grzegorz Duczyński (adf88) - General coding (since 1.7.2)
Tamás Faragó (Darkvater) - Ex-Lead coder (0.3 - 0.5) - Albert Hofkamp (Alberth) - GUI expert (since 0.7)
Dominik Scherer (dominik81) - Lead programmer, GUI expert (0.3 - 0.3) - Matthijs Kooijman (blathijs) - Pathfinder-guru, Debian port (since 0.3)
Emil Djupfeld (egladil) - MacOSX port (0.4 - 0.6) - Ulf Hermann (fonsinchen) - Cargo Distribution (since 1.3)
Simon Sasburg (HackyKid) - Bug fixer (0.4 - 0.4.5) - Christoph Elsenhans (frosch) - General coding (since 0.6)
Ludvig Strigeus (ludde) - Original author of OpenTTD, main coder (0.1 - 0.3) - Loïc Guilloux (glx) - Windows Expert (since 0.4.5)
Cian Duffy (MYOB) - BeOS port / manual writing (0.1 - 0.3) - Michael Lutz (michi_cc) - Path based signals (since 0.7)
Petr Baudiš (pasky) - Many patches, newgrf support, etc. (0.3 - 0.3) - Owen Rudge (orudge) - Forum host, OS/2 port (since 0.1)
Benedikt Brüggemeier (skidd13) - Bug fixer and code reworker (0.6 - 0.7) - Peter Nelson (peter1138) - Spiritual descendant from newGRF gods (since 0.4.5)
Serge Paquet (vurlix) - 2nd contributor after ludde (0.1 - 0.3) - Ingo von Borstel (planetmaker) - General coding, Support (since 1.1)
- Remko Bijker (Rubidium) - Lead coder and way more (since 0.4.5)
- José Soler (Terkhen) - General coding (since 1.0)
- Leif Linse (Zuu) - AI/Game Script (since 1.2)
### Inactive Developers:
- Jean-François Claeys (Belugas) - GUI, newindustries and more (0.4.5 - 1.0)
- Bjarni Corfitzen (Bjarni) - MacOSX port, coder and vehicles (0.3 - 0.7)
- Victor Fischer (Celestar) - Programming everywhere you need him to (0.3 - 0.6)
- Jaroslav Mazanec (KUDr) - YAPG (Yet Another Pathfinder God) ;) (0.4.5 - 0.6)
- Jonathan Coome (Maedhros) - High priest of the NewGRF Temple (0.5 - 0.6)
- Attila Bán (MiHaMiX) - WebTranslator 1 and 2 (0.3 - 0.5)
- Zdeněk Sojka (SmatZ) - Bug finder and fixer (0.6 - 1.3)
- Christoph Mallon (Tron) - Programmer, code correctness police (0.3 - 0.5)
- Patric Stout (TrueBrain) - NoProgrammer (0.3 - 1.2), sys op (active)
- Thijs Marinussen (Yexo) - AI Framework, General (0.6 - 1.3)
### Retired Developers:
- Tamás Faragó (Darkvater) - Ex-Lead coder (0.3 - 0.5)
- Dominik Scherer (dominik81) - Lead programmer, GUI expert (0.3 - 0.3)
- Emil Djupfeld (egladil) - MacOSX port (0.4 - 0.6)
- Simon Sasburg (HackyKid) - Bug fixer (0.4 - 0.4.5)
- Ludvig Strigeus (ludde) - Original author of OpenTTD, main coder (0.1 - 0.3)
- Cian Duffy (MYOB) - BeOS port / manual writing (0.1 - 0.3)
- Petr Baudiš (pasky) - Many patches, newgrf support, etc. (0.3 - 0.3)
- Benedikt Brüggemeier (skidd13) - Bug fixer and code reworker (0.6 - 0.7)
- Serge Paquet (vurlix) - 2nd contributor after ludde (0.1 - 0.3)
### Thanks to:
- Josef Drexler - For his great work on TTDPatch.
- Marcin Grzegorczyk - For his TTDPatch work and documentation of Transport Tycoon Deluxe internals and track foundations
- Stefan Meißner (sign_de) - For his work on the console
- Mike Ragsdale - OpenTTD installer
- Christian Rosentreter (tokai) - MorphOS / AmigaOS port
- Richard Kempton (RichK67) - Additional airports, initial TGP implementation
- Alberto Demichelis - Squirrel scripting language
- L. Peter Deutsch - MD5 implementation
- Michael Blunck - For revolutionizing TTD with awesome graphics
- George - Canal graphics
- Andrew Parkhouse (andythenorth) - River graphics
- David Dallaston (Pikka) - Tram tracks
- All Translators - For their support to make OpenTTD a truly international game
- Bug Reporters - Thanks for all bug reports
- Chris Sawyer - For an amazing game!
Thanks to:
Josef Drexler - For his great work on TTDPatch.
Marcin Grzegorczyk - For his TTDPatch work and documentation of Transport Tycoon Deluxe internals and track foundations
Stefan Meißner (sign_de) - For his work on the console
Mike Ragsdale - OpenTTD installer
Christian Rosentreter (tokai) - MorphOS / AmigaOS port
Richard Kempton (RichK67) - Additional airports, initial TGP implementation
Alberto Demichelis - Squirrel scripting language
L. Peter Deutsch - MD5 implementation
Michael Blunck - For revolutionizing TTD with awesome graphics
George - Canal graphics
Andrew Parkhouse (andythenorth) - River graphics
David Dallaston (Pikka) - Tram tracks
All Translators - For their support to make OpenTTD a truly international game
Bug Reporters - Thanks for all bug reports
Chris Sawyer - For an amazing game!