Change: Increase cargo type limit to 64.
[openttd-github.git] / README.md
blob7f5d244f5817d4c7f0504ce0cbb0ec29b2325dbd
1 # OpenTTD
3 ## Table of contents
5 - 1.0) [About](#10-about)
6 - 2.0) [Contacting](#20-contacting)
7     - 2.1) [Reporting bugs](#21-reporting-bugs)
8     - 2.2) [Reporting desyncs](#22-reporting-desyncs)
9 - 3.0) [Supported platforms](#30-supported-platforms)
10 - 4.0) [Installing and running OpenTTD](#40-installing-and-running-openttd)
11     - 4.1) [(Required) 3rd party files](#41-required-3rd-party-files)
12     - 4.2) [OpenTTD directories](#42-openttd-directories)
13     - 4.3) [Portable installations (portable media)](#43-portable-installations-portable-media)
14     - 4.4) [Files in tar (archives)](#44-files-in-tar-archives)
15 - 5.0) [OpenTTD features](#50-openttd-features)
16     - 5.1) [Logging of potentially dangerous actions](#51-logging-of-potentially-dangerous-actions)
17 - 6.0) [Configuration file](#60-configuration-file)
18 - 7.0) [Compiling](#70-compiling)
19     - 7.1) [Required/optional libraries](#71-requiredoptional-libraries)
20     - 7.2) [Supported compilers](#72-supported-compilers)
21     - 7.3) [Compilation of base sets](#73-compilation-of-base-sets)
22 - 8.0) [Translating](#80-translating)
23     - 8.1) [Translation](#81-translation)
24     - 8.2) [Previewing](#82-previewing)
25 - 9.0) [Troubleshooting](#90-troubleshooting)
26 - 10.0) [Licensing](#100-licensing)
27 - X.X) [Credits](#xx-credits)
29 ## 1.0) About
31 OpenTTD is a transport simulation game based upon the popular game Transport
32 Tycoon Deluxe, written by Chris Sawyer. It attempts to mimic the original
33 game as closely as possible while extending it with new features.
35 OpenTTD is licensed under the GNU General Public License version 2.0,
36 but includes some 3rd party software under different licenses. See the
37 section "Licensing" below for details.
39 ## 2.0) Contacting
41 The easiest way to contact the OpenTTD team is by submitting bug reports or
42 posting comments in our forums. You can also chat with us on IRC (#openttd
43 on irc.oftc.net).
45 The OpenTTD homepage is https://www.openttd.org.
47 You can also find the OpenTTD forums at
48 [https://www.tt-forums.net](https://www.tt-forums.net/viewforum.php?f=55).
50 ### 2.1) Reporting bugs
52 First of all, check whether the bug is not already known. Do this by looking
53 through the file called 'known-bugs.txt' which is distributed with OpenTTD
54 like this readme.
56 For tracking our bugs we are using GitHub's issue tracker. You can find
57 the tracker at https://github.com/OpenTTD/OpenTTD/issues. Before actually
58 reporting take a look through the already reported bugs there to see if
59 the bug is already known. The 'known-bugs.txt' file might be a bit outdated
60 at the moment you are reading it as only bugs known before the release
61 are documented there. Also look through the recently closed bugs.
63 When you are sure it is not already reported you should:
65 - Make sure you are running a recent version, i.e. run the latest stable or
66    nightly based on where you found the bug.
67 - Make sure you are not running a non-official binary, like a patch pack.
68    When you are playing with a patch pack you should report any bugs to the
69    forum thread related to that patch pack.
70 - Make it reproducible for the developers. In other words, create a savegame
71    in which you can reproduce the issue once loaded. It is very useful to give
72    us the crash.dmp, crash.sav, crash.log and crash screenshot which are
73    created on crashes.
74 - Check whether the bug is already reported on our bug tracker. This includes
75    searching for recently closed bug reports as the bug might already be fixed.
77 After you have done all that you can report the bug. Please include the
78 following information in your bug report:
80 - OpenTTD version (PLEASE test the latest SVN/nightly build)
81 - Bug details, including instructions how to reproduce it
82 - Platform (Windows, Linux, FreeBSD, …) and compiler (including version) if
83    you compiled OpenTTD yourself.
84 - The processor architecture of your OS (32-bit Windows, 64-bit Windows,
85    Linux on an ARM, Mac OS X on a PowerPC, etc.)
86 - Attach a saved game **and** a screenshot if possible
87 - If this bug only occurred recently please note the last version without
88    the bug and the first version including the bug. That way we can fix it
89    quicker by looking at the changes made.
90 - Attach crash.dmp, crash.log and crash.sav. These files are usually created
91    next to your openttd.cfg. The crash handler will tell you the location.
93 ### 2.2) Reporting desyncs
95 As desyncs are hard to make reproducible OpenTTD has the ability to log all
96 actions done by clients so we can replay the whole game in an effort to make
97 desyncs better reproducible. You need to turn this ability on. When turned
98 on an automatic savegame will be made once the map has been constructed in
99 the 'save/autosave' directory, see OpenTTD directories to know where to find
100 this directory. Furthermore the log file 'commands-out.log' will be created
101 and all actions will be written to there.
103 To enable the desync debugging you need to set the debug level for 'desync'
104 to at least 1. You do this by starting OpenTTD with '`-d desync=<level>`' as
105 parameter or by typing '`debug_level desync=<level>`' in OpenTTD's internal
106 console.
107 The desync debug levels are:
109 - 0: nothing.
110 - 1: dumping of commands to 'commands-out.log'.
111 - 2: same as 1 plus checking vehicle caches and dumping that too.
112 - 3: same as 2 plus monthly saves in autosave.
113 - 4 and higher: same as 3
115 Restarting OpenTTD will overwrite 'commands-out.log'. OpenTTD will not remove
116 the savegames (dmp_cmds_*.sav) made by the desync debugging system, so you
117 have to occasionally remove them yourself!
119 The naming format of the desync savegames is as follows:
120 dmp_cmds_XXXXXXXX_YYYYYYYY.sav. The XXXXXXXX is the hexadecimal representation
121 of the generation seed of the game and YYYYYYYY is the hexadecimal
122 representation of the date of the game. This sorts the savegames by game and
123 then by date making it easier to find the right savegames.
125 When a desync has occurred with the desync debugging turned on you should file
126 a bug report with the following files attached:
128 - commands-out.log as it contains all the commands that were done
129 - the last saved savegame (search for the last line beginning with
130    'save: dmp_cmds_' in commands-out.log). We use this savegame to check
131    whether we can quickly reproduce the desync. Otherwise we will need …
132 - the first saved savegame (search for the first line beginning with 'save'
133    where the first part, up to the last underscore '_', is the same). We need
134    this savegame to be able to reproduce the bug when the last savegame is not
135    old enough. If you loaded a scenario or savegame you need to attach that.
136 - optionally you can attach the savegames from around 50%, 75%, 85%, 90% and
137    95% of the game's progression. We can use these savegames to speed up the
138    reproduction of the desync, but we should be able to reproduce these
139    savegames based on the first savegame and commands-out.log.
140 - in case you use any NewGRFs you should attach the ones you used unless
141    we can easily find them ourselves via bananas or when they are in the
142    #openttdcoop pack.
144 Do NOT remove the dmp_cmds savegames of a desync you have reported until the
145 desync has been fixed; if you, by accident, send us the wrong savegames we
146 will not be able to reproduce the desync and thus will be unable to fix it.
148 ## 3.0) Supported platforms
150 OpenTTD has been ported to several platforms and operating systems. It should
151 not be very difficult to port it to a new platform. The currently working
152 platforms are:
154 - BeOS (SDL or Allegro)
155 - DOS (Allegro)
156 - FreeBSD (SDL)
157 - Linux (SDL or Allegro)
158 - macOS (universal) (Cocoa video and sound drivers)
159 - MorphOS (SDL)
160 - OpenBSD (SDL)
161 - OS/2 (SDL)
162 - Windows (Win32 GDI (faster) or SDL or Allegro)
164 ## 4.0) Installing and running OpenTTD
166 Installing OpenTTD is fairly straightforward. Either you have downloaded an
167 archive which you have to extract to a directory where you want OpenTTD to
168 be installed, or you have downloaded an installer, which will automatically
169 extract OpenTTD in the given directory.
171 OpenTTD looks in multiple locations to find the required data files (described
172 in section 4.2). Installing any 3rd party files into a 'shared' location has
173 the advantage that you only need to do this step once, rather than copying the
174 data files into all OpenTTD versions you have.
176 Savegames, screenshots, etc are saved relative to the config file (openttd.cfg)
177 currently being used. This means that if you use a config file in one of the
178 shared directories, savegames will reside in the save/ directory next to the
179 openttd.cfg file there.
181 If you want savegames and screenshots in the directory where the OpenTTD binary
182 resides, simply have your config file in that location. But if you remove this
183 config file, savegames will still be in this directory (see notes in
184 section 4.2 'OpenTTD directories')
186 OpenTTD comes without AIs, so if you want to play with AIs you have to download
187 them. The easiest way is via the 'Check Online Content' button in the main menu.
188 You can select some AIs that you think are compatible with your playing style.
189 Another way is manually downloading the AIs from the forum although then you
190 need to make sure that you install all the required AI libraries too; they get
191 automatically selected (and downloaded) if you get the AIs via the 'Check
192 Online Content'. If you do not have an AI but have configured OpenTTD to start
193 an AI a message will be shown that the 'dummy' AI has been started.
195 ### 4.1) (Required) 3rd party files
197 Before you run OpenTTD, you need to put the game's data files into a baseset/
198 directory which can be located in various places addressed in the following
199 section.
201 For OpenTTD you need to acquire some third party data files. For this you have
202 the choice of using the original Transport Tycoon Deluxe data files or a set
203 of free data files.
205 Do NOT copy files included with OpenTTD into 'shared' directories (explained in
206 the following sections) as sooner or later you will run into graphical glitches
207 when using other versions of the game.
209 #### 4.1.1) Free graphics and sound files
211 The free data files, split into OpenGFX for graphics, OpenSFX for sounds and
212 OpenMSX for music can be found at:
214 - https://www.openttd.org/download-opengfx for OpenGFX
215 - https://www.openttd.org/download-opensfx for OpenSFX
216 - https://www.openttd.org/download-openmsx for OpenMSX
218 Please follow the readme of these packages about the installation procedure.
219 The Windows installer can optionally download and install these packages.
221 #### 4.1.2) Original Transport Tycoon Deluxe graphics and sound files
223 If you want to play with the original Transport Tycoon Deluxe data files you
224 have to copy the data files from the CD-ROM into the baseset/ directory. It
225 does not matter whether you copy them from the DOS or Windows version of
226 Transport Tycoon Deluxe. The Windows install can optionally copy these files.
227 You need to copy the following files:
228 - sample.cat
229 - trg1r.grf or TRG1.GRF
230 - trgcr.grf or TRGC.GRF
231 - trghr.grf or TRGH.GRF
232 - trgir.grf or TRGI.GRF
233 - trgtr.grf or TRGT.GRF
235 #### 4.1.3) Original Transport Tycoon Deluxe music
237 If you want the Transport Tycoon Deluxe music, copy the appropriate files from
238 the original game into the baseset folder.
239 - TTD for Windows: All files in the gm/ folder (gm_tt00.gm up to gm_tt21.gm)
240 - TTD for DOS: The GM.CAT file
241 - Transport Tycoon Original: The GM.CAT file, but rename it to GM-TTO.CAT
243 #### 4.1.4) AIs
245 If you want AIs use the in-game content downloader. If for some reason that is
246 not possible or you want to use an AI that has not been uploaded to the content
247 download system download the tar file and place it in the ai/ directory. If the
248 AI needs libraries you will have to download those too and put them in the
249 ai/library/ directory. All AIs and AI Libraries that have been uploaded to
250 the content download system can be found at https://noai.openttd.org/downloads.
251 The AIs and libraries can be found their in the form of .tar.gz packages.
252 OpenTTD can read inside tar files but it does not extract .tar.gz files by itself.
254 To figure out which libraries you need for an AI you have to start the AI and
255 wait for an error message to pop up. The error message will tell you
256 'could not find library "lib-name"'. Download that library and try again.
258 #### 4.1.5) Game scripts
260 If you want an extra challenge in OpenTTD you can download so-called game
261 scripts via the in-game content downloader. These game scripts have varying
262 functionality, though they can generally influence town growth, subsidies, add
263 goals to reach or provide a different ranking system.
265 If you download a game script manually you have to follow the same rules as for
266 AIs, except that game scripts are placed in the game/ directory instead of the
267 ai/ directory.
269 ### 4.2) OpenTTD directories
271 OpenTTD uses its own directory to store its required 3rd party base set files
272 (see section 4.1 'Required 3rd party files') and non-compulsory extension and
273 configuration files. See below for their proper place within this OpenTTD main
274 data directory.
276 The main OpenTTD directories can be found in various locations, depending on
277 your operating system:
279 1. The current working directory (from where you started OpenTTD)
281     For non-Windows operating systems OpenTTD will not scan for files in this
282     directory if it is your personal directory, i.e. '~/', or when it is the
283     root directory, i.e. '/'.
285 2. Your personal directory
286     - Windows:
287         - `C:\My Documents\OpenTTD` (95, 98, ME)
288         - `C:\Documents and Settings\<username>\My Documents\OpenTTD` (2000, XP)
289         - `C:\Users\<username>\Documents\OpenTTD` (Vista, 7, 8.1, 10)
290     - macOS: `~/Documents/OpenTTD`
291     - Linux: `$XDG_DATA_HOME/openttd` which is usually `~/.local/share/openttd`
292        when built with XDG base directory support, otherwise `~/.openttd`
293 3. The shared directory
294     - Windows:
295         - `C:\Documents and Settings\All Users\Shared Documents\OpenTTD` (2000, XP)
296         - `C:\Users\Public\Documents\OpenTTD` (Vista, 7, 8.1, 10)
297     - macOS: `/Library/Application Support/OpenTTD`
298     - Linux: not available
299 4. The binary directory (where the OpenTTD executable is)
300     - Windows: `C:\Program Files\OpenTTD`
301     - Linux: `/usr/games`
302 5. The installation directory (Linux only)
303     - Linux: `/usr/share/games/openttd`
304 6. The application bundle (macOS only)
306     It includes the OpenTTD files (grf+lng) and it will work as long as they
307     are not touched
309 Different types of data or extensions go into different subdirectories of the
310 chosen main OpenTTD directory:
312 | data type | directory | additional info |
313 | --- | --- | --- |
314 | Config File | (no subdirectory) | |
315 | Screenshots | screenshot | |
316 | Base Graphics | baseset | (or a subdirectory thereof) |
317 | Sound Sets | baseset | (or a subdirectory thereof) |
318 | NewGRFs | newgrf | (or a subdirectory thereof) |
319 | 32bpp Sets | newgrf | (or a subdirectory thereof) |
320 | Music Sets | baseset | (or a subdirectory thereof) |
321 | AIs | ai | (or a subdirectory thereof) |
322 | AI Libraries | ai/library | (or a subdirectory thereof) |
323 | Game Scripts (GS) | game | (or a subdirectory thereof) |
324 | GS Libraries | game/library | (or a subdirectory thereof) |
325 | Savegames | save | |
326 | Automatic Savegames | save/autosave | |
327 | Scenarios | scenario | |
329 The (automatically created) directory content_download is for OpenTTD's internal
330 use and no files should be added to it or its subdirectories manually.
332 #### Notes:
334 - Linux in the previous list means .deb, but most paths should be similar for
335    others.
336 - The previous search order is also used for NewGRFs and openttd.cfg.
337 - If openttd.cfg is not found, then it will be created using the 2, 4, 1, 3,
338    5 order. When built with XDG base directory support, openttd.cfg will be
339    created in $XDG_CONFIG_HOME/openttd which is usually ~/.config/openttd.
340 - Savegames will be relative to the config file only if there is no save/
341    directory in paths with higher priority than the config file path, but
342    autosaves and screenshots will always be relative to the config file.
343    Unless the configuration file is in $XDG_CONFIG_HOME/openttd, then all
344    other files will be saved under $XDG_DATA_HOME/openttd.
346 #### The preferred setup:
348 Place 3rd party files in shared directory (or in personal directory if you do
349 not have write access on shared directory) and have your openttd.cfg config
350 file in personal directory (where the game will then also place savegames and
351 screenshots).
353 ### 4.3) Portable installations (portable media)
355 You can install OpenTTD on external media so you can take it with you, i.e.
356 using a USB key, or a USB HDD, etc.
357 Create a directory where you shall store the game in (i.e. OpenTTD/).
358 Copy the binary (OpenTTD.exe, OpenTTD.app, openttd, etc), baseset/ and your
359 openttd.cfg to this directory.
360 You can copy binaries for any operating system into this directory, which will
361 allow you to play the game on nearly any computer you can attach the external
362 media to.
363 As always - additional grf files are stored in the newgrf/ dir (for details,
364 again, see section 4.1).
366 ### 4.4) Files in tar (archives)
368 OpenTTD can read files that are in an uncompressed tar (archive), which
369 makes it easy to bundle files belonging to the same script, NewGRF or base
370 set. Music sets are the only exception as they cannot be stored in a tar
371 file due to being played by external applications.
373 OpenTTD sees each tar archive as the 'root' of its search path. This means that
374 having a file with the same path in two different tar files means that one
375 cannot be opened, after all only one file will be found first. As such it is
376 advisable to put an uniquely named folder in the root of the tar and put all the
377 content in that folder. For example, all downloaded content has a path that
378 concatenates the name of the content and the version, which makes the path
379 unique. For custom tar files it is advised to do this as well.
381 The normal files are also referred to by their relative path from the search
382 directory, this means that also normal files could hide files in a tar as
383 long as the relative path from the search path of the normal file is the
384 same as the path in the tar file. Again it is advised to have an unique path
385 to the normal file so they do not collide with the files from other tar
386 files.
388 ## 5.0) OpenTTD features
390 OpenTTD has a lot of features going beyond the original Transport Tycoon Deluxe
391 emulation. Unfortunately, there is currently no comprehensive list of features,
392 but there is a basic features list on the web, and some optional features can be
393 controlled through the Advanced Settings dialog. We also implement some
394 features known from [TTDPatch](https://www.ttdpatch.net).
396 Several important non-standard controls:
398 - Ctrl modifies many commands and makes them more powerful. For example Ctrl
399    clicking on signals with the build signal tool changes their behaviour,
400    holding Ctrl while the track build tool is activated changes it to the track
401    removal tool, and so on. See https://wiki.openttd.org/Hidden_features
402    for a non-comprehensive list or look at the tooltips.
403 - Ingame console. More information at https://wiki.openttd.org/Console
404 - Hovering over a GUI element shows tooltips. This can be changed to right click
405    via the advanced settings.
407 ### 5.1) Logging of potentially dangerous actions
409 OpenTTD is a complex program, and together with NewGRF, it may show a buggy
410 behaviour. But not only bugs in code can cause problems. There are several
411 ways to affect game state possibly resulting in program crash or multiplayer
412 desyncs.
414 Easier way would be to forbid all these unsafe actions, but that would affect
415 game usability for many players. We certainly do not want that.
416 However, we receive bug reports because of this. To reduce time spent with
417 solving these problems, these potentially unsafe actions are logged in
418 the savegame (including crash.sav). Log is stored in crash logs, too.
420 Information logged:
422 - Adding / removing / changing order of NewGRFs
423 - Changing NewGRF parameters, loading compatible NewGRF
424 - Changing game mode (scenario editor <-> normal game)
425 - Loading game saved in a different OpenTTD / TTDPatch / Transport Tycoon Deluxe /
426    original Transport Tycoon version
427 - Running a modified OpenTTD build
428 - Changing settings affecting NewGRF behaviour (non-network-safe settings)
429 - Triggering NewGRF bugs
431 No personal information is stored.
433 You can show the game log by typing 'gamelog' in the console or by running
434 OpenTTD in debug mode.
436 ## 6.0) Configuration file
438 The configuration file for OpenTTD (openttd.cfg) is in a simple Windows-like
439 .INI format. It is mostly undocumented. Almost all settings can be changed
440 ingame by using the 'Advanced Settings' window.
441 When you cannot find openttd.cfg you should look in the directories as
442 described in section 4.2. If you do not have an openttd.cfg OpenTTD will
443 create one after closing.
445 ## 7.0) Compiling
447 ### Windows:
449 You need Microsoft Visual Studio .NET. Open the project file
450 and it should build automatically. In case you want to build with SDL support
451 you need to add WITH_SDL to the project settings.
453 PNG (WITH_PNG) and ZLIB (WITH_ZLIB) support is enabled by default. For these
454 to work you need their development files. For best results, download the
455 openttd-useful.zip file from https://www.openttd.org/download-openttd-useful.
456 Put the header files into your compiler's include/ directory and the
457 library (.lib) files into the lib/ directory.
458 For more help with VS see docs/Readme_Windows_MSVC.txt.
460 You can also build it using the Makefile with MSYS/MinGW or Cygwin/MinGW.
461 Please read the Makefile for more information.
463 ### Solaris, FreeBSD, OpenBSD:
465 Use '`gmake`', but do a '`./configure`' before the first build.
467 ### Linux/Unix:
469 OpenTTD can be built with GNU '`make`'. On non-GNU systems it is called '`gmake`'.
470 However, for the first build one has to do a '`./configure`' first.
472 ### macOS:
474 Use '`make`' or Xcode (which will then call make for you)
475 This will give you a binary for your CPU type (PPC/Intel)
476 However, for the first build one has to do a '`./configure`' first.
477 To make a universal binary type '`./configure --enabled-universal`'
478 instead of '`./configure`'.
480 ### BeOS:
482 Use '`make`', but do a '`./configure`' before the first build.
484 ### MorphOS:
486 Use '`make`'. However, for the first build one has to do a '`./configure`'
487 first. Note that you need the MorphOS SDK, latest libnix updates (else C++
488 parts of OpenTTD will not build) and the powersdl.library SDK. Optionally libz,
489 libpng and freetype2 developer files.
491 ### OS/2:
493 A comprehensive GNU build environment is required to build the OS/2 version.
494 See the docs/Readme_OS2.txt file for more information.
496 ### DOS:
498 A build environment with DJGPP is needed as well as libraries such as
499 Allegro, zlib and libpng, which all can be downloaded from the DJGPP
500 website. Compilation is straight forward: use '`make`', but do a '`./configure`'
501 before the first build. The build binary will need cwsdpmi.exe to be in
502 the same directory as the openttd executable. cwsdpmi.exe can be found in
503 the os/dos/cwsdpmi subdirectory. If you compile with stripping turned on a
504 binary will be generated that does not need cwsdpmi.exe by adding the
505 cswdstub.exe to the created OpenTTD binary.
507 ### 7.1) Required/optional libraries
509 The following libraries are used by OpenTTD for:
511 - libSDL/liballegro: hardware access (video, sound, mouse)
512 - zlib: (de)compressing of old (0.3.0-1.0.5) savegames, content downloads,
513    heightmaps
514 - liblzo2: (de)compressing of old (pre 0.3.0) savegames
515 - liblzma: (de)compressing of savegames (1.1.0 and later)
516 - libpng: making screenshots and loading heightmaps
517 - libfreetype: loading generic fonts and rendering them
518 - libfontconfig: searching for fonts, resolving font names to actual fonts
519 - libicu: handling of right-to-left scripts (e.g. Arabic and Persian) and
520    natural sorting of strings.
522 OpenTTD does not require any of the libraries to be present, but without
523 liblzma you cannot open most recent savegames and without zlib you cannot
524 open most older savegames or use the content downloading system.
525 Without libSDL/liballegro on non-Windows and non-macOS machines you have
526 no graphical user interface; you would be building a dedicated server.
528 ### 7.2) Supported compilers
530 The following compilers are known to compile OpenTTD:
532 - Microsoft Visual C++ (MSVC) 2005, 2008 and 2010.
533    Version 2005 gives bogus warnings about scoping issues.
534 - GNU Compiler Collection (GCC) 3.3 - 4.4, 4.6 - 4.8.
535     - Versions 4.1 and earlier give bogus warnings about uninitialised variables.
536     - Versions 4.4, 4.6 give bogus warnings about freeing non-heap objects.
537     - Versions 4.6 and later give invalid warnings when lto is enabled.
538 - Intel C++ Compiler (ICC) 12.0.
539 - Clang/LLVM 2.9 - 3.0
540    Version 2.9 gives bogus warnings about code nonconformity.
542 The following compilers are known not to compile OpenTTD:
544 - Microsoft Visual C++ (MSVC) 2003 and earlier.
545 - GNU Compiler Collection (GCC) 3.2 and earlier.
546    These old versions fail due to OpenTTD's template usage.
547 - GNU Compiler Collection (GCC) 4.5. It optimizes enums too aggressively.
548    See https://github.com/OpenTTD/OpenTTD/issues/5513 and references therein.
549 - Intel C++ Compiler (ICC) 11.1 and earlier.
550     - Version 10.0 and earlier fail a configure check and fail with recent
551        system headers.
552     - Version 10.1 fails to compile station_gui.cpp.
553     - Version 11.1 fails with an internal error when compiling network.cpp.
554 - Clang/LLVM 2.8 and earlier.
555 - (Open) Watcom.
557 If any of these compilers can compile OpenTTD again, please let us know.
558 Patches to support more compilers are welcome.
560 ### 7.3) Compilation of base sets
562 To recompile the extra graphics needed to play with the original Transport
563 Tycoon Deluxe graphics you need GRFCodec (which includes NFORenum) as well.
564 GRFCodec can be found at https://www.openttd.org/download-grfcodec.
565 The compilation of these extra graphics does generally not happen, unless
566 you remove the graphics file using '`make maintainer-clean`'.
568 Re-compilation of the base sets, thus also use of '`--maintainer-clean`' can
569 leave the repository in a modified state as different grfcodec versions can
570 cause binary differences in the resulting grf. Also translations might have
571 been added for the base sets which are not yet included in the base set
572 information files. Use the configure option '`--without-grfcodec`' to avoid
573 modification of the base set files by the build process.
575 ## 8.0) Translating
577 See https://www.openttd.org/development for up-to-date information.
579 The use of the online Translator service, located at
580 https://translator.openttd.org, is highly encouraged. For getting an account
581 simply follow the guidelines in the FAQ of the translator website.
583 If for some reason the website is down for a longer period of time, the
584 information below might be of help.
586 Please contact the translations manager (https://www.openttd.org/contact)
587 before beginning the translation process! This avoids double work, as
588 someone else may have already started translating to the same language.
590 ### 8.1) Translation
592 So, now that you have notified the development team about your intention to
593 translate (You did, right? Of course you did.) you can pick up english.txt
594 (found in the SVN repository under /src/lang) and translate.
596 You must change the first two lines of the file appropriately:
598     ##name English-Name-Of-Language
599     ##ownname Native-Name-Of-Language
601 Note: Do not alter the following parts of the file:
603 - String identifiers (the first word on each line)
604 - Parts of the strings which are in curly braces (such as {STRING})
605 - Lines beginning with ## (such as ##id), other than the first two lines
606    of the file
608 ### 8.2) Previewing
610 In order to view the translation in the game, you need to compile your language
611 file with the strgen utility. As this utility is tailored to a specific OpenTTD
612 version, you need to compile it yourself. Just take the normal OpenTTD sources
613 and build that. During the build process the strgen utility will be made.
615 strgen is a command-line utility. It takes the language filename as parameter.
617 Example:
619     strgen lang/german.txt
621 This results in compiling german.txt and produces another file named german.lng.
622 Any missing strings are replaced with the English strings. Note that it looks
623 for english.txt in the lang subdirectory, which is where your language file
624 should also be.
626 That is all! You should now be able to select the language in the game options.
628 ## 9.0) Troubleshooting
630 To see all startup options available to you, start OpenTTD with the
631 '`./openttd -h`' option. This might help you tweak some of the settings.
633 If the game is acting strange and you feel adventurous you can try the
634 '`-d [[<name>=]<level>]`' flag, where the higher levels will give you more
635 debugging output. The 'name' variable can help you to display only some type of
636 debugging messages. This is mostly undocumented so best is to look in the
637 source code file debug.c for the various debugging types. For more information
638 look at https://wiki.openttd.org/Command_line.
640 The most frequent problem is missing data files. Please install OpenGFX and
641 possibly OpenSFX and OpenMSX. See section 4.1.1 for more information.
643 Under certain circumstance, especially on Ubuntu OpenTTD can be extremely slow
644 and/or freeze. See known-bugs.txt for more information and how to solve this
645 problem on your computer.
647 Under Windows 98 and lower it is impossible to use a dedicated server; it will
648 fail to start. Perhaps this is for the better because those OSes are not known
649 for their stability.
651 With the added support for font-based text selecting a non-latin language can
652 result in lots of question marks ('?') being shown on screen. Please open your
653 configuration file (openttd.cfg - see Section 4.2 for where to find it)
654 and add a suitable font for the small, medium and / or large font, e.g.:
656     small_font = "Tahoma"
657     medium_font = "Tahoma"
658     large_font = "Tahoma"
660 You should use a font name like 'Tahoma' or a path to the desired font.
662 Any NewGRF file used in a game is stored inside the savegame and will refuse to
663 load if you do not have that NewGRF file available. A list of missing files can
664 be viewed in the NewGRF window accessible from the file load dialogue window.
666 You can try to obtain the missing files from that NewGRF dialogue or – if they
667 are not available online – you can search manually through our
668 [forum's graphics development section](https://www.tt-forums.net/viewforum.php?f=66)
669 or [GRFCrawler](https://grfcrawler.tt-forums.net). Put the NewGRF files in
670 OpenTTD's newgrf folder (see section 4.2 'OpenTTD directories') and rescan the
671 list of available NewGRFs. Once you have all missing files, you are set to go.
673 ## 10.0) Licensing
675 OpenTTD is licensed under the GNU General Public License version 2.0. For
676 the complete license text, see the file 'COPYING'. This license applies
677 to all files in this distribution, except as noted below.
679 The squirrel implementation in src/3rdparty/squirrel is licensed under
680 the Zlib license. See src/3rdparty/squirrel/COPYRIGHT for the complete
681 license text.
683 The md5 implementation in src/3rdparty/md5 is licensed under the Zlib
684 license. See the comments in the source files in src/3rdparty/md5 for
685 the complete license text.
687 The implementations of Posix getaddrinfo and getnameinfo for OS/2 in
688 src/3rdparty/os2 are distributed partly under the GNU Lesser General Public
689 License 2.1, and partly under the (3-clause) BSD license. The exact licensing
690 terms can be found in src/3rdparty/os2/getaddrinfo.c resp.
691 src/3rdparty/os2/getnameinfo.c.
693 The exe2coff implementation in os/dos/exe2coff is available under the
694 GPL, with a number of additional terms. See os/dos/exe2coff/copying and
695 os/dos/exe2coff/copying.dj for the exact licensing terms.
697 The CWSDPMI implementation in os/dos/cwsdpmi is distributed under a
698 custom binary-only license that prohibits modification. The exact
699 licensing terms can be found in os/dos/cwsdpmi/cwsdpmi.txt. The sources
700 for these files can be downloaded at its author site, at
701 http://homer.rice.edu/~sandmann/cwsdpmi/csdpmi5s.zip.
703 CONTRIBUTING.md is adapted from
704 [Bootstrap](https://github.com/twbs/bootstrap/blob/master/CONTRIBUTING.md)
705 under the [Creative Commons Attribution 3.0 Unported
706 License](https://github.com/twbs/bootstrap/blob/master/docs/LICENSE)
707 terms for Bootstrap documentation.
709 ## X.X) Credits
711 ### The OpenTTD team (in alphabetical order):
713 - Grzegorz Duczyński (adf88) - General coding (since 1.7.2)
714 - Albert Hofkamp (Alberth) - GUI expert (since 0.7)
715 - Matthijs Kooijman (blathijs) - Pathfinder-guru, Debian port (since 0.3)
716 - Ulf Hermann (fonsinchen) - Cargo Distribution (since 1.3)
717 - Christoph Elsenhans (frosch) - General coding (since 0.6)
718 - Loïc Guilloux (glx) - Windows Expert (since 0.4.5)
719 - Michael Lutz (michi_cc) - Path based signals (since 0.7)
720 - Owen Rudge (orudge) - Forum host, OS/2 port (since 0.1)
721 - Peter Nelson (peter1138) - Spiritual descendant from newGRF gods (since 0.4.5)
722 - Ingo von Borstel (planetmaker) - General coding, Support (since 1.1)
723 - Remko Bijker (Rubidium) - Lead coder and way more (since 0.4.5)
724 - José Soler (Terkhen) - General coding (since 1.0)
725 - Leif Linse (Zuu) - AI/Game Script (since 1.2)
727 ### Inactive Developers:
729 - Jean-François Claeys (Belugas) - GUI, newindustries and more (0.4.5 - 1.0)
730 - Bjarni Corfitzen (Bjarni) - macOS port, coder and vehicles (0.3 - 0.7)
731 - Victor Fischer (Celestar) - Programming everywhere you need him to (0.3 - 0.6)
732 - Jaroslav Mazanec (KUDr) - YAPG (Yet Another Pathfinder God) ;) (0.4.5 - 0.6)
733 - Jonathan Coome (Maedhros) - High priest of the NewGRF Temple (0.5 - 0.6)
734 - Attila Bán (MiHaMiX) - WebTranslator 1 and 2 (0.3 - 0.5)
735 - Zdeněk Sojka (SmatZ) - Bug finder and fixer (0.6 - 1.3)
736 - Christoph Mallon (Tron) - Programmer, code correctness police (0.3 - 0.5)
737 - Patric Stout (TrueBrain) - NoProgrammer (0.3 - 1.2), sys op (active)
738 - Thijs Marinussen (Yexo) - AI Framework, General (0.6 - 1.3)
740 ### Retired Developers:
742 - Tamás Faragó (Darkvater) - Ex-Lead coder (0.3 - 0.5)
743 - Dominik Scherer (dominik81) - Lead programmer, GUI expert (0.3 - 0.3)
744 - Emil Djupfeld (egladil) - macOS port (0.4 - 0.6)
745 - Simon Sasburg (HackyKid) - Bug fixer (0.4 - 0.4.5)
746 - Ludvig Strigeus (ludde) - Original author of OpenTTD, main coder (0.1 - 0.3)
747 - Cian Duffy (MYOB) - BeOS port / manual writing (0.1 - 0.3)
748 - Petr Baudiš (pasky) - Many patches, newgrf support, etc. (0.3 - 0.3)
749 - Benedikt Brüggemeier (skidd13) - Bug fixer and code reworker (0.6 - 0.7)
750 - Serge Paquet (vurlix) - 2nd contributor after ludde (0.1 - 0.3)
752 ### Thanks to:
754 - Josef Drexler - For his great work on TTDPatch.
755 - Marcin Grzegorczyk - For his TTDPatch work and documentation of Transport Tycoon Deluxe internals and track foundations
756 - Stefan Meißner (sign_de) - For his work on the console
757 - Mike Ragsdale - OpenTTD installer
758 - Christian Rosentreter (tokai) - MorphOS / AmigaOS port
759 - Richard Kempton (RichK67) - Additional airports, initial TGP implementation
760 - Alberto Demichelis - Squirrel scripting language
761 - L. Peter Deutsch - MD5 implementation
762 - Michael Blunck - For revolutionizing TTD with awesome graphics
763 - George - Canal graphics
764 - Andrew Parkhouse (andythenorth) - River graphics
765 - David Dallaston (Pikka) - Tram tracks
766 - All Translators - For their support to make OpenTTD a truly international game
767 - Bug Reporters - Thanks for all bug reports
768 - Chris Sawyer - For an amazing game!