Foobillardplus: Eine gepflegte Partie Billard gefällig?

Debian beherbergt einige, wenn nicht gar sehr viele freie Spiele. Die Palette reicht dabei vom rundenbasierten Strategiespiel, über den klassischen Ego-Shooter bis zum Puzzlespiel für Kinder.
Natürlich gibt es auch Simulationen und eine davon heißt Foobillard.
Foobillard ist eine sehr gelungene Umsetzung eines klassischen Billardspiels in OpenGL. Ein Tisch, ein paar Kugeln, ein Queue, realistische Geräusche. Nun ist Foobillard schon ein wenig älter und hat circa 10 Jahre auf dem Buckel. Im Allgemeinen muss das gar nichts bedeuten.
An Foobillard gibt es deswegen auch nichts auszusetzen, jedoch gab es schon seit Jahren keine Neuerungen mehr, weswegen es Zeit für Foobillard++ wurde. Ich bin auf diesen Nachfolger erstmals im Dezember letzten Jahres aufmerksam geworden, als jemand das Spiel in #debian-games erwähnte. Seit längerem lag hier eine kleine Liste mit Spielen herum, die ich gerne mal erneuert gesehen hätte und auch Foobillard gehörte dazu. Ich nahm also die Vorlage auf und kontaktierte den Entwickler von Foobillardplus, um herauszufinden ob das Spiel für Debian geeignet war.
Ich war neugierig, welche Neuerungen das Spiel bot, ob es alte Bugs in Foobillard beseitigte und ob die Lizenz passte, um in Debian integriert zu werden. So war es dann auch. Ich störte mich zuerst ein wenig an dem Buildsystem des Spiels, aber auch das ließ sich ausräumen. Ich bin heute fester denn je davon überzeugt, dass es besser für alle Billardspieler da draußen wäre diese Version in Debian zu haben als weiterhin an der älteren Foobillardversion festzuhalten.
Foobillardplus
Es gibt einfach zu viele Neuerungen. Zuerst einmal fixt Foobillardplus viele schon Jahre alte Fehler. Es gibt ein neues Interface, neue Spielmodi, neue Hintergrundgrafiken und die Möglichkeit Musik abzuspielen. Letztere musste ich leider wegen der unfreien Lizenz entfernen, jedoch empfehle ich dennoch mal einen Blick auf die Band “Zentriert ins Antlitz” zu werfen, die ihre Musik für das Spiel zur Verfügung gestellt hat. Mir persönlich gefällt die Mucke sehr gut, jedoch ist BY-NC-ND keine Lizenz für Debian Main.
Musik ist auch nicht wirklich notwendig, um das Spiel zu genießen. Man kann auch eigene Tracks im Ogg-Format nach /usr/share/games/foobillardplus/data/music/ kopieren und die Musik im Spiel anhören.
Mein Ziel ist es die veraltete Version in Debian zu ersetzen. Mal schaun, was daraus wird. Ein fast komplettes Debianpaket könnt ihr bis zur offiziellen Veröffentlichung hier herunterladen:
Update: 05.09.2013 FooBillard++ ist nun offiziell im Debian-Archiv verfügbar!
Ich muss nur noch überprüfen, warum der Browser sich für die “History-Funktion” nicht öffnet. Morgen oder Übermorgen füge ich die Dateien noch zum Reprepro-Archiv hinzu, so dass der Download auch über das Einbinden der Serveradresse in die sources.list funktioniert.
Wer Billard mag, unbedingt anschauen!. Man kann es sowohl zu zweit gegeneinander, als auch gegen den Computer spielen.

Meine Woche mit Linux, Spielen und Musik: Limbo, Humble Music Bundle, ScummVM 1.5, Warsow 1.0 und Tryst

Mal ein paar Neuigkeiten aus der Welt der Linuxspiele. Jeder einzelne Artikel wäre zu kurz geraten, deswegen gibt es heute ein Potpourri an Themen zum Thema Spiele und Linux.

Limbo

Ja, Limbo, war das nicht schon im letzten Humble Indie Bundle V enthalten? Richtig. Damals hatte ich es mir schon als “spielenswert” herausgepickt und mich danach auf den Weg gemacht, um die düstere Welt eines kleinen Jungen zu erkunden. Da ich nicht zu viel spoilern will, sei hier nur gesagt, dass ich nicht einmal im Verlauf des Spiels gestorben bin und alle fiesen Fallen der Programmierer mit Hilfe der Matrix locker umgangen habe. (Was man nicht sehen kann, sind die Finger, die ich hinter meinem Rücken kreuze.)
Nein ehrlich, das Spiel ist von der Stimmung und Atmosphäre her sehr gelungen. Die Steuerung ist einfach zu erlernen, jedoch wird man praktisch ins kalte Wasser oder besser den Wald geworfen. Warum und wieso und wie es weitergeht, erfährt man durch das Ausprobieren des Spiels, was ich persönlich sehr spannend fand. Wer vollkommen in diese dunkle Fantasie eintauchen möchte, genug Geistige Gesundheit und Stabilitätspunkte auf dem Konto und keine Arachnophobie hat, dem kann ich das Spiel auf jeden Fall empfehlen. Linuxtechnisch ließ sich das Spiel unter Debian problemlos installieren. Es liegt aber nicht nativ vor, sondern wird mit Hilfe von Wine gespielt, dass im Deb-Paket von Limbo integriert wurde.
Limbo

Humble Music Bundle

Seit knapp einer Woche gibt es nun wieder was Neues von den Jungs und Mädels, die das Humble-Bundle-Projekt regelmäßig wieder auf die Beine stellen. Dieses Mal stehen keine Spiele, sondern Musik im Vordergrund. Sechs drm-freie Alben warten darauf gehört zu werden. Zumindest Christopher Tin, dessen Album Calling all Dawns im Bundle enthalten ist, scheint noch gewisse Probleme mit dem Begriff Linux zu haben: “Ehm Linux whatever that is.”
Die Musik ist zwar nicht wirklich frei, jedoch bietet sich wie gehabt die Möglichkeit so viel zu bezahlen, wie man selbst für angemessen hält und wie bisher werden gemeinnützige Organisationen und natürlich die Künstler davon unterstützt.

ScummVM 1.5 erschienen

ScummVM
Auf holarse-linuxgaming.de habe ich zum ersten Mal vom neuen Release 1.5 “Picnic Basket” von ScummVM gelesen. Neben zwölf neu unterstützten Spielen gibt es dazu auch die passende neue Engine und eine Reihe von Fehlerbehebungen. ScummVM ist unter anderem jetzt auch auf dem Nokia 770 Tablet spielbar, dass mit Maemo betrieben wird. Dass ich ein großer Fan von ScummVM bin, hatte ich anderer Stelle schon einmal durchscheinen lassen. 🙂

Warsow 1.0

Nach sieben Jahren in der Betaphase wurde Warsow nun endlich in Version 1.0 veröffentlicht. Ich hatte es vor kurzem neben anderen bekannten FOSS-Spielen vorgestellt. Es hätte mit Sicherheit einen Platz auf meinem Server gefunden, wenn das Spiel nicht aus Wheezy entfernt worden wäre, da niemand sich um die Beseitigung der Bugs gekümmert hat. Es gibt mittlerweile Bestrebungen den Titel für Jessie auf Hochglanz zu bringen. Das Paket befindet sich auch weiterhin mit einer veralteten Version in Debian Unstable. Ich denke nach der Veröffentlichung von Wheezy wird es hier weitergehen und vielleicht sieht man es dann irgendwann auch auf linuxiuvat.de

