Nach mehr als 15 abstinenten Jahren habe ich das Hobby meiner Kindheit und Jugendzeit wiederentdeckt: Computerspiele. Neben aktuellen Titeln haben es mir vor allem die DOS- und Windows-Spiele der 1990er Jahre angetan. Doch wie spielt man diese auf moderner Hardware und unter Linux?

Ultimate Doom (1995)

GZDoom mit DHTP & Neural Upscale Pack

Für die Doom-Spiele der 1990er Jahre (Doom bzw. Ultimate Doom mit der semi-offiziellen Erweiterung Sigil; Doom II mit den Erweiterungen No Rest For The Living und Master Levels for Doom II; Final Doom) gibt es unzählige Source Ports und noch viel mehr grafische und musikalische Modifikationen und Erweiterungen, so dass die Auswahl und Zusammenstellung von Komponenten schon fast zur Qual wird. Im Gegenzug gibt es vermutlich für jeden Geschmack etwas passendes.

Für ein aufgewertetes, aber immer noch weitgehend originalgetreues Spielerlebnis im Singleplayer-Modus verwende ich für alle Spiele den Source Port GZDoom mit den grafischen Modifikationen Doom Neural Upscale 2X und Smooth weapons decorate Add On. Gelegentlich verwende ich zusätzlich das DOOM High Resolution Texture Project (DHTP). Musikalisch kommen das Hi-res Doom SFX pack und je nach Spiel der passende Soundtrack hinzu: IDKFA Soundtrack für Doom, die Roland SC-55 Music Packs für Doom II und Final Doom TNT Evilution sowie das Plutonia MIDI Pack für Final Doom Plutonia Experiment.

Extravagante aber weniger originalgetreue Spielerlebnisse bieten dagegen das ebenfalls auf GZDoom aufbauende und vorkonfigurierte Gesamtpaket Doom 4 Remake, die Mod-Zusammenstellung Projekt S.I.D.E. oder Mods wie Vanilla Doom 3D Models for Doom I & II und DOOM HD weapons and objects, Smooth Doom (siehe auch die Upscale Version) und Beautiful Doom. Für mich persönlich ist aber schon fast das DHTP zuviel des Guten und so zog es mich bisher immer wieder hin zu der oben vorgestellten Modkombination mit der Doom Neural Upscale 2X Mod, meist ohne DHTP.

Für den Mehrspieler-Modus über das Internet verwende ich den Source Port Zandronum mit leicht angepassten Versionen der oben genannten Modifikationen sowie dem Tool Doomseeker. Zandronum basiert auf dem gleichen ursprünglichen Programmcode wie GZDoom und wurde mit Fokus auf den Mehrspielermodus angepasst und weiterentwickelt, ist ansonsten aber nicht so aktuell und funktionsreich wie GZDoom. Anders als GZDoom verwendet Zandronum eine Client-Server-Netzwerkarchitekur an, d.h. es muss ein dedizierter Server aufgesetzt werden, mit dem sich die Spieler verbinden können. Dies ist für Netzwerkspiele komfortabler, sofern die Infrastruktur für einen dedizierten Server zur Verfügung steht. Bei GZDoom dagegen übernimmt ein Mitspieler die Rolle des Hosts.

Die Spiele

Grundsätzlich werden auch für die Source Ports die Datendateien (WAD-Dateien) der Originalspiele benötigt. Wenn diese nicht ohnehin bereits vorhanden sind, können die Spiele auf Plattformen wie Steam oder GOG käuflich erwerben werden. Lediglich die Erweiterung Sigil von John Romero kann kostenlos bezogen werden; nur der offizielle Soundtrack kostet 6,66 Euro.

Leider gibt es kein einzelnes Paket, dass alle der aufgeführten Spiele und Erweiterungen enthält. Immerhin enthält die Doom 3 BFG Edition auch die Datendateien für Ultimate Doom, Doom 2 und als einziges Paket auch die Erweiterung No Rest For The Living für Doom 2. Final Doom kann dagegen mit Doom II im Paket auf GOG.COM erworben werden und enthält außerdem die Master Levels für Doom II.

Die Modifikationen

Die Modifikationen Doom Neural Upscale 2X und Smooth weapons decorate Add ON enthalten mit Verfahren der künstlichen Intelligenz hochskalierte Versionen der Originalgrafiken, welche auf den heutigen hochauflösenden Monitoren optisch ansprechender sind als die Originalgrafiken. Doom Neural Upscale 2X ersetzt alle Grafiken von Doom, Doom 2, Final Doom, No Rest for the Living und enthält die Korrekturen aus dem Doom 2 Minor Sprite Fixing Project. Smooth Weapons ergänzt das Spiel zusätzlich um flüssigere Waffenanmiationen. Das Doom High Resolution Texture Project (DHTP) dagegen enthält hochauflösende, von Fans neu erstellte Texturen und ist daher naturgemäß weniger originalgetreu als das Upscale Pack.

Der Zandronum SW-Renderer HUD-Fix behebt Darstellungsfehler in Zandronum im HUD bei gleichzeitiger Verwendung von Software Renderer und Neural Upscale Pack bzw. DHTP. Die Mod kann mit dem Tool WadExt aus den Originalspieledaten selbst erstellt werden. Bei Verwendung einer Screensize ab 11 oder des OpenGL-Renderers von Zandronum sowie für GZDoom ist diese Mod nicht erforderlich und sollte auch nicht verwendet werden.

Das High resolution Doom sound effects pack enthält für 77 der 107 Doom-Soundeffekte originalgetreue Neuaufnahmen in hoher Tonqualität. In mühevoller Kleinarbeit wurden entweder die Originalquellen der Soundeffekte ermittelt oder annähernd gleichklingende Samples abgemischt.

