Hieronder vindt je een handleiding om OpenTTD op een Raspberry Pi met Raspbian te kunnen draaien. Deze handleiding is een vrije vertaling naar de handleiding van deze pagina (van Tobias Schwarz).
LET OP: Naast dat deze handleiding er vanuit gaat dat je basiskennis van de commandoregel van Raspbian bezit gaat het ook van een van de onderstaande 2 scenario’s uit.
– Je wilt OpenTTD voor het eerst installeren en de momenteel meest recente versie is 1.8.0 en je hebt een schone installatie van Raspbian draaiend met toegang tot de commandoregel. (Begin bij het eerstvolgende hoofdstuk)
– Je draait nu OpenTTD 1.7.2 en wilt updaten naar 1.8.0. (zie hoofdstuk “Stappen om een update van OpenTTD uit te voeren” op deze pagina)
Vervang bij een update van OpenTTD in de onderstaande handleiding zelf de versienummers.
Shell
Om te beginnen open je de commando-regel van Raspbian. Dit kan via SSH, dan wel via het terminal-venster in een desktop-configuratie.
Mijn persoonlijke aanbeveling is om Raspbian Lite te draaien (dus zonder desktop-omgeving) om niet onnodig bronnen kwijt te zijn aan een desktop-omgeving. Een Raspberry Pi 1 Model B Rev. 2 (512MB) kan prima een server draaien maar een map groter dan 256×256 is bijvoorbeeld niet mogelijk. Met een Raspberry Pi 2 Model B V1.1 is een kaart van 512×512 geen enkel probleem en draait hier al tijden lang zeer stabiel.
Update Raspbian
Voor we echt gaan beginnen met de installatie van OpenTTD is het verstandig om Raspbian eerst bij te werken.
sudo apt-get update
sudo apt-get dist-upgrade
Afhankelijkheden installeren voor het compileren van OpenTTD
sudo apt-get update
sudo apt-get install build-essential pkg-config libsdl1.2-dev subversion patch zlib1g-dev liblzo2-dev liblzma-dev libfontconfig-dev libicu-dev
Meer informatie in de OpenTTD Wiki.
Op de OpenTTD Wiki worden nog twee pakketten genoemd welke geïnstalleerd moeten worden als we kijken in de lijst, echter worden ze niet in de commando-regel weergegeven. Het gaat om: libpng12-dev en timidity
Geen van deze twee heb ik tot nu toe geïnstalleerd en heb geen van beide tot nog toe blijkbaar nodig gehad.
Home-map
Zorg dat je je in de home-map bevindt.
cd ~
Download de OpenTTD-broncode
wget https://binaries.openttd.org/releases/1.8.0/openttd-1.8.0-source.tar.gz
Pak de broncode uit
tar xvzf openttd-1.8.0-source.tar.gz
OpenTTD compileren als dedicated server vanuit de broncode
cd openttd-1.8.0/
./configure --enable-dedicated
make --jobs=4
Op Raspberry’s met meerdere CPU-kernen kun je het beste met het maximale aantal CPU-kernen compileren voor de meeste snelheid. Om te achterhalen hoeveel CPU-kernen de Raspberry Pi heeft welke je op dit moment gebruikt voer je eerst de onderstaande commando uit.
getconf _NPROCESSORS_ONLN
Je krijgt nu een getal terug wat je in kunt vullen op de plaats van de 4 uit “make –jobs=4”.
Installeer de OpenTTD binary
sudo make install
Start de server
Start nu eenmalig de server.
openttd -D
De server zal je onderstaande foutmelding geven wanneer de server juist is geïnstalleerd.
Error: Failed to find a graphics set. Please acquire a graphics set for OpenTTD. See section 4.1 of readme.txt.
Installeer OpenGFX
Ondanks dat OpenTTD als een dedicated server zal draaien dient er toch een graphics set geïnstalleerd te worden. Omdat de set op de server geen invloed heeft op wat de speler op zijn eigen client later gebruikt is het installeren van OpenGFX de makkelijkste keuze.
cd ~
wget http://fr.binaries.openttd.org/bananas/basegraphic/OpenGFX-0.5.2.tar.gz
gunzip OpenGFX-0.5.2.tar.gz
mkdir -p .openttd/baseset
mv OpenGFX-0.5.2.tar .openttd/baseset
Creëer een configuratie-bestand voor OpenTTD
Creëer eerst handmatig een configuratie-bestand en start en stop daarna de server zodat het bestand gevuld wordt met de basis-configuratie.
touch ~/.openttd/openttd.cfg
openttd -D
exit
Nu kan de configuratie aangepast worden.
nano ~/.openttd/openttd.cfg
Hieronder een aantal voorbeelden van basis-instellingen welke je kunt aanpassen
; set passwords for the server
server_password = letmein
rcon_password = letmein
admin_password = letmein
; set a name for the server
server_name = Noki's Server
; Pause game without active clients
min_active_clients = 1
; increase number of vehicles to maximum
max_trains = 5000
max_roadveh = 5000
max_aircraft = 5000
max_ships = 5000
; set the curreny
currency = EUR
; set map size to 512x512
map_x = 9
map_y = 9
; set start year to 1970
starting_year = 1970
; set autosave to yearly
autosave = yearly
Daarnaast kun je de goederen-distributie ook op asynchroon instellen.
; change the cargo distribution to async
distribution_pax = 1
distribution_mail = 1
distribution_armoured = 1
distribution_default = 1
Zie voor alle instellingen ook de openttd.cfg-pagina op de OpenTTD Wiki.
OpenTTD Init Script
Voor het automatisch starten en stoppen van de server kun je OpenTTD Init Script gebruiken, geschreven door Frode Woldsund.
Downloaden en uitpakken van OpenTTD Init Script
cd ~
wget https://bitbucket.org/frodus/openttd-init/downloads/openttd-init-1.2.1.zip
unzip openttd-init-1.2.1.zip
Installeer afhankelijkheden
sudo apt-get install screen
Installeer het script
sudo ln -s ~/openttd-init/openttd /etc/init.d/openttd
chmod 755 ~/openttd-init/openttd
sudo update-rc.d openttd defaults
Hernoem en wijzig het script
mv openttd-init/config.example openttd-init/config
nano openttd-init/config
In het configuratie-bestand pas je het volgende aan.
USERNAME="pi"
Samba
Om te zorgen dat je vanaf een Windows-computer bij de bestanden kan, om bijvoorbeeld met Kladblok het configuratie-bestand aan te passen, is het handig om een Samba share op te zetten.
Let op: met onderstaande stappen zet je een Samba share op welke voor iedereen binnen het netwerk zonder invoer van wachtwoord te benaderen is. Gezien het hier om de thuis-map gaat acht ik dit veilig voor een privé-netwerk.
sudo apt-get update
sudo apt-get dist-upgrade
sudo apt-get install samba samba-common-bin
Open het onderstaande bestand
sudo nano /etc/samba/smb.conf
Plaats in het bestand, helemaal onderaan, het volgende.
[PiHome]
path = /home/pi
read only = no
guest ok = yes
force user = pi
Voer na onderstaand commando tweemaal het wachtwoord in. er vanuit gaande dat pi de standaard gebruiker is. Als dat het geval is dan is het standaard wachtwoord: raspberry
.
sudo smbpasswd -a pi
Het is waarschijnlijk niet nodig maar een herstart is nooit verkeerd.
sudo reboot
Bron
Stappen om een update van OpenTTD uit te voeren
Gezien OpenTTD nog altijd actief in ontwikkeling is zal je in een situatie komen dat je server gedateerd raakt. Onderstaand zijn alle stappen te vinden waarmee je een update uit kunt voeren.
sudo service openttd stop
sudo apt-get update
sudo apt-get dist-upgrade
cd ~
cp -r ~/.openttd ~/openttd-1.7.2-backup
wget https://binaries.openttd.org/releases/1.8.0/openttd-1.8.0-source.tar.gz
tar xvzf openttd-1.8.0-source.tar.gz
cd openttd-1.8.0/
./configure --enable-dedicated
make --jobs=4
sudo make install
sudo service openttd start
Let op: Bovenstaande is voor de Raspberry Pi 2 en 3. Voor de Raspberry Pi 1 dien je make --jobs=4
te veranderen in make --jobs=1
(of simpel: make
), zoals eerder ook al behandeld is.
Cron
sudo crontab -e
Kies, indien dit nog niet eerder gebeurt is, de volgende editor:
/bin/nano
Onderaan het bestand dat nu geopend is kun je de Cron-taken toevoegen. Onderstaand een voorbeeld van taken. Dit is een 1 op 1 kopie van wat er op mijn server draait.
*/15 */1 * * * sudo service openttd say www.batssoft.nl/openttd
5 13 * * 5 sudo service openttd say Game_will_restart_in_6_hours.
5 14 * * 5 sudo service openttd say Game_will_restart_in_5_hours.
5 15 * * 5 sudo service openttd say Game_will_restart_in_4_hours.
5 16 * * 5 sudo service openttd say Game_will_restart_in_3_hours.
5 17 * * 5 sudo service openttd say Game_will_restart_in_2_hours.
5 18 * * 5 sudo service openttd say Game_will_restart_in_1_hour.
20 18 * * 5 sudo service openttd say Game_will_restart_in_45_minutes.
35 18 * * 5 sudo service openttd say Game_will_restart_in_30_minutes.
50 18 * * 5 sudo service openttd say Game_will_restart_in_15_minutes.
55 18 * * 5 sudo service openttd say Game_will_restart_in_10_minutes.
0 19 * * 5 sudo service openttd say Game_will_restart_in_5_minutes.
2 19 * * 5 sudo service openttd say Game_will_restart_in_3_minutes.
4 19 * * 5 sudo service openttd say Game_will_restart_in_1_minute.
5 19 * * 5 sudo service openttd newgame
De eerste regel is verantwoordelijk voor het eens per kwartier adverteren van de website. Het tweede blok is verantwoordelijk voor het vooraankondigen van een server reset op vrijdag. Met als laatste regel de daadwerkelijke reset.
Let wel op met bovenstaande: “say” is geen standaard onderdeel van het init-script!
Na de wijzigingen kun je Nano weer afsluiten door op CTRL+X te drukken en YES te antwoorden. Bij een geslaagde wijziging is er te lezen “crontab: installing new crontab”. Indien je niet met YES antwoord zal er het volgende te lezen zijn: “No modification made”