Tryst

Auch zum Spieletitel Tryst gab es bei Holarse einen netten Artikel. Hierbei handelt es sich um ein Echtzeitstrategiespiel von BlueGiant Interactive. Auf einem fremden Planeten streiten Menschen und Aliens um die Vorherrschaft über Ressourcen. So weit so bekannt. Die Grafik ist Dank der Unigine Engine auf hohem Niveau. Interessanter als diese ist natürlich das Gameplay, was einen Kampf von bis zu 8 Spielern im Mehrspielermodus verspricht und mit Spezialfähigkeiten für jede Einheit wirbt. Optisch sieht es für mich auf den ersten Blick ein wenig nach Starcraft II aus, dass sich mit Wine auch unter Linux spielen lässt.
Das Beste von allem aber: Das Spiel wird laut diesem Forenbeitrag nach der Veröffentlichung auch für Linux nativ erscheinen. Ich bin gespannt.

Lecker – Cube 2: Sauerbraten

Es ist angerichtet. Anstatt kulinarischer Spezialitäten gibt es heute jedoch das native Linuxspiel Cube 2: Sauerbraten. Zugegeben für all die, wo Deutsch als Muttersprache haben tun, klingt dieser Name für einen waschechten Ego-Shooter erst einmal seltsam in den Ohren. Scheinbar aber nicht für den Erschaffer des Spiels, Wouter „Aardappel“ van Oortmerssen. Wen sollte das bei seinem Spitznamen, “Kartoffel”, auch wundern.
In diesem Beitrag stelle ich Cube 2: Sauerbraten vor, das seit mehr als vier Monaten zu meinem Spieleprojekt gehört. Ich beschreibe hier die wichtigsten Spielmerkmale, natürlich gibt es auch Bilder und Links und eine auf den Punkt gebrachte Anleitung, wie man selbst einen dedizierten und offenen Sauerbraten-Server mit Debian und Ubuntu aufsetzen kann.
Und was den Namen anbelangt…einfach Englisch aussprechen: Sourrrrbrrrääten. Perfekter Name für einen Ego-Shooter. 🙂

Warum Sauerbraten?

Nachdem ich mir ein paar Kriterien für in Frage kommende Spiele ausgedacht hatte, punktete Sauerbraten auf jeden Fall mit seinen außerordentlich geringen Hardwareanforderungen sowohl beim Client als auch beim Server.
Das Spiel ist schnell, wirklich schnell, genauso wie in den guten alten Zeiten. Neben 20 verschiedenen Spielmodi existieren auch noch mehr als 150 offizielle Karten, 7 Waffen, ein toller Soundtrack und ein bemerkenswertes Feature, neue Karten mit mehreren Spielern gleichzeitig online zu erschaffen. Von all den Spielen auf dem Server ist es jedoch am “unfreisten”. Richard Stallman wird es vermutlich nie spielen. Die Spielengine und damit der Server ist zwar unter einer freien Lizenz verfügbar, große Teile der Mediendateien jedoch nicht.
Dennoch glaube ich, dass Sauerbraten eine Chance verdient hat, da das Spiel nicht nur die Möglichkeit bietet neue freie Inhalte zu schaffen, sondern auch schon Projekte wie Red Eclipse inspiriert hat, deren Medieninhalte unter freien Lizenzen stehen.

Der Sauerbraten-Client

aptitude install sauerbraten
Die Spielanforderungen von Sauerbraten sind moderat. Eine 1-GHz-CPU, 256MB RAM und eine Geforce 4 MX sollten es mindestens sein. Wer jemals einen Ego-Shooter gespielt hat, kennt das grundlegende Prinzip. So lässt sich auch Sauerbraten mit den W-A-S-D-Tasten steuern, mit Space springt der eigene Avatar, mit der linken Maustaste wird geschossen und mit kreisenden Mausbewegungen das Sichtfeld geändert.
Danach sind noch erwähnenswert:
R – Sollte man trotz aller Versuche in einer Ecke zu campen über die Flagge gestolpert sein, dann kann man sie mit einem Druck auf R wieder fallenlassen. 😉
T – öffnet den Chat. Auf einem öffentlichen Server ohne AUTH kann man mit der Eingabe von /setmaster 1 Masterrechte erlangen. Dazu gleich mehr.
E – Startet den Bearbeitungsmodus, in dem es möglich ist, innerhalb des Coop-Edit-Modus mit mehreren Mitspielern gleichzeitig eine Karte zu verändern oder neuzugestalten! Auf ogros.org gibt es eine nette Übersicht zu einer (englischen) Videoanleitung zum Thema.
Mehr ist wirklich nicht notwendig, um in das Spiel einsteigen zu können.

Serverbrowser und das Menü

Das Spielmenü und insbesondere der Serverbrowser könnten übersichtlicher gestaltet sein. Es gibt jedoch die Möglichkeit ein eigenes zu erstellen, wie dieser Artikel auf ogros.org beschreibt. Da die Voreinstellungen gut sind und man intuitiv in das Spiel findet, muss man sich hier nicht lange aufhalten. Unter Keys lassen sich die Tastenbelegungen ändern.

Cube Server Lister

Ich hatte den Cube Server Lister schon an anderer Stelle erwähnt. Wer sich mit dem normalen Serverbrowser nicht anfreunden kann, sollte sich die Zeit nehmen und der Anleitung folgen, wie man sich ein eigenes CSL-Debianpaket erstellen kann. Mit diesem Hilfsprogramm, dass unter der GPL veröffentlicht worden ist, lassen sich Details zu allen Cube-2-Servern anzeigen und mit einem Doppelklick auf den Servernamen des jeweiligen Spiels tritt man einem Spiel bei.

Spielmodi

Sauerbraten bietet ein Wiki mit einem Multiplayer Guide und eine umfangreiche Dokumentation.
Im Mehrspielermodus gehört man entweder dem guten oder dem bösen Team an. Mit leisen Zwischentönen halten wir uns natürlich nicht auf. Unabhängig davon gilt: Die roten Spieler sind immer die Gegner und mit den blauen spielt man in einem Team zusammen.
In Sauerbraten gibt es sieben verschiedene Waffen: Doppelläufige Schrotflinte, Minigun, Gewehr, Raketenwerfer, Granaten, Pistole, Fäuste/Kettensäge. Dazu lassen sich in den meisten Modi Gesundheit, Rüstung und Munition aufsammeln.
Das Spiel bietet zur Zeit 20 verschiedene Spielmöglichkeiten und in der aktuellen Entwicklerversion stehen schon weitere parat. Neben dem klassischen Free For All (FFA) und InstaGib, wo es einfach nur um “Jeder gegen Jeden” geht, gibt es natürlich auch noch Fahnenraub (alias Capture the Flag). Mir persönlich gefällt “Regen Capture” ziemlich gut, wo man auf einer relativ großen Karte verschiedene Punkte kontrollieren muss. An einer eroberten Station erhält man Waffen, Leben und Punkte. Dieser Modus ist auch mit sehr vielen Spielern noch interessant und sehr dynamisch.
Der Screenshot zeigt eine Szene aus einem Spiel mit dem Modus “Regen Capture”. Außerdem erkennt man an der Servernachricht, dass der Server gepatcht wurde.

