Doom unter openSUSE :-)

Jaja, ich weiß, bei uns in Deutschland hat man sich bisweilen ja schwer getan, sich über “DOOM” zu unterhalten, da das mittlerweile doch schon sehr alte Spiel bis Ende August letzten Jahres noch auf dem Index der jugendgefährdenden Medien befunden hat. Jetzt darf man ja wieder offiziell darüber öffentlich reden ( :stuck_out_tongue: rotfl! ) und im Oktober diesen Jahres erscheint sogar noch eine Wiederauflage des DOOM3, was wohl auch die klassieschen Teile ( DOOM und DOOM 2 ) beinhalten wird. Zeit für mich, die alten CDs wieder auszupacken und zu sehen, was hier unter Linux machbar ist. Da ich ein alter SUSi - User bin mache ich das natürlich unter der aktuellen openSUSE 12.2 (64bit).

Die Doom Engine ist seit längerem ja schon freigegeben und es haben sich einige Projekte gebildet, die auch sich darum bemüht haben, die Engine auf openGL lauffähig zu bekommen. Natürlich gibt es dann einige Mods, Texturverbesserungen bis dahin, dass die alten Sprites der Gegnerfiguren durch echte 3D Modelle ausgetauscht wurden.

Die Bemühungen finde ich alle klasse, nur bin ich eher der Typ, der seinen “Retro-Flash” benötigt. Also muss die Konvertierung für mich zwar auf moderner Hadware angepasst sein (Full HD, 3D beschleunigt), darf aber nichts vom Flair des Originals verlieren. Ich habe mir hierzu das prboom, jdoom und gzdoom (die openGL Version des zdoom) angesehen, und muss sagen, dass mir hierbei das gzdoom am besten gefallen hat. Das Spiel bringt hier Optionen mit, die die Originaltexturen auch noch Original aussehen lässt, ohne dabei aber pixelkrank zu werden.

Die Projektseite zu gzdoom findet Ihr hier: http://www.osnanet.de/c.oelckers/gzdoom/index.html

Im nächsten Beitrag erkläre ich, wie man gzdoom selbst auf openSUSE kompiliert und zum Laufen bringt.

cu
Gargi

http://www.gargi.org/stuff/opensuse122/doom.jpg

DOOM unter Linux

Um den **DOOM **Port **gzdoom **unter openSUSE 12.2 zu kompilieren und zu spielen sind ein paar Vorarbeiten nötig. Hierbei geht es um folgende Schritte:

** - Vorbereitung des Systems

  • Installation von Fmod Ex (für die Sound / Midi Wiedergabe)
  • Aktuellen Quellcode über SVN ziehen
  • Compile der gzdoom Binaries
  • Installation der gm.dls für die Midi Wiedergabe
  • Konfiguration der doom.ini und Installation der doom.wad**

An den Schritten ist zu erkennen, dass die Angelegenheit nicht trivial ist. Voraussetzung zum Spielen ist zudem ein Originalmedium von Doom. Auf den CD Versionen finden sich hierzu jeweils eine sogenannte wad - Datei, die die Leveldaten und Grafiken des Spiels nebst allen Soundfiles beinhaltet. Diese sind urheberrechtlich geschützt und müssen somit legal gekauft werden.

Ferner brauchen wir um Midi Sound über FMOD zu erhalten eine Soundfond Datei, die gm.dls. Diese findet Ihr bei einem installierten Windows im Verzeichnis **/system32/drivers/ **. Kopiert diese Datei z.B. unter Linux nach /usr/share/sounds/. Solltet Ihr auf die gm.dls keinen Zugriff haben, so könnt Ihr später auch Midi auf Timidity umstellen. Timidity muss hierzu installiert sein.

Ich erkläre das am Beispiel eines installieren openSUSE 12.2 Linux, wobei ich die 64bit Variante verwende. Im Prinzip ist das auf andere Linux Varianten leicht übertragbar.

Voraussetzung

Folgende Pakete müssen isntalliert sein (via Yast oder zypper):

  • make
  • gcc-c++
  • zlib-devel
  • SDL-devel
  • libjpeg-devel
  • libbz2-devel
  • fluidsynth-devel
  • nasm
  • gtk2-devel
  • cmake

FMOD installieren