IDFKA - Doom Soundtrack ist ein professioneller Remake des Doom 1 Soundtracks von Andrew Hulshult. Der Wiedererkennungswert der Originaltitel ist in meinen Augen so hoch, dass ich gerne den ebenfalls sehr guten und kultigen Original-MIDI-Soundtrack damit ersetzte. Andrew Hulshult hat schon für viele kommerizielle Shooter die Soundtracks erstellt, u.a. auch für die beiden Erweiterungen von Doom Eternal.

Die Roland SC-55 Music Packs für Doom II und Final Doom TNT Evilution enthalten Aufnahmen der Original-MIDI-Soundtracks von einem echten Roland MIDI Synthesizer im SC-55 Standardprofil. Der SC-55 war in den 90er Jahren bei Komponisten beliebt und die MIDI-Wiedergabe auf diesen Geräten entspricht daher am ehesten der Originalkomposition. Auch für Doom 1 gibt es als Alternative zum oben aufgeführten Remake ein Doom 1 Roland SC-55 Music Pack.

Das Plutonia MIDI Pack enthält einen von der DOOM-Community komponierten Soundtrack für Final Doom Plutonia Project, da das Originalspiel über keinen eigenen Soundtrack verfügt.

Die Verzeichnisstruktur und Dateien für die Source Ports

Alle für GZDoom bzw. Zandronum benötigten Datendateien sollen der Einfachheit halber unterhalb des Ordners ~/GZDoom abgelegt werden, so dass am Ende die folgende Ordner/Dateistrukur entsteht:

~/GZDoom
├── games                                       ORIG.DATENDATEIEN DER SPIELE:
│   ├── DOOM.WAD                                Doom oder Ultimate Doom
│   ├── SIGIL_v1_21.wad                         Sigil
│   ├── SIGIL_SHREDS.wad                        Sigil (Soundtrack; optional)
│   ├── DOOM2.WAD                               Doom 2
│   ├── NERVE.WAD                               No Rest for the Living
│   ├── master.wad                              Master Levels for Doom 2
│   ├── PLUTONIA.WAD                            Final Doom: Plutonia Project
│   └── TNT.WAD                                 Final Doom: TNT Evilution
└── mods
    ├── audio                                   MODIFIKATIONEN AUDIO:
    │   ├── pk_doom_sfx_20120224.wad            Doom highres. sound effects
    │   ├── IDKFAv2.wad                         Doom 1: A. Hulshult's Remake
    │   ├── doom2_sc55_ogg_v1.2.zip             Doom 2: Roland SC-55 Music 
    │   ├── plutmidi.wad                        F.Doom PP: Community Music
    │   └── tntevilution_sc55_ogg.zip           F.Doom TNT: Roland SC-55 Music
    │
    └── graphics                                MODIFIKATIONEN GRAFIK:
        ├── NeuralUpscale2x_v1.0-Base.pk3       Upscaled graphics (Base)
        ├── NeuralUpscale2x_v1.0-Addon-GZDoomHUD.pk3   └ GZDoom Addon
        ├── NeuralUpscale2x_v1.0-Addon-Doom1.pk3       └ Doom 1 Addon
        ├── NeuralUpscale2x_v1.0-Addon-Doom2.pk3       └ Doom 2 Addon
        ├── NeuralUpscale2x_v1.0-Addon-Plutonia.pk3    └ F.Doom PP Addon
        ├── NeuralUpscale2x_v1.0-Addon-TNT.pk3         └ F.Doom TNT Addon
        ├── NeuralUpscale2x_Smooth_Weapons-Base.pk3 Smooth Weapons (Base)
        ├── NeuralUpscale2x_Smooth_Weapons-Addon-Doom2.pk3 └ Doom 2 Addon
        ├── DHTP-Base.pk3                       High Res. graphics (Base)
        ├── DHTP-Addon-Doom1.pk3                       └ Doom 1 Addon
        ├── DHTP-Addon-Doom2.pk3                       └ Doom 2 Addon
        ├── DHTP-Addon-Plutonia.pk3                    └ F.Doom PP Addon
        ├── DHTP-Addon-TNT.pk3                         └ F.Doom TNT Addon
        └── Zandronum-SWRenderer-HUD-Fix.pk3    Zandronum SW-Renderer HUD-Fix

Aufbau der Verzeichnisstruktur und Ablage der Original-Spieldaten

Zuerst werden die Verzeichnisse angelegt:

user@linux ~ $ mkdir -p ~/GZDoom/games ~/GZDoom/mods/audio ~/GZDoom/mods/graphics

Anschließend werden die Datendateien der Originalspiele in den Ordner ~/GZDoom/games kopiert. Die benötigten WAD-Dateien (Dateinamen siehe oben) findet man in den Installationsordnern der entsprechenden Spiele bzw. oben genannten Pakete von Steam oder GOG.

Eine Ausname stellen die Master Levels for Doom 2 dar: Sie werden nicht wie oben angegeben als einzelne Datei master.wad ausgeliefert, sondern in Form von 20 separaten WAD-Dateien. Damit die losen Master-Level im Menü von Doom 2 als separate Episode angezeigt werden, können sie mit dem Tool Unofficial Master Levels for Doom 2 Patch zu der Datei master.wad zusammengeführt werden. Das Tool steht als Windows-Binärdatei und im Quelltext zur Verfügung. Da für das Kompilieren eine alte QT-Version benötigt wird, empfehle ich die Verwendung der Windows-Binärdatei unter Wine oder in einer Windows-VM. Die zusammengeführte master.wad-Datei wird anschließend ebenfalls in den Ordner ~/GZDoom/games kopiert.

Die WAD-Datei SIGIL_v1_21.wad von Sigel kann auf der Sigel-Homepage kostenlos heruntergeladen werden. Der optionale Soundtrack kann dort als separate WAD-Datei SIGIL_SHREDS.wad käuflich erworben werden.

Installation von GZDoom unter Gentoo Linux