Coop-Edit-Modus

Auf meinem offenen Server wird sehr oft der Coop-Edit-Modus genutzt. Hier lassen sich gemeinsam mit anderen Spielern bestehende Karten modifizieren oder komplett neue erstellen. Die oben erwähnte Anleitung zum Kartenbau oder ein Blick auf die Wiki-Seite Mapping and Editing ist ein guter Start in die Materie. Das Wichtigste: Wenn ihr einem Server beitretet, auf dem an einer neuen Karte gearbeitet wird, einfach /getmap in den Chat schreiben und ihr seht den aktuellen Stand vor euch. Hier sind ein paar Screenshots von einer Coop-Edit-Sitzung auf dem Server.
In Natenoms Blog findet ihr unter anderem ein cooles Video zu einer selbst erstellten Karte, die eine in sich geschlossene kleine Stadt darstellt. Da steckt sicher eine Menge Arbeit drin.

Musik

Sauerbratens instrumentaler Metalsoundtrack stammt von Marc A. Pullen, lässt sich auf last.fm herunterladen und befindet sich selbstverständlich auch im OGG-Format in /usr/share/games/sauerbraten/fanatic/.

Der Sauerbraten-Server

Aufgrund des besonderen Client-Server-Modells ist der Sauerbraten-Server sehr leichtgewichtig. Der Speicherverbrauch liegt bei 2-3 MB RAM auf einem 64bit-System und auch die CPU-Anzeige von htop habe ich selbst bei einem vollen Server noch nie über 1% springen sehen. Im Gegensatz zu vielen anderen Mehrspieler-Spielen ist es bei Sauerbraten nicht notwendig, dass Server und Client sich permanent über Treffer und Aktionen austauschen, was es erlaubt die wesentlichen Funktionen des Servers auf ein Minimum zu beschränken. Dadurch bleibt das Spiel selbst bei hohen Pings noch spielbar. Auf der anderen Seite macht es Sauerbraten gegenüber Cheatversuchen auch verwundbarer, was durch die Open-Source-Natur des Spiels noch begünstigt wird.

Die Authentifizierung

Sauerbraten begegnet diesem Problem mit einer ungewöhnlichen, aber nachvollziehbaren Entscheidung. Da selbst die populärsten proprietären Spiele mit einem Stab von bezahlten Entwicklern keinen vollkommenen Schutz gegen jede Art von Manipulationsversuch bieten können, haben die Entwickler die Verantwortung und Kontrolle an die Spielgemeinschaft zurückgegeben. Auf jedem Server kann ein Spieler sogenannter “Master” werden und Verstöße mit einem Bann vom Server bestrafen. Die Funktion wird entweder über das Spielmenü oder durch Eingabe von /setmaster 1 im Chat (Taste t) aufgerufen.
Sauerbraten-Server kennen im Wesentlichen zwei Arten von Autorisation: Mit Auth-Schlüssel und ohne.

  • Auth-Schlüssel. Durch den Hauptentwickler des Spiels werden sogenannte Auth-Schlüssel vergeben, mit denen vertrauenswürdige Spieler auf jedem Server mit Auth-Status Master werden können.
  • Öffentliche Server. Jeder kann dem Server beitreten. Diejenige, welche zuerst /setmaster 1 in den Chat eingibt, erhält den Master-Status.

Von diesen beiden Formen der Registrierung ist der Administrator des Server mit seinem Admin-Passwort jedoch nicht betroffen. Er kann jederzeit mit /setmaster und der anschließenden Eingabe des Admin-Passworts selbst dann zum Master werden, wenn diese Rechte schon an einen anderen Spieler vergeben worden sind.
Für mein Projekt habe ich mich für einen öffentlichen Sauerbraten-Server entschieden, auf dem jeder Master werden kann. Zusätzlich ist es möglich den Server so zu sperren, dass zwar weiterhin Spieler beitreten können, diese aber nur zuschauen und den Chat mitlesen dürfen. (L=Locked)

Installation und Konfiguration

aptitude install sauerbraten-server
Zur Inbetriebnahme des Servers ist es sinnvoll einen unprivilegierten Benutzer mit adduser anzulegen, z.B. sauerbraten. In dessen Home-Verzeichnis wird die zentrale Konfigurationsdatei server-init.cfg erstellt. Die verfügbaren Einstellungsmöglichkeiten sind überschaubar, was es einfach macht sich zurechtzufinden. Es ist sinnvoll die Shell des Benutzer auf /bin/false zu setzen.
chsh sauerbraten -s /bin/false
Das Programm lässt sich am besten in einer Screen-Sitzung starten. Hierzu erstellt man eine ausführbare Datei start.sh mit folgendem Inhalt.

#!/bin/sh
while true
do
/usr/games/sauerbraten-server -q/home/sauerbraten
echo "server abgestuerzt am `date`" > letzter_crash.txt
done

Den Server kann man danach auf diese Weise starten:
su sauerbraten -s /bin/dash -c "screen -m -d -S ffa_sauer sh start.sh"
Sollte es tatsächlich zu einem Absturz kommen, sorgt die While-Schleife automatisch für den Neustart und für einen kurzen Vermerk in der Datei “letzter_crash.txt”. Sauerbraten läuft sehr stabil. Bei einer Uptime von > 30 Tagen kam es jedoch auch schon zum Crash. Die oben genannte Konfiguration sorgt dann dafür, dass der Server nur wenige Sekunden nicht erreichbar ist.
Schließlich lässt er sich auch über eine Cron-Reboot-Aktion bei einem Neustart hochfahren. In /etc/crontab steht deswegen
@reboot sauerbraten screen -d -m -S ffa_sauer sh /home/sauerbraten/start.sh
Der Port des Servers lässt sich ändern. Wer eine Firewall betreibt muss den Standardport 28785 und 28786 freigeben. Spielt man im LAN gilt das auch für Port 28784. Allgemein gesprochen: Gebt immer Port und Port+1 frei und im LAN zusätzlich noch 28784.

Modifikationen

Ich betreibe den Server, so wie ihn Debian und auch Ubuntu ausliefern, ohne jede Form von Modifikation. Es gibt verschiedene Projekte, die die Standardfunktionen erweitert haben, jedoch weiterhin kompatibel zum Original sind. Neue Merkmale sind unter anderem veränderte Statistikanzeigen im Spiel, neue Kontrollmöglichkeiten durch den Admin und Integration mit IRC. Maßgeblich sind das die Projekte XSBS und Hopmod. Ebenfalls erwähnenswert ist Bandnudel, ein Skript um Statistiken für den Server zu erstellen. Da ich diese Modifikationen nicht benutze, seid ihr hier auf euch allein gestellt.
Des Weiteren bietet der gesamte Webauftritt des Ogros-Clans einen guten Überblick, was man mit selbst erstellen Servermodifikationen erreichen kann. Leider werden diese im Gegensatz zum Cube-Server-Lister, der ebenfalls von dort stammt, nicht frei zur Verfügung gestellt.

