truelight@0: OpenTTD README rubidium@10399: Last updated: 2008-10-01 rubidium@10399: Release version: 0.6.3 truelight@0: ------------------------------------------------------------------------ truelight@0: truelight@0: truelight@0: Table of Contents: truelight@0: ------------------ truelight@0: 1.0) About truelight@0: 2.0) Contacting truelight@0: * 2.1 Reporting Bugs truelight@0: 3.0) Supported Platforms rubidium@7686: 4.0) Installing and running OpenTTD glx@8659: * 4.1 (Required) 3rd party files glx@8659: * 4.2 OpenTTD directories glx@8659: * 4.3 Portable Installations (External Media) truelight@0: 5.0) OpenTTD features truelight@0: 6.0) Configuration File truelight@0: 7.0) Compiling truelight@0: 8.0) Translating truelight@0: * 8.1 Guidelines truelight@0: * 8.2 Translation truelight@0: * 8.3 Previewing Darkvater@1703: 9.0) Troubleshooting truelight@0: X.X) Credits truelight@0: truelight@0: truelight@0: 1.0) About: truelight@0: ---- ------ truelight@0: OpenTTD is a clone of Transport Tycoon Deluxe, a popular game originally truelight@0: written by Chris Sawyer. It attempts to mimic the original game as closely truelight@0: as possible while extending it with new features. truelight@0: Darkvater@1734: OpenTTD is licensed under the GNU General Public License version 2.0. For Darkvater@1734: more information, see the file 'COPYING'. truelight@0: truelight@0: 2.0) Contacting: truelight@0: ---- ---------- truelight@0: The easiest way to contact the OpenTTD team is by submitting bug reports or truelight@0: posting comments in our forums. You can also chat with us on IRC (#openttd rubidium@5404: on irc.oftc.net). truelight@0: darkvater@250: The OpenTTD homepage is http://www.openttd.org/. truelight@0: Darkvater@1734: You can also find the OpenTTD forums at rubidium@7908: http://forum.openttd.org/ truelight@0: truelight@0: truelight@0: 2.1) Reporting Bugs: truelight@0: ---- --------------- Darkvater@5355: To report a bug, please create a Flyspray account and follow the bugs truelight@0: link from our homepage. Please make sure the bug is reproducible and truelight@0: still occurs in the latest daily build or the current SVN version. Also truelight@0: please look through the existing bug reports briefly to see whether the bug truelight@0: is not already known. truelight@0: Darkvater@5355: The Flyspray project page URL is: http://bugs.openttd.org/ truelight@0: truelight@0: Please include the following information in your bug report: rubidium@5404: - OpenTTD version (PLEASE test the latest SVN/nightly build) truelight@0: - Bug details, including instructions how to reproduce it truelight@0: - Platform and compiler (Win32, Linux, FreeBSD, ...) rubidium@7908: - Attach a saved game *and* a screenshot if possible truelight@0: - If this bug only occurred recently please note the last truelight@0: version without the bug and the first version including truelight@0: the bug. That way we can fix it quicker by looking at the truelight@0: changes made. truelight@0: truelight@0: truelight@0: 3.0) Supported Platforms: truelight@0: ---- -------------------- truelight@0: OpenTTD has been ported to several platforms and operating systems. It shouldn't truelight@0: be very difficult to port it to a new platform. The currently working platforms truelight@0: are: truelight@0: rubidium@10385: BeOS - SDL or Allegro rubidium@10385: DOS - Allegro rubidium@5404: FreeBSD - SDL rubidium@10385: Linux - SDL or Allegro rubidium@5404: MacOS X (universal) - Cocoa video and sound drivers (SDL works too, but not 100% and not as a universal binary) rubidium@5404: MorphOS - SDL peter1138@6673: OpenBSD - SDL rubidium@5404: OS/2 - SDL rubidium@10385: Windows - Win32 GDI (faster) or SDL or Allegro truelight@0: truelight@0: rubidium@7686: 4.0) Installing and running OpenTTD: rubidium@7686: ---- ------------------------------- rubidium@7686: rubidium@7686: Installing OpenTTD is fairly straightforward. Either you have downloaded an rubidium@7686: archive which you have to extract to a directory where you want OpenTTD to rubidium@7686: be installed, or you have downloaded an installer, which will automatically rubidium@7686: extract OpenTTD in the given directory. truelight@0: glx@8659: OpenTTD looks in multiple locations to find the required data files (described glx@8659: in section 4.2). Installing any 3rd party files into a "shared" location has glx@8659: the advantage that you only need to do this step once, rather than copying the glx@8659: data files into all OpenTTD versions you have. glx@8659: Savegames, screenshots, etc are saved relative to the config file (openttd.cfg) glx@8659: currently being used. This means that if you use a config file in one of the glx@8659: shared directories, savegames will reside in the save/ directory next to the glx@8659: openttd.cfg file there. glx@8659: If you want savegames and screenshots in the directory where the OpenTTD binary glx@8659: resides, simply have your config file in that location. But if you remove this glx@8659: config file, savegames will still be in this directory (see notes in section 4.2) glx@8659: glx@8659: 4.1) (Required) 3rd party files: glx@8659: ---- --------------------------- glx@8659: glx@8659: Before you run OpenTTD, you need to put the game's datafiles into a data/ glx@8659: directory which can be located in various places addressed in the following glx@8659: section. glx@8659: As OpenTTD makes use of the original TTD artwork you will need the files listed glx@8659: below, which you can find on a Transport Tycoon Deluxe CD-ROM. glx@8659: The Windows installer optionally can copy these files from that CD-ROM. truelight@0: truelight@0: List of the required files: glx@8659: - sample.cat glx@8659: - trg1r.grf glx@8659: - trgcr.grf glx@8659: - trghr.grf glx@8659: - trgir.grf glx@8659: - trgtr.grf truelight@0: glx@8659: Alternatively you can use the TTD GRF files from the DOS version: glx@8659: - TRG1.GRF glx@8659: - TRGC.GRF glx@8659: - TRGH.GRF glx@8659: - TRGI.GRF glx@8659: - TRGT.GRF truelight@0: glx@8659: If you want the TTD music, copy the gm/ folder from the Windows version glx@8659: of TTD to your OpenTTD folder (not your data folder - also explained in glx@8659: the following sections). glx@8659: glx@8659: Do NOT copy files included with OpenTTD into "shared" directories (explained in glx@8659: the following sections) as sooner or later you will run into graphical glitches glx@8659: when using other versions of the game. glx@8659: glx@8659: 4.2) OpenTTD directories glx@8659: ---- ------------------------------- glx@8659: glx@8659: The TTD artwork files listed in the section 4.1 "(Required) 3rd party files" glx@8659: can be placed in a few different locations: glx@8659: 1. The current working directory (from where you started OpenTTD) glx@8659: 2. Your personal directory glx@8659: Windows: C:\Documents and Settings\\My Documents\OpenTTD glx@8659: Mac OSX: ~/Documents/OpenTTD glx@8659: Linux: ~/.openttd glx@8659: 3. The shared directory glx@8659: Windows: C:\Documents and Settings\All Users\Documents\OpenTTD glx@8659: Mac OSX: /Library/Application Support/OpenTTD glx@8659: Linux: not available glx@8659: 4. The binary directory (where the OpenTTD executable is) glx@8659: Windows: C:\Program Files\OpenTTD glx@8659: Linux: /usr/games glx@8659: 5. The installation directory (Linux only) glx@8659: Linux: /usr/share/games/openttd glx@8659: 6. The application bundle (Mac OSX only) glx@8659: It includes the OTTD files (grf+lng) and it will work as long as they aren't touched glx@8659: glx@8659: Notes: glx@8659: - Linux in the previous list means .deb, but most paths should be similar for others. glx@8659: - The previous search order is also used for newgrfs and openttd.cfg. glx@8659: - If openttd.cfg is not found, then it will be created using the 2, 4, 1, 3, 5 order. glx@8659: - Savegames will be relative to the config file only if there is no save/ glx@8659: directory in paths with higher priority than the config file path, but glx@8659: autosaves and screenshots will always be relative to the config file. glx@8659: glx@8659: The prefered setup: glx@8659: Place 3rd party files in shared directory (or in personal directory if you don't glx@8659: have write access on shared directory) and have your openttd.cfg config file in glx@8659: personal directory (where the game will then also place savegames and screenshots). glx@8659: glx@8659: glx@8659: 4.3) Portable Installations (External Media): glx@8659: ---- ---------------------------------------- glx@8659: glx@8659: You can install OpenTTD on external media so you can take it with you, i.e. glx@8659: using a USB key, or a USB HDD, etc. glx@8659: Create a directory where you shall store the game in (i.e. OpenTTD/). glx@8659: Copy the binary (OpenTTD.exe, OpenTTD.app, openttd, etc), data/ and your glx@8659: openttd.cfg to this directory. glx@8659: You can copy binaries for any operating system into this directory, which will glx@8659: allow you to play the game on nearly any computer you can attach the external glx@8659: media to. glx@8659: As always - additional grf files are stored in the data/ dir (for details, glx@8659: again, see section 4.1). dominik@614: truelight@0: truelight@0: 5.0) OpenTTD features: truelight@0: ---- ----------------- truelight@0: truelight@0: OpenTTD has a lot of features going beyond the original TTD emulation. tron@2401: Unfortunately, there is currently no comprehensive list of features, but there tron@2401: is a basic features list on the web, and some optional features can be Darkvater@1734: controlled through the Configure Patches dialog. We also implement some truelight@0: features known from TTDPatch (http://www.ttdpatch.net/). truelight@0: truelight@0: Several important non-standard controls: truelight@0: tron@2401: * Use Ctrl to place semaphore signals tron@2401: * Ingame console. More information at rubidium@5404: http://wiki.openttd.org/index.php/Console truelight@0: truelight@0: smatz@9457: 5.1) Logging of potentially dangerous actions: smatz@9457: ---- ---------------------------------------- smatz@9457: smatz@9457: OpenTTD is a complex program, and together with NewGRF, it may show a buggy smatz@9457: behaviour. But not only bugs in code can cause problems. There are several smatz@9457: ways to affect game state possibly resulting in program crash or multiplayer smatz@9457: desyncs. smatz@9457: Easier way would be to forbid all these unsafe actions, but that would affect smatz@9457: game usability for many players. We certainly do not want that. smatz@9457: However, we receive bugreports because of this. To reduce time spent with smatz@9457: solving these problems, these potentially unsafe actions are logged in smatz@9457: the savegame (including crash.sav). Log is stored in crash logs, too. smatz@9457: smatz@9457: Information logged: smatz@9457: smatz@9457: * Adding / removing / changing order of NewGRFs smatz@9457: * Changing NewGRF parameters, loading compatible NewGRF smatz@9457: * Changing game mode (scenario editor <-> normal game) smatz@9457: * Loading game saved in a different OTTD / TTDPatch / TTD version smatz@9457: * Running a modified OTTD build smatz@9457: * Changing patch settings affecting NewGRF behaviour (non-networksafe patches) smatz@9457: * Changing landscape (by cheat) smatz@9704: * Triggering NewGRF bugs smatz@9457: smatz@9457: No personal information is stored. smatz@9457: smatz@9457: You can show the gamelog by typing 'gamelog' in the console or by running smatz@9457: OpenTTD in debug mode. smatz@9457: smatz@9457: truelight@0: 6.0) Configuration File: truelight@0: ---- ------------------- Darkvater@1734: The configuration file for OpenTTD (openttd.cfg) is in a simple Windows-like tron@2401: .INI format. It's mostly undocumented. Almost all settings can be changed tron@2401: ingame by using the 'Configure Patches' window. truelight@0: truelight@0: truelight@0: 7.0) Compiling: truelight@0: ---- ---------- truelight@0: Windows: Darkvater@5355: You need Microsoft Visual Studio .NET. Open the project file Darkvater@1703: and it should build automatically. In case you want to build with SDL support Darkvater@1703: you need to add WITH_SDL to the project settings. tron@2401: PNG (WITH_PNG) and ZLIB (WITH_ZLIB) support is enabled by default. For these tron@2401: to work you need their development files. For best results, download the tron@2401: openttd-useful.zip file from SourceForge under the Files tab. Put the header tron@2401: files into your compiler's include/ directory and the library (.lib) files tron@2401: into the lib/ directory. Darkvater@5355: For more help with VS see docs/Readme_Windows_MSVC.txt. darkvater@222: Darkvater@1734: You can also build it using the Makefile with MSYS/MinGW or Cygwin/MinGW. truelight@0: Please read the Makefile for more information. truelight@0: celestar@6219: Solaris 10: celestar@6219: You need g++ (version 3 or higher), together with SDL. Installation of celestar@6219: libpng and zlib is recommended. For the first build it is required celestar@6219: to execute "bash configure" first. Note that ./configure does not work celestar@6219: yet. It is likely that you don't have a strip binary, so use the celestar@6219: --disable-strip option in that case. Fontconfig (>2.3.0) and freetype celestar@6219: are optional. "make run" will then run the program. celestar@6219: truelight@0: Unix: tron@1133: OpenTTD can be built with GNU "make". On non-GNU systems it's called "gmake". rubidium@5475: However, for the first build one has to do a "./configure" first. tron@1133: Note that you need SDL-devel 1.2.5 (or higher) to compile OpenTTD. truelight@0: bjarni@2937: MacOS X: bjarni@2937: Use "make" or Xcode (which will then call make for you) rubidium@5404: This will give you a binary for your CPU type (PPC/Intel) rubidium@5475: However, for the first build one has to do a "./configure" first. rubidium@5475: To make a universal binary type "./configure --enabled-universal" rubidium@5475: instead of "./configure". truelight@0: truelight@0: BeOS: rubidium@5475: Use "make", but do a "./configure" before the first build. truelight@0: Darkvater@1734: FreeBSD: tron@2401: You need the port devel/sdl12 for a non-dedicated build. tron@2401: graphics/png is optional for screenshots in the PNG format. rubidium@5475: Use "gmake", but do a "./configure" before the first build. truelight@0: peter1138@6673: OpenBSD: peter1138@6673: Use "gmake", but do a "./configure" before the first build. peter1138@6673: Note that you need the port devel/sdl to compile OpenTTD. peter1138@6673: Darkvater@1734: MorphOS: rubidium@5475: Use "make". However, for the first build one has to do a "./configure" first. rubidium@5475: Note that you need the MorphOS SDK, latest libnix updates (else C++ parts of rubidium@5475: OpenTTD will not build) and the powersdl.library SDK. Optionally libz, rubidium@5475: libpng and freetype2 developer files. truelight@0: Darkvater@1734: OS/2: orudge@7045: A comprehensive GNU build environment is required to build the OS/2 version. orudge@7045: See the docs/Readme_OS2.txt file for more information. Darkvater@1734: rubidium@10385: DOS: rubidium@10385: A build environment with DJGPP is needed as well as libraries such as rubidium@10385: Allegro, zlib and libpng, which all can be downloaded from the DJGPP rubidium@10385: website. Compilation is straight forward: use make, but do a "./configure" rubidium@10385: before the first build. The build binary will need cwsdpmi.exe to be in rubidium@10385: the same directory as the openttd executable. cwsdpmi.exe can be found in rubidium@10385: the os/dos subdirectory. If you compile with stripping turned on a binary rubidium@10385: will be generated that does not need cwsdpmi.exe by adding the cswdstub.exe rubidium@10385: to the created OpenTTD binary. rubidium@10385: Darkvater@1734: truelight@0: 8.0) Translating: truelight@0: ---- ------------------- darkvater@250: See http://www.openttd.org/translating.php for up-to-date information. darkvater@250: tron@2401: The use of the online Translator service, located at Darkvater@4785: http://translator2.openttd.org/, is highly encouraged. For a username/password tron@2401: combo you should contact the development team, either by mail, IRC or the tron@2401: forums. The system is straightforward to use, and if you have any problems, tron@2401: read the online help located there. darkvater@250: tron@2401: If for some reason the website is down for a longer period of time, the tron@2401: information below might be of help. truelight@0: truelight@0: 8.1) Guidelines: truelight@0: ---- ------------------- truelight@0: Here are some translation guidelines which you should follow closely. truelight@0: Darkvater@3122: * Please contact the development team before beginning the translation tron@2401: process! This avoids double work, as someone else may have already tron@2401: started translating to the same language. truelight@0: truelight@0: 8.2) Translation: truelight@0: ---- ------------------- tron@2401: So, now that you've notified the development team about your intention to tron@2401: translate (You did, right? Of course you did.) you can pick up english.txt tron@2401: (found in the SVN repository under /lang) and translate. truelight@0: truelight@0: You must change the first two lines of the file appropriately: truelight@0: truelight@0: ##name English-Name-Of-Language truelight@0: ##ownname Native-Name-Of-Language truelight@0: truelight@0: Note: Do not alter the following parts of the file: truelight@0: truelight@0: * String identifiers (the first word on each line) truelight@0: * Parts of the strings which are in curly braces (such as {STRING}) tron@2401: * Lines beginning with ## (such as ##id), other than the first two lines of tron@2401: the file truelight@0: truelight@0: 8.3) Previewing: truelight@0: ---- ------------------- tron@2401: In order to view the translation in the game, you need to compile your language tron@2401: file with the strgen utility, which is now bundled with the game. truelight@0: truelight@0: strgen is a command-line utility. It takes the language filename as parameter. truelight@0: Example: truelight@0: truelight@0: strgen lang/german.txt truelight@0: truelight@0: This results in compiling german.txt and produces another file named german.lng. tron@2401: Any missing strings are replaced with the English strings. Note that it looks tron@2401: for english.txt in the lang subdirectory, which is where your language file tron@2401: should also be. truelight@0: truelight@0: That's all! You should now be able to select the language in the game options. truelight@0: Darkvater@1703: 9.0) Troubleshooting Darkvater@1734: ---- --------------- Darkvater@1734: tron@2401: To see all startup options available to you, start OpenTTD with the tron@2401: "./openttd -h" option. This might help you tweak some of the settings. Darkvater@1734: Darkvater@3122: If the game is acting strange and you feel adventurous you can try the tron@2401: "-d [[]=[]" flag, where the higher levels will give you more tron@2401: debugging output. The "name" variable can help you to display only some type of tron@2401: debugging messages. This is mostly undocumented so best is to look in the tron@2401: source code file debug.c for the various debugging types. For more information tron@2401: look at http://wiki.openttd.org/index.php/Command_line. Darkvater@1734: tron@2401: The most frequent problem is missing data files. Don't forget to put all GRF tron@2401: files from TTD into your data/ folder including sample.cat! Darkvater@1734: tron@2401: Under Windows 98 and lower it is impossible to use a dedicated server; it will tron@2401: fail to start. Perhaps this is for the better because those OS's are not known tron@2401: for their stability. truelight@0: Darkvater@5355: With the added support for font-based text selecting a non-latin language will Darkvater@5355: result in garbage (lots of '?') shown on screen. Please open your configuration Darkvater@5355: file and add a desired font for small/medium/-and large_font. This can be a font Darkvater@5355: name like "Tahoma" or a path to a font. Darkvater@5355: Darkvater@5355: Any NewGRF file used in a game is stored inside the savegame and will refuse Darkvater@5355: to load if you don't have that grf file available. A list of missing files Darkvater@5355: will be output to the console at the moment, so use the '-d' flag (on windows) Darkvater@5355: to see this list. You just have to find the files (http://grfcrawler.tt-forums.net/) Darkvater@5355: put them in the data/ folder and you're set to go. Darkvater@5355: truelight@0: X.X) Credits: truelight@0: ---- -------- darkvater@1124: The OpenTTD team (in alphabetical order): belugas@8059: Jean-Francois Claeys (Belugas) - GUI, newindustries and more belugas@8059: Bjarni Corfitzen (Bjarni) - MacOSX port, coder and vehicles belugas@8059: Matthijs Kooijman (blathijs) - Pathfinder-guru, pool rework belugas@9945: Victor Fischer (Celestar) - Programming everywhere you need him to belugas@9945: Christoph Elsenhans (frosch) - General coding belugas@8059: Loïc Guilloux (glx) - General coding belugas@8059: Jaroslav Mazanec (KUDr) - YAPG (Yet Another Pathfinder God) ;) belugas@8059: Jonathan Coome (Maedhros) - High priest of the newGRF Temple belugas@8059: Attila Bán (MiHaMiX) - WebTranslator, Nightlies, Wiki and bugtracker host belugas@8059: Owen Rudge (orudge) - Forum host, OS/2 port belugas@8184: Peter Nelson (peter1138) - Spiritual descendant from newGRF gods belugas@8059: Remko Bijker (Rubidium) - Lead coder and way more belugas@8059: Benedikt Brüggemeier (skidd13) - Bug fixer and code reworker belugas@8059: Zdenek Sojka (SmatZ) - Bug finder and fixer belugas@8059: belugas@8059: Inactive Developers: belugas@8059: Tamás Faragó (Darkvater) - Ex-Lead coder darkvater@1125: Christoph Mallon (Tron) - Programmer, code correctness police darkvater@1125: darkvater@1125: Retired Developers: belugas@8059: Ludvig Strigeus (ludde) - OpenTTD author, main coder (0.1 - 0.3.3) belugas@8059: Serge Paquet (vurlix) - Assistant project manager, coder (0.1 - 0.3.3) Darkvater@1703: Dominik Scherer (dominik81) - Lead programmer, GUI expert (0.3.0 - 0.3.6) truelight@7859: Patric Stout (TrueLight) - Programmer, webhoster (0.3 - pre0.6) truelight@799: truelight@0: Thanks to: rubidium@5404: Josef Drexler - For his great work on TTDPatch. rubidium@5404: Marcin Grzegorczyk - For his TTDPatch work and documentation of TTD internals and graphics (signals and track foundations) rubidium@5404: Petr Baudis (pasky) - Many patches, newgrf support, etc. belugas@8059: Simon Sasburg (HackyKid) - For the many bugfixes he has blessed us with rubidium@5404: Stefan Meißner (sign_de) - For his work on the console rubidium@5404: Mike Ragsdale - OpenTTD installer rubidium@5404: Cian Duffy (MYOB) - BeOS port / manual writing rubidium@5404: Christian Rosentreter (tokai) - MorphOS / AmigaOS port rubidium@5404: Richard Kempton (RichK67) - Additional airports, initial TGP implementation rubidium@5404: Michael Blunck - For revolutionizing TTD with awesome graphics rubidium@5404: George - Canal graphics rubidium@6691: David Dallaston (Pikka) - Tram tracks rubidium@5404: All Translators - For their support to make OpenTTD a truly international game rubidium@5404: Bug Reporters - Thanks for all bug reports rubidium@5404: Chris Sawyer - For an amazing game!