Die aktuelle Version von GZDoom ist in der offiziellen Paketdatenbank von Gentoo Linux enthalten. Ich empfehle die Installation mit den folgenden USE-Flags:

linux ~ # ACCEPT_KEYWORDS="~amd64" USE="gtk non-free openmp vulkan -debug gles2 -telemetry" emerge games-fps/gzdoom -pv

Installation von Doomseeker und Zandronum unter Gentoo Linux

Doomseeker, Zandronum sowie die benötigte Bibliothek fmod sind leider nicht in der offiziellen Paketdatenbank von Gentoo enthalten. In dem inoffiziellen Overlay haarp gibt es aber für alle drei Pakete games-util/doomseeker-1.3.2, games-fps/zandronum-3.0.1 und media-libs/fmod-4.38.02-r1 aktuelle Ebuilds.

Die in Zandronum enthaltene Bibliothek libgme kompiliert nicht und führt zu einem Abbruch der Installation mit obiger Zandronum-Ebuild. Die Verwendung der beiliegenden Version kann jedoch umgangen werden, indem die Bibliothek aus den offiziellen Gentoo-Paketdatenbank installiert wird. Dort ist sie unter dem Namen media-libs/game-music-emu enthalten und muss vor der Installation von Zandronum installiert werden.

Wenn die Ebuilds für Doomseeker, Zandronum und fmod korrekt im lokalen Overlay unter games-util/doomseeker, games-fps/zandronum bzw. media-libs/fmod abgelegt sind, kann die Installation wie folgt erfolgen:

linux ~ # ACCEPT_KEYWORDS="~amd64" USE="-fake-plugins -legacy-plugins" emerge games-util/doomseeker -pv
linux ~ # emerge media-libs/game-music-emu -pv
linux ~ # ACCEPT_KEYWORDS="~amd64" USE="dedicated gtk opengl system-sqlite timidity -system-dumb -system-geoip" emerge games-fps/zandronum -pv

Installation des Zandronum-Servers unter Gentoo Linux (optional)

Mit der oben beschriebenen Client-Installation wird durch das USE-Flag "dedicated" auch der dedizierte Zandronum-Server installiert. Soll aber z.B. auf einem Linux-Server ausschließlich der dedizierte Server ohne den Client mit seinen Abhängigkeiten installiert werden, kann die Installation wie folgt durchgeführt werden:

linux ~ # emerge media-libs/game-music-emu -pv
linux ~ # ACCEPT_KEYWORDS="~amd64" USE="-opengl dedicated -gtk -system-dumb -system-geoip system-sqlite -timidity" emerge games-fps/zandronum -pv

Download der Modifikationen

Die benötigten Dateien der Modifikationen können von folgenden Seiten bezogen werden:

Installation der Modifikationen

Es wird davon ausgegangen, dass sich alle heruntergeladenen Dateien im Ordner ~/Downloads befinden.

Doom Neural Upscale 2X Pack:

Das heruntergeladene Upscale-Pack funktioniert nur mit GZDoom, da Zandronum das sogenannte Lump Filtering nicht unterstützt. Daher erzeuge ich mit den folgenden Befehlen kombinierbare Teilpakete, die sowohl mit GZDoom als auch Zandronum genutzt werden können. Zwei mit Zandronum gänzlich inkompatible HUD-Grafiken (STBAR.png und STARMS.png) werden in ein separates Paket für die ausschließliche Verwendung mit GZDoom ausgelagert.

user@linux ~ $ unzip -o ~/Downloads/NeuralUpscale2x_v1.0.pk3 -d /tmp/nu2x
user@linux ~ $ cd /tmp/nu2x
user@linux ~/tmp/nu2x $ mkdir -p HIRES/HUD && mv FILTER/DOOM/HIRES/HUD/STBAR.png FILTER/DOOM/HIRES/HUD/STARMS.png HIRES/HUD/. && zip -r ~/GZDoom/mods/graphics/NeuralUpscale2x_v1.0-Addon-GZDoomHUD.pk3 HIRES && rm -Rf HIRES
user@linux ~/tmp/nu2x $ mv FILTER/DOOM/HIRES . && zip -r ~/GZDoom/mods/graphics/NeuralUpscale2x_v1.0-Base.pk3 HIRES SOUNDS SPRITES stepfix.wad && rm -Rf HIRES SOUNDS SPRITES stepfix.wad
user@linux ~/tmp/nu2x $ mv FILTER/DOOM.DOOM1/HIRES . && zip -r ~/GZDoom/mods/graphics/NeuralUpscale2x_v1.0-Addon-Doom1.pk3 HIRES && rm -Rf HIRES
user@linux ~/tmp/nu2x $ mv FILTER/DOOM.DOOM2/HIRES . && zip -r ~/GZDoom/mods/graphics/NeuralUpscale2x_v1.0-Addon-Doom2.pk3 HIRES && rm -Rf HIRES
user@linux ~/tmp/nu2x $ mv FILTER/DOOM.DOOM2.PLUTONIA/HIRES . && zip -r ~/GZDoom/mods/graphics/NeuralUpscale2x_v1.0-Addon-Plutonia.pk3 HIRES && rm -Rf HIRES
user@linux ~/tmp/nu2x $ mv FILTER/DOOM.DOOM2.TNT/HIRES . && zip -r ~/GZDoom/mods/graphics/NeuralUpscale2x_v1.0-Addon-TNT.pk3 HIRES && rm -Rf HIRES
user@linux ~/tmp/nu2x $ rm -Rf /tmp/nu2x

Smooth weapons decorate Add ON:

Das heruntergeladene Smooth Weapons Add On funktioniert nur mit GZDoom, da Zandronum das sogenannte Lump Filtering nicht unterstützt. Daher erzeuge ich mit den folgenden Befehlen kombinierbare Teilpakete, die sowohl mit GZDoom als auch Zandronum genutzt werden können.

