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?

Blood (1997)

NBlood mit Upscale Pack

Für die Singleplayer-Kampagnen des DOS-Spiels Blood aus dem Jahr 1997 verwende ich den Source Port NBlood mit der Modifikation Blood Upscale Pack, welche optional mit dem Blood Voxel Pack kombiniert werden kann.

Der Source Port NBlood

Mit NBlood lässt sich Blood nativ unter Linux mit heutigen Bildschirmauflösungen und wahlweise einem Software- oder OpenGL-Renderer spielen

Mit Stand vom 19.11.2021 unterstützt der NBlood-Hauptentwicklungszweig (master) allerdings noch nicht das Feature "indexed hightiles" (u.a. Definition von "T_INDEXED" in der Datei source/build/src/defs.cpp). Dieses wird benötigt, wenn das aktuelle Upscale-Paket (Version 2.1) verwendet werden soll und ist im Entwicklungszweig "upscale" enthalten (commit).

Der NBlood-Entwicklungszweig "upscale" kann wie folgt heruntergeladen und kompiliert werden:

Im Folgenden wird davon ausgegangen, dass sich die DOS-Version von Blood im Ordner ~/Blood befindet. Auf Abhängigkeiten zu externen Bibliotheken wird an dieser Stelle nicht eingegangen.

user@linux ~/Blood $ git clone https://github.com/nukeykt/NBlood.git
user@linux ~/Blood $ cd NBlood
user@linux ~/Blood/NBlood $ git checkout upscale
user@linux ~/Blood/NBlood $ make

Soll das Upscale-Paket nicht verwendet werden oder wurde die "indexed hightiles" Funktionalität in den Hauptzweig aufgenommen, kann auf den Befehl "git checkout upscale" verzichtet werden.

Die Installation des Gentoo-Pakets aus dem inoffiziellen Overlay jorgicio (enthält nicht die "indexed hightiles" Funktionalität) ist unabhängig von dessen Verwendung vor dem Kompilieren der GIT-Version empfehlenswert, da so automatisch alle benötigen Bibliotheken installiert werden:

linux ~ # ACCEPT_KEYWORDS="~amd64" USE="flac fluidsynth gtk opengl pulseaudio server timidity vorbis vpx xmp tools" emerge nblood -pv

Zuletzt von mir verwendete Revision: dfbee4aa6c233af062147d9cb873b217b322201d

Die Mods Blood Upscale Pack und Blood Voxel Pack

Das Upscale Pack enthält mit Verfahren der künstlichen Intelligenz hochskalierte Versionen der Originalgrafiken, welche auf den heutigen hochauflösenden Monitoren optisch ansprechender sind als die Originalgrafiken. Es enthält außerdem eine ebenfalls hochskalierte Version der Modifikation Smoothblood, welche das Spiel um flüssigere Waffenanmiationen ergänzt.

Das Voxel Pack ersetzt die 2D-Sprites einiger Objekte durch 3D-Modelle. Leider sind die Texturen dieser 3D-Modelle nicht analog zu den Grafiken des Upscale Packs hochskaliert und die betroffenen Objekte wirken in der Spielewelt daher pixeliger als die im Upscale-Pack enthaltenen Grafiken. Hier muss man abwägen, was besser gefällt: auf die restliche Optik abgestimmte 2D-Sprites mit feineren Pixeln oder 3D-Modelle mit etwas gröberen Pixeln.

Die Mods können wie folgt heruntergeladen werden:

Die Mods können wie folgt installiert werden:

Im Folgenden wird davon ausgegangen, dass die heruntergeladenen Dateien im Ordner ~/Downloads gespeichert wurden.

Upscale Pack:

user@linux ~ $ mkdir -p ~/Blood/mods/blood-upscale-pack-v2.1
user@linux ~ $ unzip ~/Downloads/bloodupscalepack.zip -d ~/Blood/mods/blood-upscale-pack-v2.1/

Voxel Pack:

user@linux ~ $ mkdir -p ~/Blood/mods/blood-voxel-pack-v0.95
user@linux ~ $ cp ~/Downloads/voxels_blood_v095.zip ~/Blood/mods/blood-voxel-pack-v0.95/.

NBlood kann mit den installierten Mods wie folgt gestartet werden:

Reguläre Kampagne und Plasma Pak:

user@linux ~/Blood $ NBlood/nblood -g mods/blood-upscale-pack-v2.1/autoload/base-component.zip -g mods/blood-upscale-pack-v2.1/autoload/smoothblood_upscale.zip -g mods/blood-voxel-pack-v0.95/voxels_blood_v095.zip -h mods/blood-upscale-pack-v2.1/blood.def

Offizielle Erweiterung Cryptic Passage:

user@linux ~/Blood $ NBlood/nblood -ini CRYPTIC.INI -g mods/blood-upscale-pack-v2.1/autoload/base-component.zip -g mods/blood-upscale-pack-v2.1/autoload/smoothblood_upscale.zip -g mods/blood-voxel-pack-v0.95/voxels_blood_v095.zip -h mods/blood-upscale-pack-v2.1/blood.def

Der gewünschte Renderer (Software oder OpenGL) kann gemeinsam mit der Bildschirmauflösung über das Popup bei Programmstart ausgewählt werden.

Soll das Voxel-Pack nicht verwendet werden, ist es ausreichend, den Kommandozeilenparameter "-g mods/blood-voxel-pack-v0.95/voxels_blood_v095.zip" wegzulassen.

Anmerkung: Die Definitionsdatei blood.def aus dem Upscale-Pack sieht bereits die Integration des Voxel-Packs vor und enthält bereits dessen Definitionen. Daher ist es nicht erforderlich, die dem Voxel-Pack beiliegende Definitionsdatei zusätzlich zu laden.

Multiplayer

Ob Multiplayerspiele mit NBlood möglich sind, habe ich bislang weder recherchiert noch ausprobiert. Ggf. ist hier ein anderer Source Port erforderlich oder es muss auf die ursprüngliche DOS-Version mit DOSBox zurückgegriffen werden.