Screenshots

Hier sind ein paar Screenshots. Viele weitere gibt es hier.

Links

Bastion und das Humble Indie Bundle V

Das letzte Bundle war sein Geld auf jeden Fall wert und besänftigte meinen (sehr) leichten Unmut über die vorangegangene Aktion. Nein wirklich, es gab beim Humble Indie Bundle V nicht viel zu meckern. Das sahen wohl auch die meisten Käufer so, denn mit 599.001 verkauften Bundles war es die bisher erfolgreichste Aktion.
Und wer hat nun alle Spiele schon durchgespielt? Die alten auch? Ok, dann hake ich nicht weiter nach. Ich habe mich auf Bastion konzentriert und mir zumindest vorgenommen Psychonauts (ein Spiel von Monkey-Island-Tim-Schafer. Cool.) und Limbo näher anzuschauen. Weiterhin gab es auch noch:

Den Rest hatten wir schon. Bei so vielen Spielen musste ich Prioritäten setzen und nahm mir schließlich Bastion vor. Bei der Installation fiel mir gleich der Nixstaller auf, den ich bis dato noch nicht kannte. Sicherlich eine gute Alternative, wenn man nicht für jedes Unix-artige System ein eigenes Paket schnüren möchte. Die Installation verlief mit Debian Sid problemlos.


Bastion selbst fällt in die Kategorie der Action-Rollenspiele. Wer an Diablo denkt, weiß wovon ich rede. Man schlüpft in die Rolle von “the Kid”, eines Jungen, der auf einer Plattform in einer nach einer Katastrophe zerstörten Welt erwacht, die sich als die Bastion herausstellen soll. Begleitet wird man von der englischen “Cowboystimme” des Erzählers Rucks, der jede Aktion von “the Kid” kommentiert.
Die Grafik des Spiels hat mir auf Anhieb gefallen. Alles wirkt handgezeichnet, ist fantasievoll und einfach schön gestaltet. Man spielt das Spiel aus einer isometrischen Draufsicht. Dabei setzt sich der Boden während man in eine Richtung läuft unter den Füßen des Protagonisten zusammen. Die Handlung spielt zuerst auf einer schwebenden Plattform, wo man dem Erzähler zum ersten Mal begegnet. Dieser schickt einen dann auf die Reise zu anderen fliegenden Orten, wo man entweder seine neu entdeckten Waffen in einer Art Parkour ausprobieren kann und als Preis Gegenstände und Fragmente erhält oder gegen missliebige Gegner Hand Hammer anlegen muss.


Die Fragmente sind das Bezahlmittel des Spiels, welches von Gegnern und Kreaturen fallengelassen wird, denen sich “the Kid” entgegenstellt. Hier sind wir dann wieder bei einem typischen Rollenspielelement. Nach jeder Mission erhält man einen Gegenstand, mit dem sich Gebäude errichten lassen, aus denen wiederum Tränke oder weitere Aufwertungen gekauft werden können.
Gut gelungen ist auf jeden Fall das Kampfsystem mit Spezialangriffen, die man planvoll einsetzen muss und die dazu erstellten Animationen. Die Musikuntermalung trägt das Spiel und ist stimmungsvoll. Der Soundtrack ließ sich sogar extra herunterladen und ist sein Geld auf jeden Fall wert. Die Handlung selbst hat mich nicht besonders in den Bann gezogen, aber da jede andere Facette des Spiels bis zur vollständigen Linuxkompatibilität hervorragend umgesetzt wurde, kann ich jedem das Spiel nur ans Herz legen. Insgesamt war es ein wirklich tolles und interessantes Bundle.

Tetrinet: Tester gesucht

Es müssen ja nicht immer nur Ego-Shooter sein, dachte ich mir und bin auf der Suche nach internetfähigen Spielen über Tetrinet gestolpert. Ich denke bei Tetris werden Erinnerungen wach. In Russland fing alles an, ich habe es zum ersten Mal anno dazumal auf dem Gameboy in schwarz-weiß gespielt und ich wette ohne nachgeschaut zu haben, dass man es als App für Smartphone X irgendwo in 10 verschiedenen Varianten herunterladen kann.
So viel sei verraten, Tetrinet bringt das Spiel zu neuen Höhen und erweitert den Spaß um den Faktor Mehrspieler und Internet. Bis zu sechs Spielerinnen und Spieler können gemeinsam gegeneinander oder in Teams antreten. Das Besondere an dem Spiel ist, dass durch erfolgreiches Abräumen neue Bausteine freigeschaltet werden, mit denen man zu Gunsten oder Ungunsten seiner Mitspieler in das Spiel eingreifen kann.

Das ist gtetrinet, der Gnome-Klient. Ihr startet das Programm, klickt auf “Verbinden” und gebt als Server linuxiuvat.de ein und wählt einen beliebigen Spielernamen. Anschließend befindet ihr euch auf dem Spielfeld und könnt als nächstes den Partyraum (Chat) betreten oder die Gewinnerliste anschauen. Ich denke die restlichen Feature finden sich recht schnell. 😀
Wenn es einen Client gibt, existiert natürlich auch ein Server. Womit wir bei TetrinetX angekommen sind. Sollte die Resonanz positiv sein, stelle ich das Debian-Paket irgendwann genauer vor. Es bringt auf jeden Fall vom Init-Skript, über sauber kommentierte Konfigurationsdateien bis hin zur separaten Logdatei in /var/log alles mit, was man sich als Admin wünschen kann.
Moment, Moment natürlich gibt es auch einen Tetrinet-Client für die Konsole mit dem Namen…Tetrinet-Client.

Ich will nämlich nicht verschweigen, dass gtetrinet fast die gesamte Gnome-Desktopumgebung als Abhängigkeit zieht (ich übertreibe, aber auch nur fast). Für alle Retrozocker, die auch noch über einen Laptop aus dieser Zeit verfügen eine sehr ressourcensparende Alternative. Außerdem besitzt tetrinet-client ein interessantes Feature, was manche vielleicht als Cheat bezeichnen würden. Ich empfinde die grafische Andeutung, wo der Spielstein landen wird, auf jeden Fall als sehr nützlich.

Ihr verbindet euch zu meinem TetrinetX-Server, indem ihr tetrinet-client von der Konsole wie folgt aufruft.

tetrinet-client EuerSpielname linuxiuvat.de

Einfach oder nicht?
Auf was ich hinaus will und der Titel andeutungsweise schon erahnen lässt. Ihr müsst den Server testen und das Spiel wiederbeleben. 🙂 Tetrinet gab es schon vor mehr als einer Dekade, wovon die vielen Internetadressen a la tetrinet.TLD zeugen. Mittlerweile ist das Spielerfeld ein wenig ausgedünnt.
Deswegen mein Angebot: Wenn in den nächsten Wochen sich die Gewinnerliste ein wenig füllt, bastle ich noch eine Siegerliste auf linuxiuvat.de und nehme den Server offiziell in die Reihen der Spiele auf. Falls nicht, tja, dann seid ihr dran Schuld, dass ich ein weiteres Killerspiel installieren muss. 😈

