Raspberry Pi als Server für Multiplayer-Games

© algolonline, 123RF

Feuer frei

Der Raspberry Pi eignet sich hervorragend als preisgünstiger Spiele-Server. Wir zeigen Ihnen, wie Sie ihn für den von Quake inspirierten Ego-Shooter OpenArena einrichten.

README

Mit wenigen Handgriffen rüsten Sie den Raspberry Pi zur Plattform für Multiplayer-Spiele auf. Dabei sorgt der Terminal-Multiplexer Tmux für Übersicht und eine komfortable Steuerung.

Nicht nur für Bastler, auch für Gamer bietet der Raspberry Pi eine interessante Plattform. Sein niedriger Preis, der geringe Stromverbrauch und die vielfältigen Betriebssystem-Optionen machen den Mini-Computer zur ersten Wahl, wenn es darum geht, einen kleinen, leistungsfähigen und effizienten Spiele-Server aufzusetzen. Als Hardwarebasis für die folgenden Beschreibung dient ein Raspberry Pi Modell B mit Raspian "Wheezy" als Betriebssystem.

OpenArena

Bei OpenArena [1] handelt es sich um einen kurzweiligen First-Person-Shooter (FPS), der von der beliebten Quake-Serie inspiriert wurde (Abbildung 1). Erfreulicherweise findet sich in den Raspbian-Repositories bereits ein OpenArena-Paket. Um es einzurichten, öffnen Sie ein Terminal und tippen das folgende Kommando ein:

$ sudo apt-get install openarena-server
Abbildung 1: OpenArena ist wie sein Vorbild Quake ein spannender First-Person-Shooter. (Bild: OpenArena.ws)

Ein weiteres nützliches Werkzeug für den Spiele-Server ist der Terminal-Multiplexer Tmux. Er ermöglicht, mehrere Sitzungen von einem Bildschirm aus zu verwalten. Im Wesentlichen handelt es sich um ein Multitasking-Tool für Terminals: Sie lassen darin von einem Screen aus mehrere Programme laufen, wobei Sie sie nach Belieben in den Hintergrund schicken und wieder aktivieren. Auf dem Spiele-Server erweist sich Tmux dadurch als besonders hilfreich, dass Sie sich immer wieder via SSH damit verbinden und den Server so verwalten können. Auch Tmux richten Sie am einfachsten via Konsole ein:

$ sudo apt-get install tmux

Der Terminal-Multiplexer lässt sich kinderleicht bedienen, sobald Sie sich erst einmal mit seinen Optionen und Befehlen vertraut gemacht haben. Die wichtigsten Kommandos für Tmux finden Sie in der Tabelle "Tmux-Befehle".

Tmux-Befehle

Kommando

Funktion

tmux a

bestehende Sitzung wieder öffnen

[Strg]+[B],[C]

neues Terminal öffnen

[Strg]+[B],[W]

alle offenen Terminals auflisten

[Strg]+[B],[ ][9]

zwischen den Fenstern 0 bis 9 wählen

[Strg]+[B],[D]

Terminalfenster geöffnet lassen, aber aus SSH abmelden

[Strg]+[B],[Umschalt]+[5]

Fenster horizontal in zwei Panels aufteilen

[Strg]+[B],[O]

zwischen den Panels umschalten

[Strg]+[B],[Umschalt]+[6]

aktuelles Fenster beenden

[Strg]+[B],[Umschalt]+[ß]

Hilfe aufrufen

TIPP

Einen ausführlichen Workshop zu Tmux aus unserer Schwesterzeitschrift LinuxUser finden Sie bei Interesse online auf der Website LinuxCommunity.de [5].

OpenArena konfigurieren

Die gut ausgestatteten Debian-Pakete bringen in der Regel auch gleich Skripts zur Konfiguration und zum Starten der enthaltenen Software mit. Das gilt auch für OpenArena, dessen Startup-Skript Sie nach der Installation in /etc/init.d/open-arenaserver finden. Wechseln Sie in dieses Verzeichnis, und deaktivieren Sie es fürs Erste:

$ mv openarena-server disabled_openarena_server

Stattdessen starten Sie für die ersten Versuche den Server besser von Hand aus Tmux heraus. Das gibt Ihnen Gelegenheit, sich mit den Optionen und Kommandos von openarena-server vertraut zu machen [2]. Später können Sie dann das Startup-Skript reaktivieren und gezielt an Ihre Bedürfnisse anpassen. Zunächst einmal stoppen Sie den OpenArena-Server und öffnen seine Konfigurationsdatei mit einem Texteditor (Listing 1).

