SDL-Linuxspiele installieren und Zocken, Zocken, Zocken
Autor: Karsten Kruse
Wer sagt, dass Linux eine schlechte Spieleplattform ist? Alles halb so wild, den Beweis möchte ich mit einigen sehr guten Spielen antreten. Natürlich können wir uns einfach von der Distributions-CD ein paar Spiele installieren, aber das eigens kompilierte Game ist viel mehr wert ;). Um die Auswahl nicht zu einseitig zu gestalten habe ich mich für verschiedene Spiele entschieden, ein RPG, ein Arcadegame im Breakoutstil, ein Strategiespiel und noch einige andere. Um die Spiele zu kompilieren benötigen wir SDL und einige SDL-Zusätze.
Bevor wir beginnen, liste ich hier alle Downloads auf die für alle Libs und alle Spiele gebraucht werden. Ich habe mir ein Verzeichnis angelegt und alle Dateien dort rein gelegt. Finden sich auf den Homepages neuere Versionen, nehmen wir die natürlich, aber nur wenn sie als Stable gekennzeichnet sind. Von Snapshots und Previews lasse ich generell als Newbie die Finger. Hier die Shoppingliste:
Alles zusammen sind das runde 22 MB, für die Anzahl der Spiele und den Spielspass durchaus angemessen.
SDL ist die Abkürzung von Simple DirectMedia Layer, eine Library um schnellen Zugriff auf vorhandene Hardware bereitzustellen. Alle Spiele die wir installieren werden benötigen diese Bibliothek. Das ist der Grund warum die Reihenfolge die ich vorschlage einzuhalten ist. Erst SDL, dann die SDL-Zusätze und dann die Spiele in beliebiger Reihenfolge.
Normalerweise sollten mit den von uns installierten Bibliotheken nahezu alle SDL-Games kompilieren. Trotzdem liegt der Teufel wie immer im Detail, einige Spiele brauchen dann eben doch noch eine Zusatzlibrary. Das soll aber für uns kein Problem sein, wer die READMES der Spiele liest wird immer auch den Hinweis auf die benötigten Bibliotheken bekommen.
Die Spiele die ich hier beschreibe werden mit den gleich installierten Bibliotheken aber zufrieden sein.
SDL kommt im Sourcecode den wir erst noch kompilieren müssen, aber das ist in diesem Fall einfach da SDL nichts besonderes braucht. Das größte Problem das sich für den Newbie darstellt: Welche Programme werden zum kompilieren benötigt? Ich installiere von meinen Distributions-CDs immer folgende Pakete, sollte der Paketmanager Abhängigkeiten entdecken installiert man diese einfach mit:
autoconf Automatische Sourcecode-Konfiguration automake Automatisch Makefile.in's im GNU Stil erzeugen bin86 8086 Assembler und Linker binutils GNU binutils bison GNU Parsergenerator cvs Concurrent Versions System flex Schneller Scannergenerator gcc Der GNU C-Compiler mit Supportfiles gdb Der GNU-Debugger make GNU make Befehl patch GNU patch Programm strace Programm zum Verfolgen von Systemaufrufen yacc BSD Yacc ist ein Parsergenerator
Außerdem brauchen wir die Includedateien von X11 und manchmal auch die des Kernels, jede Distribution liefert diese auch mit, die Paketnamen sind aber unterschiedlich. In der Regel sollte man nach X11-devel und Kernel-Includes Ausschau halten und die Pakete dann auch finden.
Damit sollte man für nahezu jeden Fall gut gerüstet sein. Was die Programme im einzelnen machen sprengt den Rahmen, natürlich bringt jedes Programm Dokumentation und Manpages mit. Wir aber wollen jetzt SDL installieren.
Zuerst müssen wir das heruntergeladene Paket entpacken. Dazu gibt es viele Frontends und X11-Tools. Ich benutze den kurzen Weg und tippe in meine Shell das Kommando zum entpacken:
tar xzf SDL-1.2.3.tar.gz
Die Sourcen liegen jetzt in einem Unterverzeichnis SDL-1.2.3 in das wir hineinwechseln:
cd SDL-1.2.3/
Als erstes lesen wir wie immer die READMEs und Installationshinweise. Da wir gerade in der Shell sind,
sparen wir uns großen Aufwand und sehen uns die Dateien mit less README
direkt an. Die
Installationshinweise lesen wir mit less INSTALL
. Die Installation ist einfach und besteht aus
den üblichen Schritten die wir auch gleich eingeben wo wir schonmal hier sind. Für make
install
benötigen wir Rootrechte die wir uns durch die Eingabe von su
holen falls wir
als User angemeldet sind. Hier die Schritte:
./configure make su make install exit
Sollte make
oder make install
mit einem Error abbrechen muss man die Ausgaben
der Zeilen davor ganz genau studieren, oftmals fehlt nur ein kleines aber wichtiges Programm. Findet sich
nichts bin ich gerne bereit mir die Ausgabe mal anzuschauen, je mehr Zeilen ich zu sehen bekomme desto
wahrscheinlicher kann ich einen Tipp geben. In der Regel sollte aber SDL problemlos installiert worden
sein. Da wir die Rootrechte nicht mehr brauchen schließen wir die Rootshell durch die Eingabe von
exit
. Sollten wir nochmals Rootrechte benötigen werden wir das wieder mit su
erledigen.
Um die SDL zu testen kompilieren wir ein kleines Testprogramm das den Sourcen beiliegt. Dazu wechseln wir in das Unterverzeichnis test und geben folgende Kommandos ein:
./configure make
Die Testprogramme sind jetzt kompiliert und können mit dieser Kommandozeile angezeigt werden:
ls -la | grep "rwx"
Starten wir einfach einen Test durch die Eingabe von graywin
. Das Drücken von ENTER sollte
uns in den Vollbildmodus bringen. Mit der Maus können wir lustige Vierecke erzeugen. Weitere nette Tests
sind testalpha
, testvidinfo
oder auch testsprite
. Wenn die Demos
funktionieren ist SDL installiert :).
SDL-MPEG wird von SDL-Mixer benötigt wenn z.b. MP3 unterstützt werden soll, da z.b Nethack MP3 verarbeiten kann kompilieren wir es mit. Wir entpacken das Archiv, wechseln in das neue Verzeichnis und lesen das README:
tar xfz smpeg-0.4.4.tar.gz cd smpeg-0.4.4 less README
Um die Sourcen zu konfigurieren benutzen wir ./configure
und starten die Kompilierung mit
make
. Danach erlangen wir mit su
Rootrechte, installieren die Binärdateien mit
make install
und beenden die Rootshell mit exit
:
./configure make su make install exit
Jetzt können wir SDL-Mixer installieren.
SDL-Mixer stellt einige Soundfunktionen für viele Spiele bereit, wer auf Sound verzichten kann braucht SDL-Mixer nicht zu installieren. Alle anderen beginnen mit dem Entpacken und wechseln danach in das neu entstandene Verzeichnis um das README zu lesen:
tar xzf SDL_mixer-1.2.1.tar.gz cd SDL_SDL_mixer-1.2.1 less README
Um für ./configure
einige benötigte Dateien zu generieren geben wir jetzt folgendes ein
(das hätte der Softwareentwickler schon machen sollen, aber man ist ja flexibel):
autogen.sh
Jetzt wieder den üblichen Installationsdreiklang aus ./configure
, make
und
make install
. Für make install
benötigen wir Rootrechte, su
gibt sie
uns und exit
nimmt sie uns wieder:
./configure make su make install exit
Das war schon alles. Kommen wir zu SDL-Image.
SDL-Image stellt Funktionen zum Laden von verschiedenen Bildformaten bereit. Wer bis hier durchgehalten hat weiß es schon, auspacken, in das neue Verzeichnis wechseln und das README lesen:
tar xfz SDL_image-1.2.1.tar.gz cd SDL_image-1.2.1 less README
Und wie üblich installieren:
./configure make su make install exit
SDL-mm stellt einige C++ Funktionen bereit, das Entpacken, in das neue Verzeichnis wechseln und das README lesen sollte bekannt sein:
tar xfz SDLmm-0.1.8.tar.gz cd SDLmm-0.1.8 less README
Auch die Installation der Bibliothek schreckt den erfahrenen Newbie nicht mehr ab. Hier die Schritte:
./configure make su make install exit
Jetzt haben wir alle Bibliotheken installiert die die Spiele brauchen. Ein Neustart des Systems war bei mir notwendig um SDL-Mixer und seinen Soundsupport zu aktivieren. Möglicherweise hätte es auch gereicht nur das von mir benutzte Soundsystem Alsa neu zu starten.
In der Regel liest man sich bei neuen Spielen einmal durch die Installationsdokumentation und weiß dann ob und welche weiteren Bibliotheken gebraucht werden und wo man sie bekommt. Jetzt kommen wir zu den Spielen.
Falcons Eye ist ein grafisches Frontend für Nethack. Nethack ist der Nachfolger von Hack. Hack ist der Nachfolger von Rouge. Rogue ist ein Dungeons-And-Dragons-Adventure von Ken Arnold aus dem Jahre 1970, entwickelt unter UNIX und der Grund warum die curses-Bibliothek entstanden ist. Damit sind wir so ziemlich an den Anfang der UNIX-Geschichte gegangen. Nethack ist also ein Spiel mit einem mehr als ausgereiften und über Jahrzehnte verfeinertem Gameplay.
Nethack wird normalerweise ganz einfach auf der Konsole bedient, aber mit Falcons Eye steht uns eine wirklich sehr ansehnliche Oberfläche zur Verfügung. Ein Freund von mir sagte nach einem flüchtigen Blick "Du spielst Diablo?". Wenn ich ehrlich sein soll, ich kenne Diablo nicht besonders gut, aber man kann wohl behaupten, dass die Diablo-Entwickler sich bei Nethack "inspirieren" liessen ;).
Wir entpacken die Source von Falcons Eye und wechseln in das neue Verzeichnis mit diesen Befehlen um danach das README zu lesen:
mkdir nethack unzip -d nethack nethack_source_331_jtp_193.zip cd nethack less README
Warum habe ich das Verzeichnis vorher angelegt? Die Sourcen würden sonst im derzeitigen Verzeichnis verteilt werden, unüblicherweise entpacken die Sourcen mit unzip nicht in ein eigenes Verzeichnis. Bitte versucht nicht die Source unter Windows mit Winzip oder ähnlichem auszupacken, damit werden die Unixzeilenumbrüche verlorengehen.
Die Konfiguration ist ein wenig Unixuntypisch, das liegt möglicherweise daran, dass der Programmierer eher ein Windowsfan ist. Um das Programm jedem User bereitzustellen müssen wir daher die Datei anpassen die den Installationspfad enthält. Dies sind die einzelnen Schritte:
cd sys/unix
.PREFIX = $(shell pwd)/compiled
in PREFIX = /usr/local
./bin/sh setup.sh
ausführenmake
ausführen. Das Spiel wird jetzt kompiliert.su
eingeben um Rootrechte zu erlangen, danach
make install
ausführen und mit exit
den Superusermodus verlassen.Das Spiel ist jetzt unter /usr/local/games/ installiert und kann mit
/usr/local/games/nethack
gestartet werden. Ich habe mir dazu unter KDE einen Shotcut auf dem
Desktop erstellt. Um das Spiel mit angepassten Einstellungen zu starten kann man sich eine
Konfigurationsdatei im Homeverzeichnis anlegen, eine Beispieldatei kann man sich so kopieren:
cp /usr/local/games/lib/nethackdir/defaults.nh ~/.nethackrc
Diese Datei wird dann mit einem Editor geöffnet und nach Belieben angepasst. Auf der Homepage des Spiels stehen einige Tipps dazu. Wer die Midi-Musik hören möchte, muss sich TiMidity von seiner Distributions-CD installieren oder die Musik als MP3-Dateien von der Homepage des Spiels herunterladen. In diesem Fall braucht man das Programm mpg123 das auch jeder Distribution beigefügt ist.
Bei mir läuft das Spiel gut, auf die Musik habe ich verzichtet. Einzig das Beenden des Spiels klappt nicht wie erwartet. Aber ich denke, dass dieser Fehler in einer der nächsten Versionen behoben ist.
Viel Spaß beim Zocken :). Das Spiel macht wirklich Laune, es fällt mir schwer mich loszureißen und zum nächsten Spiel zu kommen.
Das nächste Spiel ist ein Breakout-Clone. Man hat ein Panel und muss einen Ball immer wieder nach oben schießen. Erschwert wird das ganze durch kleine Würfel die im Weg sind und bei Berührung explodieren. Manchmal fallen kleine Teile aus den Würfen die man aufsammeln sollte. Aber vorsicht, jedes aufgesammelte Teil verändert das Spiel, ein besonders fieses macht sogar das Licht aus ;). Ziel des Spiels ist es, möglichst viele Punkte zu sammeln, wer weniger als 200000 schafft ist meiner Meinung nach ne Niete ;).
Die Installation ist wesentlich einfacher als die von Nethack, wir entpacken die Sourcen, wechseln in das neue Verzeichnis und lesen das README:
tar xzf lbreakout2-2.1.1.tar.gz cd lbreakout2-2.1.1 less README
Die weiteren Schritte sind uns von SDL und den SDL-Zusätzen bekannt:
./configure make su make install exit
Das wars. Jetzt kann mit dem Kommando lbreakout2
das Spiel gestartet werden und die
Punktejagt beginnen. Das erste was ich gemacht habe war die Grafik in den Optionen auf Vollbild
umzuschalten. Die Framerate sah mit 100 FPS bei mir am besten aus, aber das ist sicher Geschmacksfrage.
Leider stand der Name und damit meine Punktezahl immer nur als Michael (der Entwickler) im Spiel, aber das ganze hat trotzdem viel Spass gemacht. Ein gelungenes Spiel. Besonders wenn man mit mehreren an den Highscores arbeitet. Schickt mir eure Highscores ;)!
ASC ist ein Rundenbasiertes Strategiespiel im Stil der Battle Isle und scheint ein brauchbares Stück Software zu sein. Am Anfang als Mail-Spiel konzipiert hat es jetzt einen Einzelspielermodus bekommen und wird damit für wesentlich mehr Leute interessant. Das ASC-Team sucht noch Hilfe, wer sich einbringen möchte sollte mal auf der Homepage nachsehen wo und wie geholfen werden kann um das Spiel zu verbessern.
Die Installtion beginnt mit dem Auspacken der Sourcen und wir wechseln in das neue Verzeichnis um das README zu lesen:
tar xzf asc-source-1.9.5.4.tar.gz cd asc-1.9.5.4 less README
Jetzt wieder die üblichen Schritte um die Sourcen zu konfigurieren, die ausführbaren Dateien zu kompilieren und zu installieren:
./configure make su make install exit
Das Kompilieren mit make
hat bei mir recht lange gedauert. Es wurden auch einige Warnungen
angezeigt die allerdings alle nicht kritisch waren.
Gestartet wird mit dem Kommando asc
. ASC macht auf mich den Eindruck als würde die
Programmierarbeit noch nicht ganz abgeschlossen sein. So steht es auch im README, insbesondere der
Netzwerkcode braucht noch Arbeit. Trotzdem, es ist spielbar und macht Spass. Ich werde mir neue Versionen
des Spiels auf jeden Fall downloaden um zu sehen wie das Spiel sich weiterentwickelt. Im Spiel ist unten
rechts ein kleiner Schieberegler mit dem man die Karte zoomen kann, ein sehr nettes Feature.
Das Spiel Tunnel lässt sich schlecht beschreiben, die Spielidee ist mit nichts vergleichbar das ich kenne. Das ganze läuft so ab: Du fliegst mit einer Kapsel durch einen Tunnel und musst Kugeln ausweichen, aber es sind auch Kugeln dabei die du einsammeln kannst um Schild und Power zu bekommen. Schießen kann man mit der Taste "C". Alles in allem ganz witzig. Aber schaut es euch selber an.
Wie üblich entpacken wir die Sourcen, wechseln in das neue Verzeichnis und lesen erstmal das README:
tar xzf tunnel-1.0.tar.gz cd tunnel-1.0 less README
Die Rest sollte jetzt eigentlich schon im Blut liegen. Die Installation hat keine Besonderheiten:
./configure make su make install exit
Tunnel braucht so wie es aussieht ganz schön Rechenpower, entwickelt wurde auf einem Pentium2 mit 350
MHz. Das Spiel wird mit tunnel
gestartet. Den Vollbildmodus erreicht man mit dem Rechts-Pfeil.
Das Spiel hat mehr zu bieten als es am Anfang scheint, das Lesen der Dokumentation im Sourceverzeichnis
lohnt sich. Die Grafik ist sehr bizarr aber nicht schlecht. Sehr gut gelungen wie ich finde.
Als ich ein kleiner Junge war hatte ich einen Atari2600, eine der frühen Spielekonsolen die richtig gerockt haben. Meine Lieblingsspiele waren Tennis und Defender. Defendguin ist ähnlich wie Defender, ein Raumschiff fliegt herum und schiesst die bösen Aliens ab um die Erde zu retten. Hier aber fliegst du mit deinem Tuxmobil und musst Billborgs abschiessen um Pinguine zu retten. Das beste an diesem Spiel ist aber der lebhafte Ton :).
Die Installation lässt nur den Schritt ./configure
aus und die READMEs enden hier auf .txt,
das soll uns aber nicht verwirren. Packen wir erstmal die Sourcen aus, dann wechseln wir in das neue
Verzeichnis und lesen das README:
tar xzf defendguin-0.0.9.tar.gz cd defendguin-0.0.9 less README.txt
Jetzt führen wir die üblichen Schritte aus, nur ./configure
lassen wir aus:
make su make install exit
Das Spiel wir mit defendguin
gestartet, in den Vollbildmodus kommt man mit defendguin
--fullscreen
. Das Spiel erklärt sich von alleine, besonders gelungen fand ich den eingebauten
"emacsguin" zum Einstellen der Soundoptionen. Viel Spaß kann ich da nur sagen, und rettet die Pinguine
:).
Abschliessend will ich noch ein paar Probleme anreißen. Sollte dein Spiel nicht in den Vollbildmodus umschalten wollen ist dein X11 nur auf eine Auflösung eingestellt, die die du gerade siehst. Die Lösung ist von Distribution von Distribution unterschiedlich, bei meiner SuSE musste ich den X11-Server runterfahren und als Root mit Sax2 weitere Auflösungen meiner Konfiguration hinzufügen. Wie die Konfigurationshilfen bei anderen Distributionen heißen, lässt sich mit dem jeweiligen Handbuch herausfinden.
Viel Spaß, und berichtet mir doch mal wenn ihr auch gute SDL-Games gefunden habt mit einer kurzen EMail an tecneeq(at)tecneeq(dot)de. Ich sammle schon Spiele für einen zweiten Teil.
Karsten Kruse aus dem Land des binären Weihwassers für www.newbie-net.de und www.prolinux.de, ich gebe zurück ins Studio.
Danke an hannes(at)poessinger(dot)net Johannes Pössinger für die Rechtschreibprüfung :).