Pyqscore: Spielstatistiken für OpenArena erstellen

Zurück zu meinem Steckenpferd. Im folgenden geht es darum, wie man aus einer Logdatei für OpenArena eine sinnvolle Spielstatistik erstellen kann. OpenArena ist kurz gesagt ein modifiziertes Quake3 mit Medieninhalten, die vollständig unter einer freien GPL-Lizenz stehen. Für meinen öffentlichen OpenArena-Server habe ich mich für Deathmatch entschieden, da ich das Gefühl hatte, die meisten Spieler bevorzugen diesen Spielmodus.
Ein weiterer Vorteil ist sicherlich, dass “Jeder-gegen-Jeden” am einfachsten zu überwachen ist, denn im Prinzip geht es nur darum, dass Spieler X Spieler Y fraggt und alles ein Zeitspiel ist.
Es gibt verschiedene Werkzeuge und Programme, die einem beim Erstellen von Statistiken helfen können. Im Grunde läuft es aber immer auf das Parsen der Logdatei heraus. Das OpenArena-Wiki führt hier z.B. VSP, AEstats oder oastats an.
Für mich war nur eine Sache klar. Ich wollte keinen zusätzlichen Datenbank-Server. Irgendwie erschien mir das nicht die richtige Lösung zu sein, um eine einzelne Logdatei zu parsen.
Der Gewinner war schließlich Pyqscore.
Pyqscore ist ein in Python geschriebenes Programm, dass die Datei games.log analysieren kann und zusätzlich noch einen Cache benutzt, damit schon zuvor analysierte Werte nicht noch einmal ausgewertet werden müssen.
Das ursprüngliche Skript pyqscore.py habe ich auf meinem Server in /usr/local/bin abgespeichert. Es wird täglich mit Hilfe von Cron ausgeführt. Erwähnt hatte ich es schon bei meinem Cron- und Logrotate-Beispiel.
Jeden morgen wird deswegen die zuvor mit Logrotate rotierte Datei games.log.1 ausgewertet und als daily.htm abgespeichert. Mit Hilfe von cat addiere ich alle täglichen Logdateien in die Datei monat.log, worüber ich dann ein leicht modifiziertes Pyqscore ausführen lasse, dass die Statistik des Monats wiederum in der Datei monthly.htm abspeichert.
Für die täglichen Statistiken benutze ich dieses Skript

#!/bin/sh
# Tägliche Statistiken mit pyqscore erzeugen, im HTML-Format ausgeben und mit tidy säubern
set -e
Base="/var/games/openarena-server/.openarena/baseoa/"
cd $Base
if [ -f games.l_cache.p ]; then
        rm games.l_cache.p
fi
/usr/local/bin/pyqscore.py games.log.1
/usr/bin/tidy -utf8 -m -q daily.htm || true

Hier wird jeden Tag in das entsprechende Verzeichnis gewechselt und der alte Cache gelöscht. Das ist notwendig, weil Pyqscore bei einer größeren Logdatei den Cache zum schnelleren Analysieren heranzieht, bei kleineren Logdateien aber eine komplett neue Cache-Datei anlegt.
Damit keine Fehler entstehen, lösche ich den Cache bei der täglichen Statistik. Anschließend wird nur noch die games.log.1 ausgewertet und mit Hilfe von Tidy gesäubert.
Ein anderes Skript kopiert dann automatisch die erzeugte daily.htm in das Webserver-Verzeichnis.
Für die monatlichen Statistiken verfahre ich so:

#!/bin/sh
# Monatliche Statistiken mit pyqscore erzeugen und im HTML-Format ausgeben
set -e
Today=`/bin/date +%d`
Month=`/bin/date -d "last month" +%m`
Year=`/bin/date +%y`
Base="/var/games/openarena-server/.openarena/baseoa/"
if [ $Today -eq 02 ]; then
        rm ${Base}monat.log
        cp ${Base}monthly.htm ${Base}${Year}${Month}_stats.htm
fi
cd $Base
cat games.log.1 >> monat.log
/usr/bin/nice -19 /usr/local/bin/pyqscore_mon.py monat.log
/usr/bin/tidy -utf8 -m -q monthly.htm || true

Ok, hier werden folgende Sachen überprüft. Am Morgen jedes zweiten Tages im Monat wird die alte Datei monat.log gelöscht und die Auswertung beginnt von vorne. Ich sichere danach die alte Datei monthly.htm.
Ursprünglich hatte ich daran gedacht, so etwas wie eine “Siegerehrung” zu machen, also eine Extraseite mit den ersten Plätzen. Sollte tatsächlich jemand das Bedürfnis nach einer solchen Seite haben, kann ich das nun immer noch nachtragen. 😉
Ansonsten wird die tägliche Logdatei an die monatliche angehängt und ausgewertet und das ganze wieder mit Tidy ordentlich aufbereitet. Damit ich nicht permanent E-Mails von Cron mit Fehlermeldungen erhalte, erzwinge ich den Exit-Status von Tidy mit “true”. Ansonsten kann man jeden Tag lesen, dass die ursprüngliche HTML-Datei Fehler enthalten hat.
Das war es im Prinzip auch schon. Der Vorteil von Pyqscore liegt darin, dass man statische HTML-Seiten mit Statistiken erhält ohne zuvor eine Datenbank installiert zu haben. Bei einem Projekt, wo es um jedes MB Arbeitsspeicher geht, sicher ein Vorteil.
Ich habe Pyqscore an meine Bedürfnisse angepasst. Im Laufe der Zeit sind mir bisher ein paar kleinere Schwächen aufgefallen, die ich versucht habe zu beseitigen. Für alle Interessierten biete ich Pyqscore hier zum Download an.

Fünf coole Linuxspiele und ein Gewinner

Ich schreibe die ganze Zeit von der Konfiguration des Servers, da das wirklich unzählige interessante Aspekte sind, aber wo sind bitte schön die ganzen Spiele? Wer sich mal selbst an so ein Projekt wagt stellt bald fest, dass es gar nicht so schwer ist einfach mal ein Spiel zu installieren. Doch es fängt schon damit an, dass ein Ego-Shooter wie z.B. OpenArena mehrere Spielmodi anbietet, unzählige Servervariablen und dazu noch Dutzende weitere Server existieren, die genau den selben Fokus haben. Wie schafft man es also, dass das ganze nicht zu einem rein akademischen Projekt ohne Praxisbezug verkommt und tatsächlich irgendwann Leute auf dem Server spielen?
Ich brauchte eine Weile bis ich herausgefunden hatte, was die Spieler eigentlich wollen. Zumindest bin ich mit den bisherigen Einstellungen zufrieden. Eine Garantie für dauerhaften Erfolg ist es natürlich nicht. Kurzum man muss auch Zeit in das Spiel selbst investieren und kann sich nicht nur auf die Administration beschränken.
Da mittlerweile mehr als zwei Monate seit dem Start des Projekts vergangen sind, wird es Zeit auch mal die Spiele zu nennen, die es bisher auf meinen vServer geschafft haben.
Das sind OpenArena, Cube2:Sauerbraten, Teeworlds und XPilot NG.
Doch bevor ich etwas mehr über die bisherigen Favoriten erzähle, wollte ich noch ein paar potentielle Ego-Shooter-Kandidaten vorstellen, die es zwar nicht geschafft haben, weil sie die Kriterien für meinen Spieleserver nicht erfüllt haben, aber auf jeden Fall spielenswert sind.

