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/2019
TV & Multimedia

Diese Ausgabe als PDF kaufen

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

Stellenmarkt

Neuigkeiten

  • Finger weg

    Ein Temperatursensor verrät, ob Sie einen Gegenstand gefahrlos berühren dürfen. Beim Messen brauchen Sie dabei noch nicht einmal Kontakt zum Objekt.

  • Aus einer Hand

    Um einen Mikrocontroller zu programmieren, genügt ein Raspberry Pi. Wir zeigen, was Sie dazu noch benötigen.

  • Im Gleichtakt

    Synchronisierte Live-Loops und selbst erstellte Funktionen helfen dabei, Sonic Pi wie ein Live-Instrument zu spielen.

  • Mach mal

    Das Ftduino-Modul schlägt die Brücke zu Fischertechnik und ermöglicht es unter anderem, einen Drei-Achsen-Roboter anzusteuern.

  • Eleganter Diener

    Jeden Morgen dieselben Handgriffe, um zu sehen, ob die S-Bahn fährt und wie das Wetter wird? Ein cleverer Infoscreen auf RasPi-Basis automatisiert den Vorgang.

  • Bienenflüsterer

    Bienenzüchter, die ihre Völker besser kennenlernen möchten, müssen die fleißigen Insekten nicht pausenlos stören. Mit einem Raspberry Pi und verschiedenen Sensoren überwachen sie Temperatur, Luftfeuchtigkeit und bald auch das Gewicht des Bienenstocks.

  • Beerige Musik

    Für echten Hi-Fi-Sound braucht es mehr als einen kleinen Bluetooth-Brüllwürfel. Mit Volumio und einem Raspberry Pi rüsten Sie Ihre klassische Hi-Fi-Anlage mit smarten Funktionen auf.

  • Ton ab!

    Auf den ersten Blick erscheint der RasPi zu schwachbrüstig für den Betrieb leistungshungriger DAW-Software. Doch der Schein trügt.

  • Himbeer-TV

    Der DVB TV µHAT rüstet den Raspberry Pi mit einem DVB-T/T2-Tuner auf. Die deutsche TV-Landschaft schränkt dessen Möglichkeiten allerdings ein.

  • Git à la RasPi

    Mit wenigen Handgriffen zum Git-Hoster: Die dezentrale Arbeitsweise von Git erleichtert in Kombination mit der Netzwerkfähigkeit des RasPi das Verwalten von Quellcode.