user@linux ~ $ unzip -o ~/Downloads/NeuralUpscale2x_Smooth_Weapons.pk3 -d /tmp/nu2xsw
user@linux ~ $ cd /tmp/nu2xsw
user@linux ~/tmp/nu2xsw $ mv FILTER/DOOM.DOOM2/HIRES . && zip -r ~/GZDoom/mods/graphics/NeuralUpscale2x_Smooth_Weapons-Addon-Doom2.pk3 HIRES && rm -Rf HIRES
user@linux ~/tmp/nu2xsw $ mv FILTER/DOOM/HIRES . && rm -Rf FILTER && zip -r ~/GZDoom/mods/graphics/NeuralUpscale2x_Smooth_Weapons-Base.pk3 *
user@linux ~/tmp/nu2xsw $ rm -Rf /tmp/nu2xsw

Doom High Resolution Texture Pack (DHTP):

Im Folgenden wird der aktuelle Entwicklungsstand des Doom High Resolution Texture Packs heruntergeladen. Da das beiliegende Paketierungstool nur eine GZDoom-kompatible Version (Zandronum unterstützt das sogenannte Lump Filtering nicht) generieren kann, erzeuge ich mit den folgenden Befehlen kombinierbare Teilpakete, die sowohl mit GZDoom als auch Zandronum genutzt werden können.

