OpenTTD

From ArchWiki

OpenTTD is a free re-implementation of the popular DOS game Transport Tycoon Deluxe. You are a transport company owner, and you must manage it over the years in order to make profit.

Installation

Install the openttd package.

If you do not own the original game, openttd-opengfx and openttd-opensfx contains the free graphics & sounds.

Additionally, you may install the free OpenMSX music pack. You can check FluidSynth#Standalone mode to make sure FluidSynth works properly.

Original Transport Tycoon Deluxe data (optional)

OpenTTD can use the non-free graphics and sound data of the original Windows/DOS version of Transport Tycoon Deluxe.

Note: While you can dump the files from either the DOS or the Windows version of the game, only the Windows version provides the original music.

You can get these files from the game CD-ROM, from an existing install or you get them from the freely available game installation archive available at Abandonia.

To use the original graphics & sound effects, copy the following files to /usr/share/openttd/data/ or ~/.openttd/baseset :

  • Windows : trg1r.grf, trgcr.grf, trghr.grf, trgir.grf, trgtr.grf
  • DOS : TRG1.GRF, TRGC.GRF, TRGH.GRF, TRGI.GRF, TRGT.GRF
  • sample.cat from either version

For the original soundtrack, copy the files from the gm folder of the original TTD game directory to ~/.openttd/gm.

Tutorial

The game can be quite confusing at first. A good tutorial is available on the wiki here.

For an in-game tutorial, a game script has been implemented. Just download 'Beginner Tutorial' with the in-game download manager and load the 'Beginner Tutorial' scenario.

Configuration

This article or section is out of date.

Reason: According to https://wiki.openttd.org/en/Archive/Manual/Settings/Advanced%20Settings the settings have been substantially re-organised (Discuss in Talk:OpenTTD)

The OpenTTD main configuration file is located at ~/.openttd/openttd.cfg and is automatically created upon first startup.

Various settings in the configuration file can be edited with buttons on the main menu. Each button is explained below.

Game Options

This window allows you to set options which will be used by default at the start of a new game.

Note: Settings will not be updated for games which have already been started. The options can still be changed in-game.

You can also set the default graphics, sound, and music here.

Difficulty

This window allows you to change the difficulty of the game, and specific options about them. You can either use the difficulty presets by selecting the difficulty buttons at the top of the window, or set custom options.

More information can be found here[dead link 2021-05-17 ⓘ].

Advanced Settings

In this window, nearly all the other settings in the configuration file can be modified. All the options are grouped in expandable sections. You can also search for the setting to be changed using the search utility.

Details about these settings can be found here[dead link 2021-05-17 ⓘ].

AI/Game Script Settings

This window allows you to customize various options relating to artificial intelligence (bots or CPU players) and Game Scripts.

Game Scripts are a goal-based scripts which can perform many in-game actions to enhance or extend the game.

Detailed information about this window can be found here[dead link 2021-05-17 ⓘ].

Multiplayer

Client

Players can join a server using the Multiplayer menu. In multiplayer, fast forwarding, pausing by the player and cheats are disabled.

All problems with a server should resolve the administrator of the server and are usually not a bug, just a misconfiguration on the server.

Server

You can start the server by passing the -D argument, e.g.:

# openttd -D 0.0.0.0:3979

This starts the server and accepts additional commands. Configuration is generated and stored in ~/.config/openttd/openttd.cfg and is read every time the server starts. It can be overriden with commands issued directly to the server while running. Some settings cannot be changed during a game.

You can either create a Systemd service to run on background, or use screen.

To make your server publicly available, you need a public-facing server with all port forwardings set up properly. The default port is 3979.

Tips and tricks

Heightmaps

OpenTTD allows using a grayscale image as a heightmap for landscape generation. There is an excellent heightmap generator available at terrain.party, based on real Earth terrain. Alternatively, you can use the botherAUR application, which can download larger areas and contains a number of options for fine-tuning the resulting heightmap (see the README for some notes on usage). You may further use gimp for fine-tuning the heightmap, especially useful are the Levels and Gaussian Blur tools.

Cheats

A cheat menu can be shown in a local game by pressing Ctrl+Alt+c.

Detailed information about cheats are available here

Multiplayer

Always set a password for your own company to avoid others taking over. Some servers reset your password after some idle time.

Chat can be brought up with the t letter if the rail building menu is not open.

You can invest in other companies by buying shares (if enabled on server). You can later sell the shares for profit, or loss.

Troubleshooting

Music is not playing

The soundtrack of the game is made of MIDI files. Therefore, you need a MIDI synthesizer to play them.

The game will automatically try to use FluidSynth with no additional arguments. Make sure a soundfont is also installed. Usually, installing soundfont-fluid should enable music playback.

If for some reason you need/want to use another synthesizer, OpenTTD provides the "extmidi" music driver, which allows you to configure a command to be ran to play music.

Warning:
  • When using the extmidi driver, the in-game volume control sliders are disabled and cannot be used to change the volume.
  • If the command you want to run is not included in $PATH, you must specify the absolute path.

Edit your openttd.cfg to configure extmidi :

~/.openttd/openttd.cfg
[misc]
musicdriver = "extmidi:cmd=<command>"
Note: You can also configure extmidi when starting up the game : openttd -m extmidi:cmd=<command>

However, extmidi does not allow additionnal arguments in the command. The solution is to use a wrapper script:

~/.openttd/playmidi
#!/bin/bash

#here, we want to use the FluidSynth synthesizer with the soundfont
#provided in soundfont-fluid and PulseAudio

trap "pkill fluidsynth" EXIT
fluidsynth -a pulseaudio -i /usr/share/soundfonts/FluidR3_GM2-2.sf2 $*

Mark it as executable.

Then you can specify the full path to the script as the command to be used with extmidi :

~/.openttd/openttd.cfg
[misc]
musicdriver = "extmidi:cmd=/home/<user>/.openttd/playmidi"

See also