Holt Euch auf der Seite fmod Interactive Audio die tar.gz des Fmod EX codes passend zu Eurer Linux Architektur (64 bit / 32 bit). Entpackt diese in einem Arbeitsverzeichnis. Wechselt in das Verzeichnis z.B.

cd fmodapi44203linux64

und installiert die API mittels

sudo make install

Löscht dieses Verzeichnis noch nicht, da wir die Header dazu noch benötigen.

gzdoom Quellcode herunterladen und übersetzen

Den Quellcode ziehen wir mittels svn in unserem Arbeitsverzeichnis:

svn co http://mancubus.net/svn/hosted/gzdoom/trunk/ gzdoom

Nach dem Checkout wechseln wir in das neue Verzeichnis gzdoom

cd gzdoom

und legen ein build-Verzeichnis an:

mkdir build

Patchvorgang für FMOD / Prologic
Bitte ändert jetzt zuerst im Quellcode folgende Datei ab:
…gzdoom/src/sound/fmodsound.ccp

Sucht nach der Zeile (normal auf Zeile 201):

{ "Prologic",                FMOD_SPEAKERMODE_PROLOGIC },

Ändert diesen in folgenden Code ab:

{ "Prologic",                FMOD_SPEAKERMODE_SRS5_1_MATRIX },

Speichert die Änderung. Wechselt dann in das build Verzeichnis

cd build

Wir bereiten nun den Compile vor. Der Compile muss gegen die Header unserer FMOD Version laufen. Deswegen passt den folgenden Parameter auf das includeverzeichnis entsprechend an:

cmake -DCMAKE_BUILD_TYPE=Release -DFMOD_LIBRARY=/usr/local/lib/libfmodex64-4.42.03.so -DFMOD_INCLUDE_DIR=/usr/local/include/fmodex/ ..

Wenn dies fehlerfrei durchgelaufen ist, starten wir den Compile:

make

Das war es soweit. Wenn alles gut gelaufen ist, kopiert die neuen Dateien aus dem build Verzeichnis in ein neues Verzeichnis, aus dem Ihr in Zukunft Doom starten wollt. Diese Dateien sind:

brightmaps.pk3
gzdoom
gzdoom.pk3
liboutput_sdl.so
lights.pk3

Dazu kopiert die doom.wad von Eurer Doom CD.

Starten und konfigurieren

Startet dann gzdoom. Ihr könnt nun die Einstellungen des Spiels vornehmen. Ihr werdet bemerken, dass noch kein Midi Sound wiedergegeben wird. Entweder Ihr stellt beispielsweise auf Timidity um oder beendet erst einmal gzdoom und geht in das versteckte Verzeichnis in Eurem Homeverzeichnis

~/.config/gzdoom

Dort öffnet die zdoom.ini und sucht die Zeile set_midipatchset und gebt dort den Pfad zu Eurer **dls **an:

set_midipatchset=/usr/share/sounds/gm.dls

Speichert die Änderung. Jetzt solltet Ihr beim nächsten Start auch entsprechend die Musik im Spiel haben.

Happy dooming! :slight_smile:

cu
Gargi

Projektseite: GZDoom - News
id Software: id Software
Diesen Artikel habe ich ursprünglich auf meiner Page veröffentlicht: http://www.gargi.org/showthread.php?4095-Compile-gzdoom-unter-openSUSE-Linux-12-2
Hinweis: Mit Wirkung zum 31. August 2011 hat die Bundesprüfstelle für jugendgefährdende Medien die Indizierung der Spiele Doom und Doom 2 aufgehoben.

Sollte gzdoom mit aktivierten Desktop Effekten (compositing) ruckeln, dann einfach die Desktop Effekte mittels der Tastenkombination

shift+Alt+F12

vor dem Start abstellen. Wenn Ihr das Spiel beendet habt, dann wieder mit

shift+Alt+F12

aktivieren.

Have fun!

Gargi

Classic Doom in Full HD unter openSUSE.

Um zu vergrößern (1920x1080) bitte auf das Bild klicken:

http://www.gargi.org/stuff/opensuse122/doom_fullhd_kl.jpg](http://www.gargi.org/stuff/opensuse122/doom_fullhd.jpg)

cu
Gargi