Listing 1

$ sudo /etc/init.d/openarena-server stop
$ nano /etc/openarena-server/server.cfg

Um die Angelegenheit zu vereinfachen, führt Listing 2 nur die nötigsten Optionen für die Konfigurationsdatei auf, um einen minimalen Capture-the-Flag-Server einzurichten. Bei den mit einem doppelten Schrägstrich beginnenden Zeilen handelt es sich um Kommentare. Weitere Details zu den zahlreichen Konfigurationsoptionen finden Sie auf der Website des Projekts.

Listing 2

sets sv_hostname "[^1RPi ^3OA ^1Cust Maps]"
sets sv_maxclients 8
sets sv_master1 "dpmaster.deathmask.net" // Master-Server
seta sv_pure 1
sets sv_allowdownload 1
sv_dlURL "http://www.Kartenserver.de/"
seta bot_minplayers 2
//=== Voting-Einstellungen
seta g_allowVote "1" // Voting einschalten
seta g_voteNames "/map/map_restart/nextmap/kick/clientkick/shuffle/custom/"
seta g_voteMaps "*"
seta g_maxvotes "4"
// Spieletypen
// 0 = Free For All
// 1 = Tourney
// 3 = Team Deathmatch
// 4 = Capture The Flag
// 5 = One Flag Capture
// 6 = Overload (Obelisk)
// 7 = Harvester
// 8 = Elimination
// 9 = CTF Elimination
// 10 = Last Man Standing
// 11 = Double Domination
// 12 = Domination
seta g_gametype 4
map pul1ctf // Mit dieser Karte beginnen
set g_autonextmap 1

Zeile 1 legt fest, unter welchem Namen der Server im Spiele-Client auftaucht. Das Caret (^) leitet Codes ein, über die Sie die Farbe festlegen, mit der eine Ausgabe im Client erscheint (siehe Tabelle "Farbcodes"). Zeile 2 legt die Gesamtanzahl der Spieler-Slots sowohl für Bots als auch menschliche Spieler fest. In Anbetracht der beschränkten Leistungsfähigkeit des RasPi sollten Sie diese Zahl unter 10 Spielern halten – anderenfalls ruckelt es wahrscheinlich ein bisschen. Die Zeile 4 verhindert, dass die Clients PK3-Dateien vom Server zu laden versuchen, die aus Kompatibilitätsgründen dort nicht vorliegen.

Farbcodes

Code

Farbe

^1

Rot

^2

Grün

^3

Gelb

^4

Blau

^5

Zyan

^6

Purpur

^7

Weiß

^8

Orange

Zeile 5 gestattet den Clients, vom Server spezifizierte Dateien herunterzuladen. In unserem Fall weist er sie an, zusätzliche Karten herunterzuladen (siehe auch Kasten "Custom Maps"). Der in Zeile 6 angegebene Webserver stellt den Clients PK3-Kartendateien zum Herunterladen bereit. Je nach Anzahl der zur Verfügung stehenden menschlichen Spieler sorgt Zeile 7 dafür, dass Bots nötigenfalls die Spieleranzahl ergänzen.

Zeile 10 aktiviert das Voting, über das sich die Spieler hinsichtlich verschiedener Aktionen abstimmen können, wie beispielsweise eines Kartenwechsels oder eines Kickings (der Hinauswurf eines schummelnden Spielers). Die entsprechenden Aktionen legt Zeile 11 fest, wobei die entsprechende Zeichenkette stets mit einem Schrägstrich beginnen und auch enden muss. Das Sternchen in Zeile 12 aktiviert alle Möglichkeiten. Die Höchstzahl an Votes, die ein Spieler anfordern darf, legt die Variable g_maxvotes in Zeile 13 fest.

Die Direktive g_gametype in Zeile 28 definiert den vorgegebenen Spieltyp als Capture the Flag. Zeile 30 legt die Karte fest, die der Server beim Start lädt, in diesem Fall pul1ctf. Schließlich sorgt Zeile 31 dafür, dass eine Karte nicht zweimal nacheinander erscheint.

Custom Maps

Zusätzliche Karten, sogenannte Custom Maps [6] verleihen dem Spiel erst die richtige Würze und lassen Routine gar nicht erst aufkommen. Erfreulicherweise bietet die OpenArena-Community zahlreiche qualitativ hochwertige Custom Maps an. Mehr dazu erfahren Sie auf der Projekt-Website und im OpenArena-Wiki [7]. Gerade beim Einsatz eines RasPi als Game-Server bietet es sich schon aus Gründen der Performance an, solche Zusatzkarten von einem externen HTTP-Server zu beziehen.

