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

06/2017
Pi Zero W

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 neusten Distributionen für den RasPi, sondern auch die passenden Programme und Schaltpläne zu den Artikeln.

  • Mehr Präzision

    Wenn es beim Messen auf hohe Genauigkeit ankommt, brauchen Sie einen A/D-Wandler wie den ADC128D818. Er bringt einige interessante Funktionen mit.

  • Alles in einer Reihe

    Wer mehr als eine serielle Schnittstelle am Mikrocontroller braucht, dem hilft eine in Software implementierte Lösung auf elegante Weise weiter.

  • Netzwerkfähig

    Trotz fehlender Netzwerkanbindung fand der 5-Dollar-Computer Raspberry Pi Zero reißenden Absatz. Der Pi Zero W legt nun mit WLAN und Bluetooth das nach, was sich viele Fans schon lange wünschten.

  • Brückenbau

    Der Pi Zero ist klein und kostengünstig, doch ihm fehlt ein Netzwerkanschluss. Den rüsten Sie bei Bedarf leicht nach.

  • Superkodi

    Der RasPi dient vielen Nutzern als kleines, aber feines Mediacenter zum Aufrüsten eines "dummen" Fernsehers zum Smart-TV. Das Update auf Kodi 17.0 bringt neben einem neuen Look auch eine überarbeitete Streaming-Funktion mit.

  • Gut gefiltert

    Mit Unbound sorgen Sie für blitzschnelle Antworten auf DNS-Anfragen – und sperren bei Bedarf lästige Web-Werbung aus.

  • Out of the box

    Wer einen RasPi-Server in den eigenen vier Wänden aufbauen möchte, muss nicht nur die Software installieren und einrichten, sondern auch das Netzwerk entsprechend konfigurieren. Syncloud nimmt Ihnen diese Arbeit komplett ab.

  • Facelifting

    Mit GTK+ realisieren Sie ohne großen Aufwand effiziente und gefällige grafische Frontends für Ihre Raspberry-Pi-Programme.

  • Praktisch verpackt

    Packen Sie wichtige Anwendungen einfach in einen Container, den Sie komfortabel mit Docker verwalten.