Am 30.09.2012 12:16, schrieb HRGargi:
> -Hinweis:- Mit Wirkung zum 31. August 2011 hat die Bundesprüfstelle
> für jugendgefährdende Medien die Indizierung der Spiele Doom und Doom
> 2 aufgehoben.
Ich hoffe sie haben’s gleichzeitig unter Denkmalschutz gestellt.

Bin selbst kein Freund von Egoshootern, aber danke für deine Anleitung,
das muss ich unbedingt mal probieren allein schon wegen des
Nostalgiefeelings :slight_smile:


PC: oS 12.2 x86_64 | i7-2600@3.40GHz | 16GB | KDE 4.8.4 | GeForce GT 420
ThinkPad E320: oS 12.2 x86_64 | i3@2.30GHz | 8GB | KDE 4.9.1 | HD 3000
eCAFE 800: oS 12.2 i586 | AMD Geode LX 800@500MHz | 512MB | KDE 3.5.10

@Martin: Denkmalschutz wäre eine Idee. Als Kulturgut, das ja doch in einigen Bereichen Einfluss genommen hat (zumindest was die 3D Welt auf dem Computer betrifft), es Diskussionen in der Vergangenheit ausgelöst hat und damit auch irgendwo prägend im Umgang mit Jugendschutz / Computerspiele war, auf jeden Fall. Auch wenn es für meinen Geschmack oft zu hart angepackt und vieles einfach zu überzogen gesehen wurde war es doch nicht so schlecht, sich auch sozialkritisch mit dem Thema auseinander zu setzen. Doom war doch immer der Archetyp des bösen Computerspiels, wenn die Diskussion da aufgekommen ist. Gesellschaftlich war man aufgrund des schlechten Rufs sofort gebranntmarkt. “Wer Doom spielt, der isst auch kleine Kinder”. Naja, das hat sich Gott sei Dank doch wieder gelegt ;).

Hier noch eine Ergänzung zu den ekeligen Rucklern bei aktivierten Desktopeffekten. Eleganter ist es, dies gleich an passender Stelle soweit einzustellen, dass eben im Vollbildmodus die Effekte ausgesetzt werden. Das passiert beispielsweise unter Windows 7 mit dem Aero oft im Hintergrund unbemerkt, um eben hier das Maximale an Performance heraus zu holen.

Korrekt einstellen könnt Ihr dies im KDE4 unter Linux über die Systemeinstellungen. Dort klickt auf Arbeitsflächen-Effekte:

http://www.gargi.org/stuff/opensuse122/compositing1.png

Im Registerblatt Erweitert klickt dann “Arbeitsflächeneffekte für Fenster im Vollbildmodus aussetzen” an:

http://www.gargi.org/stuff/opensuse122/compositing2.png

Mit Anwenden übernehmt Ihr dann die Änderung. Jetzt sollte das Ruckeln nicht mehr auftreten.

Have fun!

cu
Gargi

Die Settings, die ich für die Grafikeinstellung (siehe obigen Screenshot aus dem Spiel) verwende, mal als Screenshots. Ich verwende eine Nvidia GeForce 460GTX Grafikkarte. Bei anderen Herstellern kann das Ergebnis durchaus anders aussehen.

http://www.gargi.org/stuff/opensuse122/settings1.jpg

http://www.gargi.org/stuff/opensuse122/settings2.jpg

http://www.gargi.org/stuff/opensuse122/settings3.jpg

http://www.gargi.org/stuff/opensuse122/settings4.jpg

http://www.gargi.org/stuff/opensuse122/settings5.jpg

Kantenglättung stelle ich dann bei meiner Nvidia Grafikkarte über ein Startscript ein, da ich das nicht unbedingt in der Konfiguration für alle 3D Programme aktivieren möchte. Dazu sieht mein Script wie folgt aus:

#!/bin/sh
cd /home/hans/bin/gzdoom
nvidia-settings --assign FSAA=11 --assign FSAAAppControlled=0 --assign FSAAAppEnhanced=0
gzdoom
nvidia-settings --assign FSAA=0 --assign FSAAAppControlled=1 --assign FSAAAppEnhanced=0

Wie schon gesagt, nur bei Nvidia Karten. Bei anderen Herstellern muss das eben anders aktiviert werden.

cu
Gargi