AlienArena


AlienArena wurde vor acht Jahren zum ersten Mal veröffentlicht und noch immer orientiert es sich am klassischen Science-Fiction-Genre mit dazu passendem Look. Sowohl Spielermodelle und Waffen als auch Texturen und Objekte rufen einen zurück in die Welt der althergebrachten und oft auch etwas trashigen Alienfilme mit Marsianern und ihren übergroßen Köpfen. Die Effekte und Texturen sind detailreicher als bei OpenArena, die Atmosphäre ist dunkel und düster.
AlienArena basiert sowohl auf der Quake II als auch der Quake III Engine, die beide von id Software unter der GPL veröffentlicht wurden.
Der Hauptgrund warum es AlienArena nicht geschafft hat: Man darf das Spiel nur ohne Modifikationen weiterverbreiten und unter dem gleichen Namen, was in Debian gleichbedeutend mit “unfrei” ist. Außerdem habe ich mit OpenArena schon ein 100 % freies Spiel gefunden, das auf der Quake III Engine basiert.
Verschiedene Spiele haben unterschiedliche Wege eingeschlagen um sicherzustellen, dass ihr “Markenkern” unangetastet bleibt und Entwickler bei dem Projekt bleiben und es nicht abspalten. In einem späteren Artikel möchte ich näher auf diese Unterschiede eingehen und herausfinden, welche Wege FOSS-Spiele gehen, warum manche 100% frei sind und andere eben nicht und was das für den jeweiligen Erfolg bedeutet hat. Doch für das hier und jetzt heißt es erst einmal zu sagen:
Cooles Spiel, aber kein Gewinner.

Nexuiz


Nexuiz war zuerst in jeder Hinsicht der totale Gewinner. Das Spiel basiert auf einer stark modifizierten Form der ursprünglichen Quake-Engine, die allgemein unter dem Namen Darkplaces-Engine bekannt ist und als Freie Software vorliegt. Nexuiz hat exzellente grafische Effekte, darunter sehr detailreiche Licht- und Partikeleffekte. Texturen und Waffenmodelle sind äußerst sehenswert. Das Beste von allem ist, sie sind ebenfalls unter freien Lizenzen verfügbar.
Das Gameplay selbst ist hart und schnell, wie man das eben aus alten Tagen kennt. Auch das Drum-Herum ist schön gemacht. So gibt es z.B. ein Einführungsspiel mit Tutor und passender Anleitung, das einem sowohl Waffen als auch Bewegungen erklärt.
Der Haken an dem Spiel liegt an den vor zwei Jahren stattgefundenen Entwicklungen in der Nexuiz-Gemeinschaft. Die beiden wichtigsten Programmierer und Anführer, darunter der Macher der Darkplaces-Engine, verließen das klassische Nexuiz-Projekt. Die Rechte an dem Namen Nexuiz wurden an IllFonic verkauft, welches dieses Jahr ein Nexuiz-Remake auf Basis der CryEngine3 für Konsolen auf den Markt gebracht hat.
Große Teile der Nexuiz-Gemeinschaft waren von dieser Entwicklung nicht begeistert und haben daraufhin die Arbeit an Xonotic begonnen, dass die bisherige Arbeit an Nexuiz fortführen soll.
Da Nexuiz kaum noch weiterentwickelt wird und die Zukunft Xonotic gehört, habe ich mich schließlich gegen das Spiel entschieden.

Tremulous


In Tremulous geht es wieder einmal um das klassische Feindbild Aliens gegen Menschen. Das Spiel basiert auf der Quake3-Engine unterscheidet sich aber deutlich von seinem großen Vorbild, indem es die Ego-Shooter-Komponente um einen strategischen Aspekt erweitert. Jede der beiden Fraktionen hat die Fähigkeit Strukturen zu errichten, die für die Verteidigung der eigenen Basis und sogar den gesamten Spielerfolg unabdingbar sind. Hat das gegnerische Team nämlich all diese Objekte zerstört, endet das Spiel. Faszinierend ist auch, dass die Aliens die Fähigkeit besitzen sich an Wänden und Decken festzuhalten. dort entlang zu klettern und damit tatsächlich das Gefühl entsteht als sei man selbst der Hauptdarsteller in einem der besten SciFi-Filme aller Zeiten.
Nachdem ich die Probleme mit dem OpenArena-Server und der “getstatus”-Attacke per Fehlerbericht an Debian gemeldet hatte, stellte sich heraus, dass Tremulous ebenfalls gefährdet war. Daraufhin bot ich dem Paketverwalter an den Patch zu testen. Der Server lief äußerst stabil, zog aber kaum Aufmerksamkeit auf sich. In der Regel finden alle Schlachten auf einigen ausgewählten Servern statt.
Das Hauptproblem bei Tremulous sehe ich in der geringen Bereitschaft der Upstream-Entwickler kleinere Updates zu veröffentlichen. So datiert die aktuelle stabile Version immer noch von 2009. Dieses Zögern verhindert zum einen, dass ein fünf Jahre alter Bug beseitigt werden kann, der Tremulous sogar Einlass in Debians “Main”-Repos verschaffen würde und zum anderen werden Sicherheitslücken wie die “getstatus”-Attacke nicht zeitgerecht beseitigt.
Wenn es da draußen jemanden gibt, der Tremulous gerne weiterhin in Debian und seinen Derivaten sehen will, solltest du dich nun beeilen. Wahrscheinlich schon nächste Woche wird der momentane Paketverwalter beantragen, dass Tremulous aus Debian entfernt wird, weshalb auch dieses interessante Spiel es nicht längerfristig auf meinen Server geschafft hat.

Warsow


Dann wäre da noch Warsow. Während viele Actionspiele versuchen so realistisch wie möglich zu wirken, hat sich die Gemeinschaft rund um Warsow entschlossen auf comichafte Grafiken zu setzen, die mit Hilfe von Cel Shading erzeugt werden. Die Grafikengine basiert auf einer modifizierten Form der Quake-II-Engine namens QFusion.
Genauso wie in Nexuiz gibt es ein einsteigerfreundliches Tutorial, das grundlegende Spieltechniken und Bewegungen erklärt. Warsow legt insbesondere viel Wert auf “Movement”, sprich Sprünge und flüssige Bewegungsabläufe sind ein wesentlicher Schwerpunkt des Spiels. Interessant sind vor allem sogenannte “Wall Jumps”, mit denen die Spielfigur sich auch von Wänden abstoßen kann und somit neue Abkürzungen und Spielmöglichkeiten entstehen. Erwähnenswert ist auch die Einteilung von Munition in schwache und starke.
Das Spiel hat mir gut gefallen, hat sich aber auch nicht durchsetzen können, da es zum einen kürzlich aus den Debian-Repos wegen fehlender Betreuung durch den Paketverwalter entfernt wurde und zum anderen genauso wie Urban Terror oder Alien Arena nicht vollständig als Freie Software vorliegt.