Wie die meisten Gaming-Communities verfügt auch die OpenArena-Szene über eine lebendige Gemeinde von Entwicklern [8], Kartenzeichnern und Künstlern. Aus deren Zusammenarbeit stammt auch ein Paket komplett freier Maps, das sogenannte OpenArena Community Mappack oder kurz OACMP. Um es nutzen zu können, müssen die Karten sowohl auf dem RasPi-Server als auch auf dem für das Ausliefern vorgesehenen externen Webserver vorliegen. Auf den RasPi laden Sie sie mit folgenden beiden Befehlen:

$ cd ~/.openarena/baseoa
$ wget http://www.onykage.com/files/armageddonman/!oacmp/Version.zip

Die URL für die jeweils neueste Version finden Sie im OpenArena-Wiki auf der OACMP-Seite [9] im Abschnitt Confirmed maps. Nach dem Herunterladen des gut 50 MByte großen Archivs entpacken Sie es im aktuellen Verzeichnis. Auf dem externen Webserver legen Sie im Webroot ein Verzeichnis namens baseoa/ an und kopieren die entpackten Dateien vom RasPi dorthin. Nun sind die neuen Karten einsatzbereit.

Diesen Artikel als PDF kaufen

Express-Kauf als PDF

Umfang: 4 Heftseiten

Preis € 0,99
(inkl. 19% MwSt.)

Raspberry Pi Geek kaufen

Einzelne Ausgabe
 
Abonnements
 
TABLET & SMARTPHONE APPS
Bald erhältlich
Get it on Google Play

Deutschland

Ähnliche Artikel

Aktuelle Ausgabe

04/2017
64-Bit-Modus

Diese Ausgabe als PDF kaufen

Preis € 7,99
(inkl. 19% MwSt.)

Neuigkeiten

  • Neues auf der Heft-DVD

    Nur mit dem optimalen System und der richtigen Software nutzen Sie das volle Potenzial Ihres Mini-PCs. Mit der Heft-DVD erhalten Sie nicht nur die neuesten Distributionen für den Raspberry Pi, sondern auch die passenden Programme zu den Artikeln.

  • Double Action

    Auf dem Raspberry Pi 3 läuft normalerweise ein 32-Bit-Linux – und das, obwohl er eine waschechte 64-Bit-CPU besitzt. Mit etwas Mühe lässt sich die angezogene Handbremse aber durchaus lösen.

  • Touch me

    Mit dem Controller-Baustein MPR121 steuern Sie kapazitive Näherungssensoren. Damit lassen sich berührungslos über die Veränderung eines elektrischen Felds Schaltvorgänge auslösen.

  • Geschickt erweitert

    Um den minimal ausgestatteten RasPi Zero auszubauen, benötigen Sie neben einem OTG-Adapter auch einen USB-Hub. Makerspot hat dafür eine interessante Lösung.

  • Aufgestellt

    Viele RasPi-Projekte erfordern einen Bildschirm samt Eingabemöglichkeit, etwa einen kleinen Touchscreen und eine entsprechend optimierte GUI. Die Display T. Box 7 vereint den offiziellen RasPi-Touchscreen mit einem praktischen Gehäuse.

  • Abgespielt

    Mit Volumio und einem Raspberry Pi rüsten Sie jede Stereoanlage mit "smarten" Funktionen auf. Ob es ums Abspielen von MP3s geht, um das Streaming von Spotify oder die Steuerung per Smartphone: In Kombination mit dem RasPi-Touchscreen toppt Volumio viele kommerzielle Lösungen.

  • Sammelstelle

    Ein IMAP-Server auf einem Raspberry Pi sammelt Mails an einer zentralen Stelle, damit alle Geräte aus dem LAN Zugriff darauf haben.

  • Ausgesiebt

    Adblocker filtern Anzeigen direkt aus dem HTML-Code einer Webseite heraus. Einen anderen Ansatz verfolgt Pi-hole: Auf einem Raspberry Pi installiert und als DNS-Server eingerichtet, biegt der Adblocker Anfragen an Werbe-Domains ins Leere um.

  • Du bleibst der Boss

    Mit Ubos ist es ein Leichtes, verschiedene Webdienste unter eigener Kontrolle zu hosten. Die auf Arch Linux basierende Server-Distribution funktioniert auch auf dem Raspberry Pi.

  • Gut getunnelt

    Mit ein wenig Know-how verwandeln Sie im Handumdrehen einen Raspberry Pi in ein abgesichertes System mit integriertem VPN-Gateway für die Geräte in Ihrem heimischen Netz.