user@linux ~ $ git clone https://github.com/KuriKai/DHTP.git /tmp/DHTP
user@linux ~ $ mkdir /tmp/DHTP/splitpack
user@linux ~ $ cd /tmp/DHTP/splitpack
user@linux ~/tmp/DHTP/splitpack $ for filename in "../docs/"*; do base_name=$(basename $filename); cat "../README.md" "$filename" "../credits.txt" > "README_$base_name"; done
user@linux ~/tmp/DHTP/splitpack $ mv ../textures/doom1 hires && zip -r ~/GZDoom/mods/graphics/DHTP-Addon-Doom1.pk3 . -i \*.PNG \*.png \*.txt && rm -Rf hires
user@linux ~/tmp/DHTP/splitpack $ mv ../textures/doom2 hires && zip -r ~/GZDoom/mods/graphics/DHTP-Addon-Doom2.pk3 . -i \*.PNG \*.png \*.txt && rm -Rf hires
user@linux ~/tmp/DHTP/splitpack $ mv ../textures/doom2-plut hires && zip -r ~/GZDoom/mods/graphics/DHTP-Addon-Plutonia.pk3 . -i \*.PNG \*.png \*.txt && rm -Rf hires
user@linux ~/tmp/DHTP/splitpack $ mv ../textures/doom2-tnt hires && zip -r ~/GZDoom/mods/graphics/DHTP-Addon-TNT.pk3 . -i \*.PNG \*.png \*.txt && rm -Rf hires
user@linux ~/tmp/DHTP/splitpack $ mv ../textures hires && mv ../flats/* hires/. && zip -r ~/GZDoom/mods/graphics/DHTP-Base.pk3 . -i \*.PNG \*.png \*.txt && rm -Rf hires README_*
user@linux ~/tmp/DHTP $ rm -Rf /tmp/DHTP

Zandronum SW-Renderer HUD-Fix:

Die hochskalierten Versionen der Grafiken floor7_2 und sttprcnt im Upscale-Pack sowie die hochauflösende Grafik floor7_2 im DHTP verursachen in Zandronum Darstellungsfehler in HUD und Rahmen bei Verwendung des Software Renderers und einer Screensize kleiner als 11. Daher wird im folgenden eine Mod mit den entsprechenden Originalgrafiken aus der DOOM.WAD erzeugt, mit welcher diese Änderungen aus Upscale Pack bzw. DHTP rückgängig gemacht werden können, indem diese Mod als letzte Datei, d.h. mit höchster Priorität, geladen wird. Hierzu wird die Windows-Binary des Tools WadExt mit Wine ausgeführt, da ich es hier auf die schnelle nicht kompilieren konnte. Bei einer Screensize ab 11 oder Verwendung des Zandronum-OpenGL-Renderers sowie für GZDoom ist diese Mod nicht erforderlich und sollte auch nicht verwendet werden.

user@linux ~ $ mkdir /tmp/zfix
user@linux ~ $ cd /tmp/zfix
user@linux ~/tmp/zfix $ unzip ~/Downloads/wadext_win32_2.1.zip
user@linux ~/tmp/zfix $ wine wadext.exe ~/GZDoom/games/DOOM.WAD
user@linux ~/tmp/zfix $ cd DOOM
user@linux ~/tmp/zfix/DOOM $ echo "gameinfo { BorderFlat = \"zdrmbrdr\" }" >ZMAPINFO
user@linux ~/tmp/zfix/DOOM $ cp FLATS/floor7_2.png FLATS/zdrmbrdr.png
user@linux ~/tmp/zfix/DOOM $ zip ~/GZDoom/mods/graphics/Zandronum-SWRenderer-HUD-Fix.pk3 ZMAPINFO FLATS/zdrmbrdr.png graphics/sttprcnt.png
user@linux ~/tmp/zfix/DOOM $ rm -Rf /tmp/zfix

The high resolution Doom sound effects pack:

user@linux ~ $ unzip ~/Downloads/pk_doom_sfx.zip -d ~/GZDoom/mods/audio/

IDKFA Remake of Doom 1 Soundtrack by Andrew Hulshult:

user@linux ~ $ unzip -j ~/Downloads/IDKFA_Soundtrack_Mod_v2.zip WAD/IDKFAv2.wad -d ~/GZDoom/mods/audio/

Roland SC-55 Music Pack für Doom II:

user@linux ~ $ cp ~/Downloads/doom2_sc55_ogg_v1.2.zip ~/GZDoom/mods/audio/

Roland SC-55 Music Pack für Final Doom (TNT Evilution):

user@linux ~ $ cp ~/Downloads/tntevilution_sc55_ogg.zip ~/GZDoom/mods/audio/

Final Doom Plutonia Project MIDI Pack:

user@linux ~ $ unzip ~/Downloads/plutmidi.zip plutmidi.wad -d ~/GZDoom/mods/audio/

Starten und Konfigurieren von GZDoom

Um GZDoom mit der gewünschten Kombination von Spiel(daten) und Modifikationen zu starten, gibt es zwei Möglichkeiten: Entweder werden die Informationen in Form von Kommandozeilenparametern bei Programmstart übergeben, oder sie werden in einer Konfigurationsdatei hinterlegt und können anschließend bei Programmstart über ein Popup ausgewählt werden. Für beide Varianten gilt, dass nach dem ersten Programmstart im Options-Menü Einstellungen vorgenommen werden sollten. Mehr dazu unten.

Hinweis: Falls GZDoom schon früher verwendet wurde, empfehle ich, die alte Konfigurationsdatei ~/.config/gzdoom/gzdoom.ini zu löschen, um bei der Konfiguration mit einer sauberen Ausgangslage zu beginnen.

1. Auswahl von Spiel(daten) und Modifikationen per Kommandozeile:

Doom bzw. Ultimate Doom und Sigel:

user@linux ~ $ gzdoom -iwad ~/GZDoom/games/DOOM.WAD -file ~/GZDoom/games/SIGIL_v1_21.wad ~/GZDoom/games/SIGIL_SHREDS.wad ~/GZDoom/mods/audio/pk_doom_sfx_20120224.wad ~/GZDoom/mods/audio/IDKFAv2.wad ~/GZDoom/mods/graphics/NeuralUpscale2x_v1.0-Base.pk3 ~/GZDoom/mods/graphics/NeuralUpscale2x_v1.0-Addon-GZDoomHUD.pk3 ~/GZDoom/mods/graphics/NeuralUpscale2x_v1.0-Addon-Doom1.pk3 ~/GZDoom/mods/graphics/NeuralUpscale2x_Smooth_Weapons-Base.pk3 ~/GZDoom/mods/graphics/DHTP-Base.pk3 ~/GZDoom/mods/graphics/DHTP-Addon-Doom1.pk3

Doom 2, No Rest for the Living und Master Levels for Doom 2:

user@linux ~ $ gzdoom -iwad ~/GZDoom/games/DOOM2.WAD -file ~/GZDoom/games/NERVE.WAD ~/GZDoom/games/master.wad ~/GZDoom/mods/audio/pk_doom_sfx_20120224.wad ~/GZDoom/mods/audio/doom2_sc55_ogg_v1.2.zip ~/GZDoom/mods/graphics/NeuralUpscale2x_v1.0-Base.pk3 ~/GZDoom/mods/graphics/NeuralUpscale2x_v1.0-Addon-GZDoomHUD.pk3 ~/GZDoom/mods/graphics/NeuralUpscale2x_v1.0-Addon-Doom2.pk3 ~/GZDoom/mods/graphics/NeuralUpscale2x_Smooth_Weapons-Base.pk3 ~/GZDoom/mods/graphics/NeuralUpscale2x_Smooth_Weapons-Addon-Doom2.pk3 ~/GZDoom/mods/graphics/DHTP-Base.pk3 ~/GZDoom/mods/graphics/DHTP-Addon-Doom2.pk3

Final Doom: TNT Evilution:

user@linux ~ $ gzdoom -iwad ~/GZDoom/games/TNT.WAD -file ~/GZDoom/mods/audio/pk_doom_sfx_20120224.wad ~/GZDoom/mods/audio/tntevilution_sc55_ogg.zip ~/GZDoom/mods/graphics/NeuralUpscale2x_v1.0-Base.pk3 ~/GZDoom/mods/graphics/NeuralUpscale2x_v1.0-Addon-GZDoomHUD.pk3 ~/GZDoom/mods/graphics/NeuralUpscale2x_v1.0-Addon-Doom2.pk3 ~/GZDoom/mods/graphics/NeuralUpscale2x_v1.0-Addon-TNT.pk3 ~/GZDoom/mods/graphics/NeuralUpscale2x_Smooth_Weapons-Base.pk3 ~/GZDoom/mods/graphics/NeuralUpscale2x_Smooth_Weapons-Addon-Doom2.pk3 ~/GZDoom/mods/graphics/DHTP-Base.pk3 ~/GZDoom/mods/graphics/DHTP-Addon-Doom2.pk3 ~/GZDoom/mods/graphics/DHTP-Addon-TNT.pk3

Final Doom: Plutonia Project:

user@linux ~ $ gzdoom -iwad ~/GZDoom/games/PLUTONIA.WAD -file ~/GZDoom/mods/audio/pk_doom_sfx_20120224.wad ~/GZDoom/mods/audio/plutmidi.wad ~/GZDoom/mods/graphics/NeuralUpscale2x_v1.0-Base.pk3 ~/GZDoom/mods/graphics/NeuralUpscale2x_v1.0-Addon-GZDoomHUD.pk3 ~/GZDoom/mods/graphics/NeuralUpscale2x_v1.0-Addon-Doom2.pk3 ~/GZDoom/mods/graphics/NeuralUpscale2x_v1.0-Addon-Plutonia.pk3 ~/GZDoom/mods/graphics/NeuralUpscale2x_Smooth_Weapons-Base.pk3 ~/GZDoom/mods/graphics/NeuralUpscale2x_Smooth_Weapons-Addon-Doom2.pk3 ~/GZDoom/mods/graphics/DHTP-Base.pk3 ~/GZDoom/mods/graphics/DHTP-Addon-Doom2.pk3 ~/GZDoom/mods/graphics/DHTP-Addon-Plutonia.pk3

Die obigen Aufrufe enthalten sowohl die Upscale-Packs als auch das DHTP High Resolution Pack. Aus der Aufrufreihenfolge ergibt sich die Priorität; da das DHTP zuletzt eingebunden wird, haben die dort enthaltenen Grafiken Vorrang gegenüber den Grafiken aus dem Upscale-Pack. Meistens spiele ich jedoch ohne DHTP: Dafür müssen lediglich die DHTP-Dateien ~/GZDoom/mods/graphics/DHTP-*.pk3 von der Kommandozeile entfernt werden.

2. Auswahl von Spiel(daten) und Modifikationen per Popup:

Mit dem ersten Aufruf von GZdoom (es reicht der Aufruf von "gzdoom" ohne Parameter) wird die Konfigurationsdatei ~/.config/gzdoom/gzdoom.ini mit Standardeinstellungen erzeugt. Nachdem eine initiale Konfigurationsdatei erzeugt wurde, kann diese mit einem Texteditor bearbeitet werden.

Die Konfigurationsdatei gliedert sich in verschiedene Abschnitte, die jeweils mit einem Bezeichner in eckigen Klammern beginnen. Die Einträge für einen Abschnitt müssen dann ohne Leerzeilen nacheinander folgen. In den folgenden Abschnitten sind die aufgeführten Einträge zu ergänzen. Dabei sollten bestehende Einträge nicht entfernt werden; der Lesbarkeit halber führe ich sie hier jedoch nicht auf.

[IWADSearch.Directories]
Path=$HOME/GZDoom/games

[doom.id.doom2.commercial.Autoload]
Path=$HOME/GZDoom/games/NERVE.WAD
Path=$HOME/GZDoom/games/master.wad
Path=$HOME/GZDoom/mods/audio/pk_doom_sfx_20120224.wad
Path=$HOME/GZDoom/mods/audio/doom2_sc55_ogg_v1.2.zip
Path=$HOME/GZDoom/mods/graphics/NeuralUpscale2x_v1.0-Base.pk3
Path=$HOME/GZDoom/mods/graphics/NeuralUpscale2x_v1.0-Addon-GZDoomHUD.pk3
Path=$HOME/GZDoom/mods/graphics/NeuralUpscale2x_v1.0-Addon-Doom2.pk3
Path=$HOME/GZDoom/mods/graphics/NeuralUpscale2x_Smooth_Weapons-Base.pk3
Path=$HOME/GZDoom/mods/graphics/NeuralUpscale2x_Smooth_Weapons-Addon-Doom2.pk3
Path=$HOME/GZDoom/mods/graphics/DHTP-Base.pk3
Path=$HOME/GZDoom/mods/graphics/DHTP-Addon-Doom2.pk3

[doom.id.doom2.plutonia.Autoload]
Path=$HOME/GZDoom/mods/audio/pk_doom_sfx_20120224.wad
Path=$HOME/GZDoom/mods/audio/plutmidi.wad
Path=$HOME/GZDoom/mods/graphics/NeuralUpscale2x_v1.0-Base.pk3
Path=$HOME/GZDoom/mods/graphics/NeuralUpscale2x_v1.0-Addon-GZDoomHUD.pk3
Path=$HOME/GZDoom/mods/graphics/NeuralUpscale2x_v1.0-Addon-Doom2.pk3
Path=$HOME/GZDoom/mods/graphics/NeuralUpscale2x_v1.0-Addon-Plutonia.pk3
Path=$HOME/GZDoom/mods/graphics/NeuralUpscale2x_Smooth_Weapons-Base.pk3
Path=$HOME/GZDoom/mods/graphics/NeuralUpscale2x_Smooth_Weapons-Addon-Doom2.pk3
Path=$HOME/GZDoom/mods/graphics/DHTP-Base.pk3
Path=$HOME/GZDoom/mods/graphics/DHTP-Addon-Doom2.pk3
Path=$HOME/GZDoom/mods/graphics/DHTP-Addon-Plutonia.pk3

[doom.id.doom2.tnt.Autoload]
Path=$HOME/GZDoom/mods/audio/pk_doom_sfx_20120224.wad
Path=$HOME/GZDoom/mods/audio/tntevilution_sc55_ogg.zip
Path=$HOME/GZDoom/mods/graphics/NeuralUpscale2x_v1.0-Base.pk3
Path=$HOME/GZDoom/mods/graphics/NeuralUpscale2x_v1.0-Addon-GZDoomHUD.pk3
Path=$HOME/GZDoom/mods/graphics/NeuralUpscale2x_v1.0-Addon-Doom2.pk3
Path=$HOME/GZDoom/mods/graphics/NeuralUpscale2x_v1.0-Addon-TNT.pk3
Path=$HOME/GZDoom/mods/graphics/NeuralUpscale2x_Smooth_Weapons-Base.pk3
Path=$HOME/GZDoom/mods/graphics/NeuralUpscale2x_Smooth_Weapons-Addon-Doom2.pk3
Path=$HOME/GZDoom/mods/graphics/DHTP-Base.pk3
Path=$HOME/GZDoom/mods/graphics/DHTP-Addon-Doom2.pk3
Path=$HOME/GZDoom/mods/graphics/DHTP-Addon-TNT.pk3

[doom.id.doom1.Autoload]
Path=$HOME/GZDoom/games/SIGIL_v1_21.wad
Path=$HOME/GZDoom/games/SIGIL_SHREDS.wad
Path=$HOME/GZDoom/mods/audio/pk_doom_sfx_20120224.wad
Path=$HOME/GZDoom/mods/audio/IDKFAv2.wad
Path=$HOME/GZDoom/mods/graphics/NeuralUpscale2x_v1.0-Base.pk3
Path=$HOME/GZDoom/mods/graphics/NeuralUpscale2x_v1.0-Addon-GZDoomHUD.pk3
Path=$HOME/GZDoom/mods/graphics/NeuralUpscale2x_v1.0-Addon-Doom1.pk3
Path=$HOME/GZDoom/mods/graphics/NeuralUpscale2x_Smooth_Weapons-Base.pk3
Path=$HOME/GZDoom/mods/graphics/DHTP-Base.pk3
Path=$HOME/GZDoom/mods/graphics/DHTP-Addon-Doom1.pk3

Auch hier gilt: Wenn das DHTP nicht verwendet werden soll, die entsprechenden Einträge mit den Dateinamen "DHTP-*.pk3" aus den Abschnitten entfernen.

Anschließend kann GZDoom ohne weitere Kommandozeilenparameter gestartet werden:

user@linux ~ $ gzdoom

3. GZDoom nach dem ersten Start konfigurieren

Nach dem ersten Start sollten die Grafikoptionen über das Options-Menü angepasst werden. Hier gibt es unzählige Einstellungen, mit denen das Erscheinungsbild des Spiels angepasst werden kann. Ich persönlich bevorzuge einen scharfen, pixeligen Look gegenüber den weichgezeichneten, "verwaschenen" Texturen der GZDoom-Standardeinstellungen. Grundsätzlich nehme ich folgende Einstellungen vor:

  • Options > Full options menu > Set video mode
    • Preferred Rendering API: Legt die API fest, mit der das Bild ausgegeben wird. OpenGL; bei neueren Grafikkarten ggf. Vulkan. Bei meinem 10 Jahre alten Notebook liegt die Framerate dagegen nur mit "OpenGL ES" in einem akzeptablen Bereich. Im Zweifelsfall ausprobieren. Eine Änderung dieser Option wird erst nach einem Neustart von GZDoom aktiv. Mit dem Befehl "vid_fps 1" in der GZDoom-Konsole kann man die FPS einblenden.
    • Render Mode: Legt fest, wie das Bild berechnet wird. Hier schwanke ich je zwischen Hardware accelerated und dem True Color SW Renderer. Wenn es möglichst klassisch sein soll, wähle ich den True Color SW Renderer. Möchte ich moderne Features wie Blickwinkelberücksichtigung bei der Spritedarstellung, Kantenglättung oder 3D-Modelle wähle ich Hardware accelerated. Zahlreiche Optionen in den Menüs haben bei Wahl des Software Renderers keine Auswirkungen.
    • Choose Resolution Preset: Hier wähle ich die native Bildschirmauflösung des Monitors aus.
  • Options > Full options menu > Display options:
    • Hardware Renderer > Adjust sprite clipping: Hat Auswirkungen auf die Darstellung der Sprites. Ohne Clipping werden die Sprites je nach Perspektive beim Hardware-Renderer hart abgeschnitten; in meinen Augen unschön, daher wähle ich hier Always.
    • Hardware Renderer > Multisample: Hat Auswirkungen auf die Kantendarstellung. Je nach Rechenleistung ganz deaktiviert, 2x oder gerne auch etwas höher (8x oder 16x), da dies zu glatteren Kanten führt.
    • Texture options > Texture Filter mode: Aus meiner Sicht die wichtigste Einstellung, wenn der Render mode "Hardware accelerated" ausgewählt wurde. Sie legt fest, welcher Filter auf die Texturen angewendet wird. Als Standard ist hier "Linear" vorausgewählt, was zu der in meinen Augen unscharfen und verwaschenen Bilddarstellung führt. Ich mag es scharf und (ein wenig) pixelig; daher wähle ich hier im Zweifelsfall None. Allerdings ist auch None (nearest mipmap) empfehlenswert, da dies (nur) in weiter Entfernung zu etwas weicheren und damit ruhigeren Texturen führt.
    • Texture options > Anisotropic filter: Hat Auswirkungen auf die Schärfe von entfernten Texturen. Je nach Rechenleistung 4x oder auch höher (8x, 16x).
    • Screensize: 11, um platzsparend ohne breite HUD/Statusleiste zu spielen.

Starten und Konfigurieren von Doomseeker und Zandronum

Zandronum benutze ich ausschließlich für Multiplayer-Spiele und starte den Source Port nicht direkt, sondern über den komfortablen Server-Browser Doomseeker. Da im Mehrspielermodus die Server vorgeben, welche WADs zu verwenden sind oder optional verwendet werden können, müssen diese auch nicht explizit vorgegeben werden; lediglich die Pfade zu den Ordnern mit den WAD-Dateien müssen in Doomseeker hinterlegt werden. Zudem besitzt Doomseeker die Funktion, die für einen bestimmten Server benötigten WAD-Dateien (jenseits der kommerziellen Spieledaten, die immer vorhanden sein müssen) automatisch aus dem Internet zu laden.

Hinweis: Falls Doomseeker oder Zandronum schon früher verwendet wurden, empfehle ich, die alten Konfigurationsdateien ~/.config/doomseeker/*.ini sowie ~/.config/zandronum/zandronum.ini zu löschen, um bei der Konfiguration mit einer sauberen Ausgangslage zu beginnen.

Doomseeker kann wie folgt gestartet werden:

user@linux ~ $ doomseeker

Beim ersten Start von Doomseeker öffnet sich automatisch der Konfigurationsdialog. Hier ist im Abschnitt File Paths zusätzlich ein Eintrag für den Pfad "~/GZDoom" mit der Option "Recurse" vorzunehmen. Anschließend kann ein Server in der Liste ausgewählt werden und mit einem Doppelklick Zandronum mit Verbindung zu dem gewählten Server gestartet werden.

Nach dem ersten Start von Zandronum sollten auch hier analog zu GZDoom einige Einstellungen im Options-Menü vorgenommen werden. Es gilt im Wesentlichen das oben gesagte, allerdings sind die Optionen im Menü abweichend angeordnet. Ich empfehle dementsprechend die folgenden Einstellungen; Erläuterungen siehe oben bei GZDoom:

  • Options > Set Video Mode
    • Fullscreen: YES
    • Aspect Ratio: Seitenverhältnis des eigenen Monitors auswählen, falls unten die native Bildschirmauflösung des Monitors nicht aufgeführt ist.
    • Renderer: OpenGL; ggf. auch Software. Eine Änderung dieser Option wird erst nach einem Neustart von Zandronum aktiv. Hinweis: Bei Screensize kleiner 11 und Verwendung von Upscale Pack und/oder DHTP können die Darstellungsfehler in HUD und Rahmen durch Einbinden der erstellten Zandronum-SWRenderer-HUD-Fix.pk3 behoben werden.
    • Bildschirmauflösung: Auswahl der nativen Bildschirmauflösung des eigenen Monitors
  • Options > Display Options > OpenGL Options
    • Preferences > Adjust Sprite Clipping: Always
    • Multisample-Einstellungen lassen sich in Zandronum nicht über das Menü vornehmen. Hierzu muss der Kommandozeilenparameter "+gl_vid_multisample 2" (oder 0, 2, 4, 6, 8, ... analog GZDoom) an Zandronum übergeben werden. Dazu diesen Parameter in der Doomseeker-Konfiguration unter dem Abschitt Games > Zandronum > Custom parameters eintragen.
    • Texture Options > Texture Filter Mode: None (nearest mipmap) oder None
    • Texture Options > Anisotropic Filter: 4x oder höher
  • Options > Display Options > Screensize: 11, um platzsparend ohne breite HUD/Statusleiste zu spielen.
  • Options > HUD Options > Message Options > Text Scaling
    • Enable Text Scaling: ON
    • Use Screen Ratio: Yes
    • Text Size Scalar: Schriften auf eine lesbare Größe skalieren
  • Options > Player Setup: Name und ggf. weitere Einstellungen (z.B. Always run und Weapon setup) vornehmen.

Starten und Konfigurieren eines dedizierten Zandronum-Servers (optional)

Der Zandronum-Server kann grundsätzlich mit dem Programm zandronum-server gestartet werden und über eine Vielzahl von Servervariablen individuell konfiguriert werden. Die Einstellungen können per Kommandozeile und Konfigurationsdateien übergeben werden.

Um nicht für jede Kombination aus Spiel (z.B. Doom, Doom 2) und Spielmodus (Deathmatch, Cooperative) eine eigene komplexe Server-Konfigurationsdatei pflegen zu müssen, habe ich meine Konfiguration wie folgt aufgebaut:

  1. Konfigurationsparameter, die unabhängig von Spiel und Spielmodus für jeden Server gleich sein sollen, pflege ich in einer zentralen Konfigurationsdatei mit dem Namen general.conf und binde diese bei jedem Serveraufruf ein.
  2. Konfigurationsparameter, die den Spielmodus definieren und konfigurieren, werden separat je Modus in zwei weiteren Konfigurationsdateien coop.conf und deathmatch.conf gepflegt und dann alternativ bei dem Serveraufruf je nach gewünschtem Modus eingebunden.
  3. Konfigurationsparameter, die das Spiel (z.B. Auswahl der obligatorischen und optionalen WAD-Dateien) sowie die konkrete Serverinstanz (z.B. Servername, Port) betreffen, übergebe ich per Kommandozeilenparameter. Für die verschiedenen Server habe ich mir daher jeweilige Start-Skripte erstellt: doom1-coop.sh, doom1-deathmatch.sh, doom2-coop.sh, doom2-deathmatch.sh, fdoom-plutonia-coop.sh, fdoom-tnt-coop.sh.

Die Startskripte liegen im Ordner ~/zandronum, die drei Konfigurationsdateien im Ordner ~/zandronum/configs und Logdateien werden gemäß Konfiguration unter ~/zandronum/logs erstellt. Die WAD-Dateien werden wie oben unter ~/GZDoom erwartet.

Bei der Auswahl und Festlegung der obligatorischen (Parameter -file) und optionalen (Parameter -optfile) Modifikationen ist zu beachten:

  • Falls die Mod Smooth Weapons verwendet werden soll, muss sie aus technischen Gründen (enthalt decorate.dec) obligatorisch eingebunden werden.
  • Die Mod Smooth Weapons funktioniert nicht korrekt, wenn sie vor der Mod Neural Upscale Pack geladen wird. Wenn Smooth Weapons verwendet wird, sollte auch die Mod Neural Upscale als obligatorisch eingebunden werden - und zwar in der Reihenfolge vor Smooth Weapons. Hintergrund ist hier, dass Zandronum alle obligatorischen Mods immer vor allen optionalen Mods läd, auch wenn die Parameter der obligatorischen und optionalen Mods in einer bestimmten Reihenfolge angegeben wurden.
  • Das "GZDoom HUD Addon" der Neural Upscale Mod sollte nicht mit Zandronum verwendet werden, da es sowohl im OpenGL- als auch Software-Renderer zu Darstellungsfehlern im HUD führt
  • Der "Zandronum SW-Renderer Fix" sollte optional eingebunden werden. Er behebt Darstellungsfehler im HUD bei Wahl des Software-Renderers. Mit dem OpenGL-Renderer ist der Fix nicht erforderlich und nicht empfehlenswert, da er die Qualität der enthaltenen Grafiken reduziert.

Die Firewall des Servers muss eingehenden Datenverkehr für die in den Startskripten definierten Server-IPs und UDP-Ports erlauben. Außerdem muss ausgehender Datenverkehr vom Server zum Masterserver von Doomseeker (IP 45.56.67.39, UDP-Port 15300) erlaubt werden, damit der eigene Server bei Doomseeker zur Auswahl steht (sofern dieser Dienst genutzt werden soll).

Auch Interessant - Für später merken: