Duke Nukem 3D v linuxu

<small>Z PVwiki</small>

Zprovoznění legendární FPS Duke Nukem 3D v prostředí operačního systému GNU/Linux

Jelikož většina z nás už tak nějak nemá čas a chuť zkoušet hromady současných her, věřím, že mnozí by se čas od času vrátili do mladých let a zavzpomínali na tehdejší herní pecky :)

Jednou z nich je i legendární Duke Nukem 3D, jehož zdrojové kódy byly před časem uvolněny.

Duke funguje pod linuxem velmi dobře, a to dokonce včetně síťového kódu. Bohužel neexistuje ve formě balíčku pro žádnou linuxovou distribuci (pouze Gentoo ho má v portage), takže instalace proběhne ručně, pomocí staré dobré kompilace. Postup instalace na Debian následuje, jiné distribuce to budou mít velmi podobné.


Obsah

Instalace

Příprava instalace

1) V prvé řadě potřebujeme několik balíčků, bez nichž hru nezkompilujeme, případně nepojede tak, jak bychom potřebovali. Proto nainstalujeme následující balíčky (s právy roota, samozřejmě):

apt-get install nasm timidity freepats

Pro kompilaci je samozřejmě potřeba celá řada vývojových knihoven, jejich seznam uvádím na konci. Proto je instalujte dle potřeby (v Ubuntu nezapomeňte na build-essential).

Knihovna Fmod

2) Fmod. Tato knihovna zajišťuje podporu zvuku, nicméně kvůli odlišné licenci ji nenajdeme v distribuci. Proto ji budeme muset stáhnout "ručně" z Merlina _ a vybalíme potřebné soubory. Mezi ně patří libfmod-3.75.so z adresáře fmodapi375linux/api v uvedeném archivu, který nakopírujeme do adresáře /usr/lib ve vašem systému (potřebujeme opět administrátorská práva). Dále vytvoříme symbolický link pomocí tohoto příkazu:

cd /usr/lib && ln -s libfmod-3.75.so libfmod.so

Tím zajistíme lepší šanci nalezení dané knihovny a zároveň tím určíme, která verze se má použít ;) Další potřebné soubory najdeme v archivu v adresáři fmodapi375linux/api/inc a všechny 4 nakopírujeme do adresáře /usr/include. Tím máme Fmod nainstalováno.

Instalace Duke 3D

3) Tím máme hotovu přípravu a můžeme se pustit do samotného Duka. Stáhneme dva komprimované archivy: build _ a duke3d _. Vytvoříme si adresář na příhodném místě (většinou /usr/local/src/dn3d), do nejž oba archivy nakopírujeme a rozbalíme. Zdrojové kódy Duka vyžadují přítomnost buildovacího helperu na konkrétním místě, proto ještě vytvoříme jeden symbolický link:

cd /usr/local/src/dn3d && ln -s jfbuild_src_20051009 build

Dalším nutným krokem je aplikování patche, který opravuje chybně fungující ovládáni a rovněž zprovozňuje zvuk. Tak tedy: patch pro build _, patch pro duke3d _. Každý soubor uložíme do našeho adresáře /usr/local/src/dn3d a aplikujeme:

patch -p0 <jfbuild_src_20051009.patch
patch -p0 <jfduke3d_src_20051009.patch

Vše by mělo proběhnout OK. Pokud ano, tak můžeme postupně oba zdrojáky zkompilovat. Nejdříve tedy build:

cd /usr/local/src/dn3d/jfbuild_src_20051009 && make

a poté duke3d:

cd /usr/local/src/dn3d/jfduke3d_src_20051009 && make

Až na pár warningů by mělo vše proběhnout OK a v adresáři jfduke3d_src_20051009 bychom měli najít soubor duke3d, což je náš hledaný spouštěcí soubor pro Duke 3D.

duke3d.grp

4) Nyní máme binárku, chybí však data. Prohrabeme tedy skříně s archivními disketami a najdeme naši obstarožní instalačku Duke Nukem 3D. Z ní potřebujeme získat hlavní datový soubor - duke3d.grp, který defacto obsahuje kompletní hru. Originální musíme použít z toho důvodu, že uvolněny byly zdrojové kódy hry, nikoli však data (may, textury apod.), takže musíme použít ty, které přišly před 15 lety s hrou ;) Jakmile z instalaček libovolným způsobem vyextrahujeme uvedený soubor duke3d.grp, zkopírujeme jej do stejného adresáře, kde se nachází naše nová spouštěcí binárka. Pozor! Název duke3d.grp musí být malými písmeny, nezapomeňte jej tedy v případě potřeby přejmenovat!!!

Spuštění Duke Nukem 3D

5) Nyní již pod obyčejným uživatelem vstoupíme do adresáře s hrou (/usr/local/src/dn3d) a spustíme ji.

./duke3d


PŘÍJEMNÉ VZPOMÍNÁNÍ :o)

Časem ještě doplním help pro hraní po síti a můžeme to rozjet ;)

Lyon

Potřebné knihovny

uvedený výčet knihoven je vztažen k distribuci Debian/Ubuntu

Zřejmě kompletní seznam knihoven, které budete potřebovat ke kompilaci. Nezapomeňte, že potřebujete nainstalovat hlavně vývojové balíčky - to jsou ty s příponou -dev ve vašem správci balíčků.

libatk-1.0.so
libcairo.so
libc.so
libdl.a
libdl.so
libexpat.so
libfmod-3.75.so
libfontconfig.so
libfreetype.so
libgcc_s.so
libgdk_pixbuf-2.0.so
libgdk-x11-2.0.so
libglib-2.0.so
libGL.so
libGLU.so
libgmodule-2.0.so
libgobject-2.0.so
libgtk-x11-2.0.so
libm.a
libm.so
libogg.so
libpango-1.0.so
libpangocairo-1.0.so
libpangoft2-1.0.so
libpng12.so
libpthread-2.3.6.so
libpthread.a
libpthread.so
libsasl2.so
libSDL-1.2.so
libSDL_mixer-1.2.so
libSDL_mixer.so
libSDL.so
libsmpeg-0.4.so
libstdc++.so
libvorbisfile.so
libvorbis.so
libX11.so
libXau.so
libXcursor.so
libXext.so
libXfixes.so
libXinerama.so
libXi.so
libXrandr.so
libXrender.so
libz.so


Screenshoty

Osobní nástroje