Xonotic

Xonotic ist der direkte Nachfolger des klassischen Nexuiz und wurde auf Grund der oben beschriebenen Differenzen der Gemeinschaft mit den beiden Gründern von Nexuiz ins Leben gerufen. Das Spiel steht vollständig unter der GPL und verwendet weiterhin die Darkplaces-Engine. Es ähnelt in Optik und Gameplay natürlich Nexuiz, setzt jedoch auch eigene Akzente. So werden unter anderem nach und nach Texturen und Spielermodelle verbessert und sogar Fahrzeuge verfügbar sein.
Wirklich bemerkenswert ist aber der Ansatz ein zentrales System zu implementieren, welches jeden Spieler per sicherer Authentifizierung einzigartig erkennbar macht. So können dadurch serverübergreifend Statistiken realisiert werden, aber auch Spieler per ID serverweit bei Verstößen gebannt werden. Die relevante Bibliothek nennt sich d0_blind_id.
Xonotic befindet sich weiterhin in einer Betaphase, ist aber spielbar. Erst seit letztem Monat gibt es erste Bemühungen Xonotic in Debian verfügbar zu machen und ein genauer Plan wurde aufgezeigt, welche Schritte nach und nach erledigt werden müssen. Es sieht demnach aus, dass Xonotic Nexuiz bei Debian irgendwann ablösen wird.
Sobald das Spiel in Debian verfügbar ist, werde ich einen Server aufsetzen. Probleme sehe ich derzeit nur wegen des Ressourcenverbrauchs. Hier muss ich schauen, ob der kleine vServer dieses Spiel noch aufnehmen kann, ohne dass andere Spiele darunter leiden.
Schaut euch den coolen Xonotic-Trailer an, wenn ihr einen ersten Spieleindruck bekommen wollt. Mehr Bilder und Videos gibt es auf xonotic.org. (Ja, das ist tatsächlich ein 100% freies Spiel) 🙂

Fazit

Ego-Shooter sind zwar nicht für jeden das richtige Genre. Linux bietet aber Dank id Software und einer Menge Freiwilliger eine Vielzahl an ausgezeichneten Spielen an. Wirklich jedes hier erwähnte Spiel unterscheidet sich sowohl in der Optik als auch im Gameplay und man kann tatsächlich von jeweils eigenständigen und herausragenden Kreationen sprechen.
Dass das noch nicht alles war ist ja klar. (Aber irgendwann ist auch mal Redaktionsschluss). Neben Xonotic favorisiere ich zur Zeit noch Redeclipse als weiteren Kandidaten für den Spieleserver. Dranbleiben. 😉

Sauerbraten: Cube Server Lister für Debian und Ubuntu kompilieren

Für Cube2: Sauerbraten gibt es ein nettes, grafisches Programm, mit dem sich Sauerbraten-Server überwachen lassen. Es existiert eine Übersicht sowohl über die Anzahl der Spieler, den Serverstatus, diverse Variablen und auch eine Mapvorschau gibt es. Mit einem simplen Mausklick kann man sich mit dem Server verbinden.


Kleiner Haken. Der Cube Server Lister wurde schon länger nicht mehr aktualisiert und es gibt keine offiziellen Debian- und Ubuntu-Pakete. Als Alternativen bieten sich zum einen die Trunk-Version oder ein Projekt auf GitHub an, welches CSL so gepatcht hat, dass es mit der aktuellen Justice-Version von Sauerbraten funktioniert.
Wenn man von dort die Quellen heruntergeladen hat, muss man nur noch der Anleitung auf ogros.org folgen, dort wo der Cube Server Lister auch von “WahnFred” entwickelt worden ist.

Die Kurzfassung

  1. aptitude install automake libtool libglib2.0-dev intltool g++ libwxgtk2.8-dev
  2. svn co http://cubelister.svn.sourceforge.net/svnroot/cubelister/trunk csl-svn
  3. In das csl-svn-Verzeichnis wechseln.
  4. make -f Makefile.cvs (bei der GitHub-Version nicht notwendig)
    ./configure
    make
    sudo make install

The Debian Way

Besser ist es natürlich direkt Deb-Pakete zu erstellen. Zuvor müssen die Quellen debianisiert werden.
Ihr müsst nur den Schritten in dem alten Beitrag folgen und das Quellverzeichnis richtig umbenennen (z.B. csl-0.81 und csl_0.81.orig.tar.gz) und das .orig.tar.gz-Archiv erstellen. Anschließend wechselt ihr in das Verzeichnis und führt dh_make aus. (Paket dh-make muss installiert sein. )
Das Paket lässt sich dann mit
dpkg-buildpackage -rfakeroot -us -uc
bauen und mit
dpkg -i csl_0.81-1_i386.deb
installieren.
Anmerkung:
Ich musste noch zwei Zeilen in /po/POTFILES.in nachtragen, bevor sich das Debian-Paket kompilieren ließ.

./src/engine/CslCharEncoding.cpp
./src/engine/CslCharEncoding.h

Es erwarten euch noch eine Reihe von Aufgaben, bevor ihr tatsächlich dieses Paket in die offiziellen Repos hochladen dürft. Für eine lokale und private Version reichen diese Schritte aber aus.
Der Cube Server Lister lässt sich schließlich mit csl starten. Unter Einstellungen müsst ihr noch den Pfad zur ausführbaren Sauerbraten-Datei setzen (/usr/games). Um ein Update vom Masterserver zu bekommen, einfach F5 drücken.

Urban Terror: Warum frei nicht immer frei ist


Wie will man wissen, was gut ist, wenn man nichts Schlechtes kennengelernt hat? Bevor ich meine derzeit installierten Spiele auf dem Spieleserver vorstelle, wollte ich ein paar Worte darüber verlieren, warum Urban Terror für mein kleines Projekt nicht funktioniert.
Urban Terror ist kein Unbekannter. Frei heraus gesagt: Zu jeder Tageszeit spielen zwanzigmal mehr Menschen Urban Terror als OpenArena. Es gibt E-Sport-Ligen und es existieren mehr als 1000 verschiedene Server. Allein das große Interesse an diesem Spiel macht es für jeden Spieleserver interessant.
Meine erste Begegnung mit Urban Terror liegt schon Jahre zurück. Damals lernte ich es während einer Netzwerkparty unter dem Motto kennen: “Hey, das ist der Mod zu Quake3, der sich genauso wie Counter Strike spielt.” An dem Spielprinzip hat sich seitdem natürlich nichts geändert. Das rote Team gegen das blaue Team. Terroristen gegen Polizei. Gut gegen Böse.

Ich denke es gibt kaum jemanden, der schon einmal einen klassischen Ego-Shooter gespielt und noch nie von Counter Strike oder Urban Terror gehört hat. Das Spiel ist taktisch geprägt. Die Bewegungen der Spielfigur sind eher realistisch, man kann sogar bluten und wird dadurch verlangsamt. Die Wahl der Waffen spielt eine entscheidende Rolle. Nicht das Vernichten beliebiger Spieler, sondern das Entschärfen von Bomben und planvolle Vorgehen mit anderen steht im Vordergrund.
Die Grafik war sicher vor Jahren auf der Höhe der Zeit. Heutzutage gibt es natürlich mehr Details und Formen. Für mich war das aber noch nie das entscheidende Argument. Urban Terror eignet sich durch die Spieldynamik hervorragend als Mehrspielerspiel und hat eine weiterhin aktive Gemeinschaft.
Wo ist also das Problem? Zum einen gibt es kein Debianpaket. Die freiwilligen Paketbetreuer waren mal wieder zu nachlässig, könnte man meinen. Die Probleme sitzen tiefer. Urban Terror lässt sich zwar wunderbar unter Linux spielen, es ist aber nicht frei. Schon 2008 war es als Paket für Debian gedacht, woraus aber leider nie etwas wurde.

Das Hauptproblem ist zum einen, dass Urban Terror zwar mittlerweile mit der freien Ioquake3-Engine ausgeliefert wird und somit ohne das Originalspiel Quake3 gespielt werden kann, große Teile stehen aber immer noch unter der Quake3-SDK-Lizenz, die ausdrücklich den Verkauf des Spiels oder Weiterverbreitung durch ein anderes Medium als das Internet verbietet. Software, die aber die kommerzielle Verwendung ausschließt, gilt bei Debian und anderen freien Softwareprojekten als unfrei.
Ein weiterer Punkt ist die schiere Größe des Spiels. Vor vier Jahren wurde in Debian schon diskutiert, wie man große Softwarepakete (>50 MB) eventuell in ein neues Archiv auslagern könne. Fakt ist, dass Urban Terror 1000 MB an Daten mit sich bringt und das normale Archiv zu stark belasten würde.


Zählt man alles zusammen ist Urban Terror zum einen nach Debians Richtlinien nicht frei und hat kein eigenständiges Debianpaket. Außerdem beansprucht es auf meinem vServer 25% des Arbeitsspeichers also ca. 50 MB. Das mag für einen richtigen Root-Server kein Problem sein. Bei mir haben all diese Punkte nach zwei Wochen dazu geführt, dass ich Urban Terror als Kandidaten nicht weiter verfolgt und es zum Schluss wieder vom Server entfernt habe.
Kurzes Fazit: Ein wirklich interessantes und gutes Spiel, dass sich problemlos mit Linux spielen lässt und eines der vielen Beweise dafür ist, welchen Einfluss die Quake3-Engine auf Freie Software hatte. Es erfüllt aber weder die hohen Ansprüche an Freie Software, noch ist es so in Debian integriert und ressourcenschonend, dass es mir leicht gefallen wäre, es für das kleine Spieleserver-Projekt zu nutzen.
[alle Screenshots via urbanterror.info]

Kriterien für einen Spieleserver mit Debian GNU/Linux

Für mein Projekt habe ich ein paar Kriterien aufgestellt. Normalerweise sollte so etwas am Anfang stehen und am besten alle relevanten Ideen zu einem Spieleserver mit Debian/GNU Linux chronologisch erzählt werden. Graue Theorie. Ich verspreche aber, dass ich zum Schluss, schon aus Eigeninteresse :), alles übersichtlich ordnen werde.
An einigen Stellen habe ich mir mehr Gedanken als sonst gemacht, wie groß das Projekt überhaupt werden sollte, was man damit lernen kann und wie man sicherstellt, dass nicht nach einem Monat schon wieder alles vorbei ist, weil man die Lust daran verloren hat. Angefangen hat es mit der Vorgeschichte wie man den passenden vServer finden kann.
Für den Spieleserver sprach schließlich auch der Spaßfaktor. Doch welche und wie viele Spiele sollten es schließlich sein?

  • Quantität: Ich wollte so viele Spieleserver wie möglich installieren, ohne dass die Spielqualität auf den Servern darunter leidet. Es sollte also weder der Ping in die Höhe schnellen noch Lags auftreten.
  • Arbeitsspeicher: Spiele, die genügsam mit den Ressourcen umgingen, wurden von mir bevorzugt. Besser drei kleine und interessante Spiele als ein großes.
  • Freie Software: Ein ganz wichtiger Punkt war die Freiheit des Spiels. Wenn man sich mehr mit der Thematik beschäftigt, stellt man schnell fest, dass das Wort Freiheit immer wieder anders interpretiert wird. Als Maßstab habe ich mich an Debians Gesellschaftsvertrag gehalten. Kurz gesagt: Jedes Spiel, dass sich in Debians Main-Repositorien befindet erfüllt all diese Bedingungen, die ich persönlich wichtig finde und auch als eine Art von Auszeichnung und Qualitätsmerkmal für Freie Software ansehe. Dennoch ist es das Thema wert mehr Worte darüber zu verlieren und das Wort “Freiheit” mal kritischer zu hinterfragen.
  • Abwechslung: Quake3 war und ist für Freie-Software-Spiele ein sehr einflussreiches Spiel. Ich wollte aber nicht nur Ego-Shooter installieren, sondern etwas Abwechslung anbieten und auch anderen Genres eine Chance bieten.
  • Qualität: Ohne Frage sollte ein vollständiges, von der Gemeinschaft akzeptiertes Spiel eine hohe Priorität eingeräumt werden. Qualität hat viele Facetten. Gute Spielengine, tolle Grafik, Spielspaß und -tiefe, berauschende Klänge und Musik. Im Zweifelsfall sollte meiner Meinung immer der Spaß gewinnen.
  • Neueinsteiger: Ich bevorzuge Spiele, die schon fix und fertig in Debian gepackt sind. Das macht es für jeden Serveradmin einfacher und gleichzeitig ist das auch ein Indiz für eine gewisse Spielqualität. Auf der anderen Seite gibt es noch einige Spiele, die noch nicht in Debian auftauchen. Jedes Spiel, dass interessant genug ist, sollte unabhängig von der Distribution eine Chance verdienen.

Alle Faktoren sollten irgendwie optimiert werden. Bei nur 225 MB RAM war klar, dass nicht jedes Ziel erreicht werden konnte. Trotzdem dachte ich mir, es ist besser wenige Spiele zu haben, die man auch tatsächlich versteht und betreuen kann als einen Haufen von Anwendungen, zu denen man gar keinen Bezug hat.
Wenn ihr wissen wollt, was ihr überhaupt für eine Auswahl mit Debian und seinen Derivaten habt, dann hilft das folgende Kommando im Terminal schnell weiter.

aptitude search '~sgames'


In Squeeze sind das immerhin 1183 Pakete aus dem Bereich “Spiele”.

aptitude search '~sgames' | wc -l


Für einen öffentlichen Spieleserver kamen aber nur diese in Frage.

aptitude search '~sgames server'


Damit wird die Auswahl schon ziemlich eingeschränkt. Natürlich kamen nur Spiele mit Mehrspielermodus in Betracht. Für alles andere hätte ich keinen vServer mieten müssen. Der letzte Befehl spuckt trotzdem noch genug Kandidaten zum Ausprobieren aus. Nach einem Monat kann ich sagen, dass die Auswahl an Spielen in Debian groß genug ist, man aber auch nicht übersehen kann, wie groß der Einfluss von Quake3 und seinen Derivaten im Mehrspielerbereich ist.