Seite wählen

Inhalt

Einleitung
I. Duke Nukem 3D – Ein Klassiker im Rückblick
II. Das Spiel und seine Besonderheiten (Achtung: Spoiler!)
III. Tutorial: EDuke32 im Eigenbau unter Linux Mint
1. Quelltext herunterladen
2. Vorbereitung
3. Kompilieren der Software
4. Einrichten und Erweitern des Spiels

Einleitung

Duke Nukem, Protagonist des nach ihm benannten Ego-Shooters Duke Nukem 3D – oder kurz: Duke 3D – war ursprünglich im Grunde ein äußerst friedfertiger, mitfühlender und diskussionsbereiter Zeitgenosse. Als aber feindliche Aliens seine „Chicks“ entführten, diskutierte er nicht lange mit ihnen: Er trat sie in den Ar*** und andere Körperteile, die diese Bastarde wahrscheinlich gar nicht hatten und… – das war es dann eigentlich schon mit der Handlung des Spiels, das damals wie heute, wenn auch aus jeweils anderen Gründen, polarisieren dürfte – gut so!

Tatsächlich handelt es sich beim „Duke“ um eine Art Kreuzung aus Arnold Schwarzenegger (in Predator) und Sylvester Stallone (in Rambo II), also einen aus der Zeit gefallenen Anachronismus. Trotzdem – oder genau deswegen – hat es sehr viel Spaß gemacht, sich diesen Helden meiner Jugend noch einmal vorzunehmen. Ursprünglich bereits 1996 veröffentlicht, schien es mir allerdings wenig sinnvoll, den großartigen, aber doch etwas in die Jahre gekommenen „3D-Ego-Shooter“, ein Computerspiel, das wirklich alles war – nur nicht jugendfrei oder gar politisch korrekt – auf einer zeitgenössischen Maschine zu spielen. Selbstverständlich ist das möglich, unter Linux z. B. in der DosBOX, macht aber bereits angesichts der niedrig aufgelösten Texturen nicht mehr wirklich Spaß, denn das sähe alles doch arg verpixelt aus. Genau diese Lücke haben – wie auch bei anderen Klassikern der 90er Jahre – engagierte und talentierte Fans geschlossen, die nicht nur neue „Engines“ für den Duke programmierten, sondern nicht zuletzt eine Vielzahl feiner, hoch auflösender Grafiken für das Spiel erstellten. Damit macht es dann sogar in Full-HD auf einem (sehr) großen Bildschirm wieder Spaß.

Der folgende Beitrag stellt kurz die Geschichte (I.), den Inhalt und vor allem die Besonderheiten des Spiels (II.) dar. Ein Tutorial bzw. eine Anleitung erklärt Schritt für Schritt, wie das Spiel in neuem Gewand unter Linux zum Laufen gebracht und erweitert werden kann (III.).

I. Duke Nukem 3D – Ein Klassiker im Rückblick

Nachdem Computerspiele wie Wolfenstein 3D oder vor allem Doom angesichts ihrer für damalige Verhältnisse revolutionären, zumindest nach 3D aussehenden Grafik für Furore gesorgt hatten, veröffentlichte die Apogee Software, Ltd. bzw. (später) 3D Realms Anfang 1996 Duke Nukem 3D. Nüchtern technisch betrachtet tatsächlich eher 2,5D; aber es sah schon verdammt nach 3D aus, zumal die Engine anders als z. B. die von Doom auch schräge Flächen darstellen konnte. Auf der Grundlage erstellte u. a. der bekannte Leveldesigner Richard „Levelord“ Gray sehr ausgefeilte Level, die wesentlich mit zum hohen Spielspaß beitrugen.

Wegen seiner doch recht expliziten Gewaltdarstellungen (…) landete das Spiel prompt auf dem „Index“. Erst Anfang 2017 (sic!) hob die Bundesprüfstelle die Indizierung wieder auf.

Bereits 2003 (am 1. April) veröffentliche 3D Realms den Quelltext des Spieles unter der GNU GPL, schloss den Spielinhalt aber davon aus.

II. Das Spiel und seine Besonderheiten (Achtung: Spoiler!)

Die Handlung – soweit man davon sprechen kann – des Spiels ist schnell beschrieben: Feindliche Aliens überfallen die Erde und entführen u. a. die „Chicks“ des Duke. Grund genug für ihn, die Sache selbst in die Hand zu nehmen und zum Gegenangriff überzugehen. Das war es im Grunde.

Achtung – Spoilerwarnung:

Wer das Spiel noch nicht kennt und sich die Überraschung nicht verderben lassen möchte, sollte den folgenden Text überspringen und unter III. Tutorial: EDuke32 im Eigenbau unter Linux weiterlesen.

Das Spiel enthält zahlreiche popkulturelle Verweise etwa auf Filmklassiker wie Alien – Das unheimliche Wesen aus einer fremden Welt oder Aliens – Die Rückkehr. Wer sich erstmals mit den an Facehugger erinnernden Aliens herumplagen darf oder die in der Nähe von Alieneiern „eingesponnenen“ Frauen zu sehen bekommt, wird wissen, was ich meine:

Aliens - Die Rückkehr

Beschränkte sich Duke Nukem 3D allerdings darauf, wäre das Spiel längst vergessen – und das völlig zu Recht. Was macht es also so besonders, was sorgt für den zeitlosen Spielspaß?

Zuerst einmal das Design der durchgehend sehr ausgefeilten Level des Spiels: Bis heute ist es mir nicht gelungen, alle „Secrets“, also geheimen Bereiche der Level zu entdecken.

Einige Level verändern während des Spielens nach entsprechenden Handlungen des Spielers sogar ihre Struktur, so sprengt der Protagonist auch gerne einmal ein ganzes Gebäude aus dem Weg usw.

Daneben sorgen technische Innovationen für nachhaltigen Spielspaß: Mittels Überwachungskameras kann der Duke einzelne, noch unbekannte Bereiche des jeweiligen Levels durch Benutzen der Monitore betrachten, dadurch künftige Gegner bereits vorab und Folgen seiner Aktionen, etwa das Betätigen eines Schalters erkennen.

Das „Jetpack“ lässt ihn fliegen, mit der Nachtsichtbrille erkennt er Gegner in der Dunkelheit usw.

Damals wie heute tragen sehr innovative Waffen ebenfalls erheblich zum Spielspaß bei: Neben obligatorischer Pistole und Schrotflinte kann der Duke schon bald auch „Pipebombs“ nutzen: Rohrbomben, die er zunächst platzieren und dann aus sicherer Entfernung zünden kann oder das zumindest tunlichst sollte, sonst – nun ja…:

Sicherheitsabstand nicht eingehalten - offensichtlich...

Humoristischer Höhepunkt allerdings sind Alienwaffen wie „Shrinker“ und „Freezer“: Mit dem Shrinker z. B. kann Duke seine Gegner erheblich verkleinern, um sie dann schlicht zu zertreten („squish“ bzw. „crunch“):

Der Freezer vereist Gegner, die der Duke dann ebenfalls zertreten oder eher zersplittern kann.

Vor allem aber der unnachahmliche, absolut schräge und politisch ganz und gar nicht korrekte Humor des Spiels macht es auch heute noch und damit zeitlos komisch: Das beginnt schon mit den Sprüchen des Duke, der viele seiner Handlungen kommentiert – oder auch die Untätigkeit des Spielers: „What are you waiting for – Christmas?!“

Waffenfunde kommentiert er ebenso („Groovy!“, „Come get some…“) wie sein eigenes Spiegelbild („Damn – I‘m looking good!“). Toiletten im Spiel kann er tatsächlich benutzen („Ah – that‘s better…“) oder wahlweise Aliens buchstäblich vom Thron schießen, die dort ebenfalls zuweilen ihren Bedürfnissen nachgehen:

Alien in heikler Situation...

Mit Frauen, insbesondere Stripperinnen im Spiel kann der Duke interagieren: Steckt er ihnen etwas Geld zu – nun ja, seht selbst…

Ob der „Konkurrenz“ mittels gefallenem Doomtrooper nun Respekt erwiesen oder der Mittelfinger gezeigt werden sollte, kann meines Erachtens dahinstehen: So oder so nur ein weiterer lustiger Höhepunkt, als der Duke in einem der Level den Trooper aus Doom™ findet und das ebenfalls entsprechend kommentiert („That’s one doomed space marine!“):

One doomed Space-Marine

Neben den spannenden Leveln des Spiels ist es vor allem dieser Humor, der für nachhaltigen Spielspaß sorgt. Aber genug davon – nun zum Spiel bzw. zum Tutorial:

III. Tutorial: EDuke32 im Eigenbau unter Linux

Angesichts des hohen Unterhaltungswerts überrascht die nach wie vor anhaltende Begeisterung vieler Fans nicht wirklich. Nach Veröffentlichung des Quelltextes 2003 portierten einige das Spiel u. a. auf die Linux-Plattform.

Für meine Zwecke nutze ich unter Linux Mint 18.1 (Serena) mit EDuke32 eine quelloffene Entwicklung, die für nicht-kommerzielle Zwecke kostenlos genutzt werden darf. Die Software läuft auf den unterschiedlichsten Plattformen, neben Linux etwa unter Windows, Mac OS X oder FreeBSD – bis hin zum „family toaster“ und „your girlfriend’s vibrator“ (so zumindest die Programmierer auf ihrer Website), das aber eher der Vollständigkeit halber.

Achtung:

EDuke32 ermöglicht das Spielen von Duke Nukem 3D, *ist* aber nicht das vollständige Spiel selbst, da 3D Realms sich seinerzeit die Rechte am Spielinhalt vorbehielt. Zum Spielen ist daher nach wie vor die Datei duke3d.grp des Originalspiels oder der Shareware-Version erforderlich. Wer keine alte Diskette oder CD mehr hat, wird evtl. auf Steam™ fündig.

Diese Software führt das Spiel nativ aus, benötigt also keinerlei Emulator o. ä., um z. B. die DOS-Plattform des ursprünglichen Spiels nachzuahmen. Dabei verbessert EDuke32 das ursprüngliche Spiel deutlich. Nun bestehen die Gegner im Spiel aus echten 3D-Modellen statt der ursprünglichen 2D-Sprites. Duke 3D kann nun auch in „crazy resolutions like 3072×2304“ (O-Ton) gespielt werden – ganz ehrlich: In Full-HD bzw. 1920×1080 auf einem 49-Zoll-Bildschirm reichte mir das schon völlig…

Für den Eigenbau unter Linux Mint 18.1 habe ich den Quellcode heruntergeladen (1.), das Kompilieren vorbereitet (sämtliche Abhängigkeiten erfüllt usw.) (2.), die Software dann kompiliert (3.), schließlich eingerichtet (ein Installieren im eigentlichen Sinne ist nicht erforderlich), und dabei vor allem mit ein paar sinnvollen Erweiterungen ergänzt (4.). Meine Beschreibung folgt dabei im Wesentlichen der offiziellen Anleitung, die ich auf Grundlage meiner Erfahrungen damit hier noch etwas ergänzt habe:

1. Herunterladen und soweit erforderlich Entpacken des Quelltextes

EDuke32 wird gegenwärtig aktiv weiter entwickelt und gepflegt, daher kann bei Erscheinen dieses Textes bereits eine aktuellere Version des Quelltextes erschienen sein.

Daher empfehle ich den Download der jeweils aktuellen Version direkt aus dem „EDuke32 Subversion (SVN) Repository“. Folgende Befehle habe ich dafür im Terminal eingegeben bzw. in der Shell ausgeführt:

Hinweis (für Linux-Neulinge):

Unter Linux arbeite ich sehr viel mit dem Terminal. Dennoch tippe ich kaum Befehle ein, denn unter Linux kann markierter Text per Klick auf die mittlere Maustaste einfach in die Konsole bzw. das Terminal kopiert werden. Also: Nachstehende Befehlszeilen bitte nicht abtippen (schon gar nicht die längeren weiter unten…), sondern markieren und per Mausklick (oder notfalls via copy & paste) ins Terminal einfügen – Exkurs Ende.

$ cd ~/Downloads
$ mkdir Software
$ cd Software
$ svn checkout http://svn.eduke32.com/eduke32

Das sollte dann zu folgender Ausgabe führen:

Ausgabe des SVN-Befehls:

A eduke32/jit
A eduke32/package
A eduke32/package/common
A eduke32/package/debug
A eduke32/package/debug/win32
A eduke32/package/debug/win64
A eduke32/package/sdk
A eduke32/package/sdk/samples
A eduke32/platform
A eduke32/platform/Apple
A eduke32/platform/Apple/EDuke32.xcodeproj
A eduke32/platform/Apple/bundles
A eduke32/platform/Apple/bundles/EDuke32.app
A eduke32/platform/Apple/bundles/EDuke32.app/Contents
A eduke32/platform/Apple/bundles/EDuke32.app/Contents/Resources
A eduke32/platform/Apple/bundles/Mapster32.app
A eduke32/platform/Apple/bundles/Mapster32.app/Contents
A eduke32/platform/Apple/bundles/Mapster32.app/Contents/Resources
A eduke32/platform/Apple/iOS
A eduke32/platform/Apple/iOS/Images.xcassets
A eduke32/platform/Apple/iOS/Images.xcassets/AppIcon.appiconset
A eduke32/platform/Apple/iOS/Images.xcassets/LaunchImage.launchimage
A eduke32/platform/Apple/iOS/en.lproj
A eduke32/platform/Wii
A eduke32/platform/Wii/apps
A eduke32/platform/Wii/apps/eduke32
A eduke32/jit/ABOUT_THIS_DIR
A eduke32/jit/bcsave.lua
A eduke32/package/common/buildlic.txt
A eduke32/platform/Wii/apps/mapster32
A eduke32/platform/Wii/include
A eduke32/platform/Wii/include/SDL
A eduke32/package/common/gpl-2.0.txt
A eduke32/platform/Apple/EDuke32.xcodeproj/project.pbxproj
A eduke32/platform/Apple/bundles/Mapster32.app/Contents/Resources/mapster32.icns
A eduke32/platform/Apple/bundles/Mapster32.app/Contents/PkgInfo
A eduke32/platform/Apple/iOS/en.lproj/InfoPlist.strings
A eduke32/platform/Wii/apps/mapster32/icon.png
A eduke32/platform/Wii/include/SDL/SDL_audio.h
A eduke32/platform/Wii/include/SDL/SDL_config_dreamcast.h
A eduke32/platform/Wii/include/SDL/SDL_byteorder.h
A eduke32/platform/Wii/include/SDL/SDL_config_macos.h
A eduke32/platform/Apple/bundles/EDuke32.app/Contents/Resources/eduke32.icns
A eduke32/platform/Wii/include/SDL/SDL_config_nds.h
A eduke32/platform/Wii/include/SDL/SDL_config_os2.h
A eduke32/platform/Wii/include/SDL/SDL_config_win32.h
A eduke32/platform/Wii/include/SDL/SDL_copying.h
A eduke32/platform/Apple/bundles/EDuke32.app/Contents/Resources/orange.icns
A eduke32/platform/Apple/bundles/EDuke32.app/Contents/PkgInfo
A eduke32/package/debug/win32/ebacktrace1.dll
A eduke32/platform/Wii/include/SDL/SDL_error.h
A eduke32/platform/Wii/include/SDL/SDL_events.h
A eduke32/platform/Wii/include/SDL/SDL_keyboard.h
A eduke32/platform/Apple/bundles/Mapster32.app/Contents/Resources/build.png
A eduke32/platform/Apple/bundles/Mapster32.app/Contents/Info.plist
A eduke32/platform/Apple/iOS/Images.xcassets/LaunchImage.launchimage/Contents.json
A eduke32/platform/Wii/apps/eduke32/icon.png
A eduke32/platform/Wii/include/SDL/SDL_active.h
A eduke32/platform/Wii/include/SDL/SDL_config.h
A eduke32/platform/Wii/include/SDL/SDL_config_minimal.h
A eduke32/platform/Wii/include/SDL/SDL_config_wii.h
A eduke32/platform/Wii/include/SDL/SDL_endian.h
A eduke32/platform/Wii/include/SDL/SDL_joystick.h
A eduke32/platform/Wii/include/SDL/SDL_main.h
A eduke32/platform/Wii/include/SDL/SDL_mixer.h
A eduke32/platform/Wii/include/SDL/SDL_keysym.h
A eduke32/platform/Wii/include/SDL/SDL_name.h
A eduke32/platform/Wii/include/SDL/SDL_mouse.h
A eduke32/platform/Wii/include/SDL/SDL_rwops.h
A eduke32/platform/Wii/include/SDL/SDL_platform.h
A eduke32/platform/Wii/include/SDL/SDL_opengl.h
A eduke32/platform/Wii/include/tremor
A eduke32/platform/Wii/include/SDL/SDL_stdinc.h
A eduke32/platform/Wii/include/SDL/SDL_syswm.h
A eduke32/platform/Wii/include/SDL/SDL_timer.h
A eduke32/platform/Wii/include/SDL/SDL_version.h
A eduke32/platform/Wii/include/SDL/SDL_types.h
A eduke32/platform/Wii/include/SDL/close_code.h
A eduke32/platform/Wii/include/SDL/begin_code.h
A eduke32/platform/Wii/include/tremor/ogg.h
A eduke32/platform/Wii/include/tremor/ivorbisfile.h
A eduke32/platform/Wii/include/tremor/config_types.h
A eduke32/platform/Wii/include/pngconf.h
A eduke32/platform/Wii/include/tremor/os_types.h
A eduke32/package/debug/win64/ebacktrace1-64.dll
A eduke32/package/sdk/samples/_clipshape0.map
A eduke32/package/sdk/samples/a.m32
A eduke32/package/sdk/samples/aspect.map
A eduke32/package/sdk/samples/dump_used_assets.m32
A eduke32/package/sdk/samples/m32script_ex.map
A eduke32/package/sdk/samples/r_usenewshading.map
A eduke32/package/sdk/samples/ror.map
A eduke32/package/sdk/samples/splitscr.con
A eduke32/package/sdk/samples/spriteclip.txt
A eduke32/package/sdk/samples/startpos.m32
A eduke32/platform/Wii/lib
A eduke32/package/sdk/samples/test_tileoffsets.map
A eduke32/package/sdk/samples/tests.m32
A eduke32/package/sdk/samples/trueror1.map
A eduke32/platform/Windows
A eduke32/platform/Windows/include
A eduke32/platform/Windows/include/FLAC
A eduke32/package/sdk/samples/weapons.sample.con
A eduke32/package/sdk/SEHELP.HLP
A eduke32/package/sdk/STHELP.HLP
A eduke32/package/sdk/m32help.hlp
A eduke32/package/sdk/names.h
A eduke32/package/sdk/tiles.cfg
A eduke32/platform/Apple/bundles/EDuke32.app/Contents/Resources/alternate.icns
A eduke32/platform/Wii/include/pnglibconf.h
A eduke32/platform/Wii/include/zconf.h
A eduke32/platform/Apple/bundles/EDuke32.app/Contents/Resources/game.png
A eduke32/platform/Apple/bundles/EDuke32.app/Contents/Info.plist
A eduke32/platform/Windows/include/SDL2
A eduke32/platform/Apple/bundles/Mapster32.app/Contents/Resources/alternate.icns
A eduke32/platform/Wii/lib/libaesnd_tueidj.a
A eduke32/platform/Wii/eduke32_meta_1.xml
A eduke32/platform/Wii/notes.txt
A eduke32/platform/Windows/include/FLAC/callback.h
A eduke32/platform/Windows/include/FLAC/ordinals.h
A eduke32/platform/Windows/include/SDL2/SDL_assert.h
A eduke32/platform/Windows/include/SDL2/SDL_blendmode.h
A eduke32/platform/Apple/bundles/Mapster32.app/Contents/Resources/orange.icns
A eduke32/platform/Apple/iOS/Images.xcassets/AppIcon.appiconset/Contents.json
A eduke32/platform/Apple/iOS/Info.plist
A eduke32/platform/Wii/include/SDL/SDL.h
A eduke32/platform/Wii/include/SDL/SDL_cdrom.h
A eduke32/platform/Wii/include/SDL/SDL_config_macosx.h
A eduke32/platform/Wii/include/SDL/SDL_config_symbian.h
A eduke32/platform/Wii/include/SDL/SDL_cpuinfo.h
A eduke32/platform/Wii/include/SDL/SDL_getenv.h
A eduke32/platform/Wii/include/SDL/SDL_loadso.h
A eduke32/platform/Wii/include/SDL/SDL_mutex.h
A eduke32/platform/Wii/include/SDL/SDL_quit.h
A eduke32/platform/Wii/include/SDL/SDL_thread.h
A eduke32/platform/Wii/include/SDL/SDL_video.h
A eduke32/platform/Wii/include/tremor/ivorbiscodec.h
A eduke32/platform/Wii/include/png.h
A eduke32/platform/Wii/include/zlib.h
A eduke32/platform/Windows/include/SDL2/SDL_egl.h
A eduke32/platform/Windows/include/SDL2/SDL_filesystem.h
A eduke32/platform/Windows/include/SDL2/SDL_hints.h
A eduke32/platform/Windows/include/SDL2/SDL_loadso.h
A eduke32/platform/Windows/include/SDL2/SDL_mouse.h
A eduke32/platform/Windows/include/SDL2/SDL_opengl_glext.h
A eduke32/platform/Wii/lib/libpng.a
A eduke32/platform/Wii/eduke32_meta_2.xml
A eduke32/platform/Wii/xcopy_exclude.txt
A eduke32/platform/Windows/include/FLAC/export.h
A eduke32/platform/Windows/include/FLAC/stream_decoder.h
A eduke32/platform/Windows/include/SDL2/SDL_atomic.h
A eduke32/platform/Windows/include/SDL2/SDL_clipboard.h
A eduke32/platform/Windows/include/SDL2/SDL_endian.h
A eduke32/platform/Windows/include/SDL2/SDL_gamecontroller.h
A eduke32/platform/Windows/include/SDL2/SDL_joystick.h
A eduke32/platform/Windows/include/SDL2/SDL_log.h
A eduke32/platform/Windows/include/SDL2/SDL_mutex.h
A eduke32/platform/Windows/include/SDL2/SDL_opengles.h
A eduke32/platform/Windows/include/SDL2/SDL_opengles2_gl2platform.h
A eduke32/platform/Windows/include/SDL2/SDL_opengles2_gl2ext.h
A eduke32/platform/Windows/include/SDL2/SDL_power.h
A eduke32/platform/Windows/include/SDL2/SDL_revision.h
A eduke32/platform/Windows/include/SDL2/SDL_stdinc.h
A eduke32/platform/Windows/include/SDL2/SDL_platform.h
A eduke32/platform/Windows/include/SDL2/SDL_render.h
A eduke32/platform/Windows/include/SDL2/SDL_shape.h
A eduke32/platform/Windows/include/SDL2/SDL_test.h
A eduke32/platform/Windows/include/SDL2/SDL_syswm.h
A eduke32/platform/Windows/include/SDL2/SDL_test_compare.h
A eduke32/platform/Windows/include/SDL2/SDL_test_crc32.h
A eduke32/platform/Windows/include/SDL2/SDL_test_harness.h
A eduke32/platform/Windows/include/SDL2/SDL_test_images.h
A eduke32/platform/Wii/lib/libSDL.a
A eduke32/platform/Wii/lib/libvorbisidec.a
A eduke32/platform/Wii/mapster32_meta_1.xml
A eduke32/platform/Windows/include/FLAC/all.h
A eduke32/platform/Windows/include/FLAC/format.h
A eduke32/platform/Windows/include/FLAC/stream_encoder.h
A eduke32/platform/Windows/include/SDL2/SDL_audio.h
A eduke32/platform/Windows/include/SDL2/SDL_config.h
A eduke32/platform/Windows/include/SDL2/SDL_error.h
A eduke32/platform/Windows/include/SDL2/SDL_gesture.h
A eduke32/platform/Windows/include/SDL2/SDL_keyboard.h
A eduke32/platform/Windows/include/SDL2/SDL_main.h
A eduke32/platform/Windows/include/SDL2/SDL_name.h
A eduke32/platform/Windows/include/SDL2/SDL_opengles2.h
A eduke32/platform/Windows/include/SDL2/SDL_opengles2_khrplatform.h
A eduke32/platform/Windows/include/SDL2/SDL_quit.h
A eduke32/platform/Windows/include/dx
A eduke32/platform/Windows/include/libxmp-lite
A eduke32/platform/Windows/include/luajit-2.0
A eduke32/platform/Windows/include/SDL2/SDL_rwops.h
A eduke32/platform/Windows/include/SDL2/SDL_surface.h
A eduke32/platform/Windows/include/SDL2/SDL_test_assert.h
A eduke32/platform/Windows/include/SDL2/SDL_test_font.h
A eduke32/platform/Windows/include/SDL2/SDL_test_log.h
A eduke32/platform/Windows/include/ogg
A eduke32/platform/Windows/include/vorbis
A eduke32/platform/Windows/include/SDL2/SDL_timer.h
A eduke32/platform/Windows/include/SDL2/SDL_thread.h
A eduke32/platform/Windows/include/SDL2/SDL_test_random.h
A eduke32/platform/Windows/include/SDL2/SDL_video.h
A eduke32/platform/Windows/include/SDL2/SDL_version.h
A eduke32/platform/Windows/include/dx/ddraw.h
A eduke32/platform/Windows/include/libxmp-lite/xmp.h
A eduke32/platform/Windows/include/vpx
A eduke32/platform/Windows/include/dx/dinput.h
A eduke32/platform/Windows/include/SDL2/SDL_types.h
A eduke32/platform/Windows/include/SDL2/close_code.h
A eduke32/platform/Windows/include/dx/dx_compat.h
A eduke32/platform/Windows/include/luajit-2.0/lua.hpp
A eduke32/platform/Windows/include/ogg/config_types.h
A eduke32/platform/Windows/lib
A eduke32/platform/Windows/include/luajit-2.0/lauxlib.h
A eduke32/platform/Windows/include/luajit-2.0/luajit.h
A eduke32/platform/Windows/include/ogg/os_types.h
A eduke32/platform/Windows/include/luajit-2.0/luaconf.h
A eduke32/platform/Windows/include/ogg/ogg.h
A eduke32/platform/Windows/lib/32
A eduke32/platform/Wii/lib/libSDL_mixer.a
A eduke32/platform/Windows/include/vpx/vp8dx.h
A eduke32/platform/Windows/include/vpx/vp8.h
A eduke32/platform/Windows/include/vorbis/vorbisfile.h
A eduke32/platform/Windows/include/vpx/vpx_decoder.h
A eduke32/platform/Windows/include/vpx/vpx_image.h
A eduke32/platform/Windows/include/pnglibconf.h
A eduke32/platform/Windows/include/vpx/vpx_frame_buffer.h
A eduke32/platform/Windows/include/pngconf.h
A eduke32/platform/Windows/lib/32/libSDL2main.a
A eduke32/platform/Wii/lib/libz.a
A eduke32/platform/Wii/mapster32_meta_2.xml
A eduke32/platform/Windows/include/FLAC/assert.h
A eduke32/platform/Windows/include/FLAC/metadata.h
A eduke32/platform/Windows/include/SDL2/SDL.h
A eduke32/platform/Windows/include/SDL2/SDL_bits.h
A eduke32/platform/Windows/include/SDL2/SDL_cpuinfo.h
A eduke32/platform/Windows/include/SDL2/SDL_events.h
A eduke32/platform/Windows/include/SDL2/SDL_haptic.h
A eduke32/platform/Windows/include/SDL2/SDL_keycode.h
A eduke32/platform/Windows/include/SDL2/SDL_messagebox.h
A eduke32/platform/Windows/include/SDL2/SDL_opengl.h
A eduke32/platform/Windows/include/SDL2/SDL_opengles2_gl2.h
A eduke32/platform/Windows/include/SDL2/SDL_pixels.h
A eduke32/platform/Windows/include/SDL2/SDL_rect.h
A eduke32/platform/Windows/lib/64
A eduke32/platform/Windows/lib/32/libdxguid_sdl.a
A eduke32/platform/Windows/include/SDL2/SDL_scancode.h
A eduke32/platform/Windows/include/SDL2/SDL_system.h
A eduke32/platform/Windows/include/SDL2/SDL_test_common.h
A eduke32/platform/Windows/include/SDL2/SDL_test_fuzzer.h
A eduke32/platform/Windows/include/SDL2/SDL_test_md5.h
A eduke32/platform/Windows/include/SDL2/SDL_touch.h
A eduke32/platform/Windows/include/SDL2/begin_code.h
A eduke32/platform/Windows/include/dx/dsound.h
A eduke32/platform/Windows/include/luajit-2.0/lua.h
A eduke32/platform/Windows/include/luajit-2.0/lualib.h
A eduke32/platform/Windows/include/vorbis/codec.h
A eduke32/platform/Windows/include/vpx/vpx_codec.h
A eduke32/platform/Windows/include/vpx/vpx_integer.h
A eduke32/platform/Windows/src
A eduke32/platform/Windows/src/compat-to-msvc
A eduke32/platform/Windows/src/dxlibs
A eduke32/platform/Windows/lib/32/libcompat-to-msvc.a
A eduke32/platform/Windows/lib/32/libpng_mini.a
A eduke32/platform/Windows/lib/32/liblpeg.a
A eduke32/platform/Windows/include/png.h
A eduke32/platform/Windows/lib/32/libvorbis.a
A eduke32/platform/Windows/lib/32/libz_mini.a
A eduke32/platform/Windows/lib/64/libcompat-to-msvc.a
A eduke32/platform/Windows/lib/64/liblpeg.a
A eduke32/platform/Windows/lib/32/libxmp-lite.a
A eduke32/platform/Windows/lib/64/libSDL2main.a
A eduke32/platform/Windows/lib/64/libdxguid_sdl.a
A eduke32/platform/Windows/lib/64/libpng_mini.a
A eduke32/platform/Windows/lib/64/libvorbis.a
A eduke32/platform/Windows/lib/64/libz_mini.a
A eduke32/platform/Windows/src/compat-to-msvc/dll_dependency.S
A eduke32/platform/Windows/src/dxlibs/Makefile
A eduke32/platform/Windows/src/dxlibs/ddraw.def
A eduke32/platform/Windows/src/dxlibs/dplayx.def
A eduke32/platform/Windows/src/dxlibs/dpvoice.def
A eduke32/platform/Windows/lib/64/libxmp-lite.a
A eduke32/platform/Windows/src/compat-to-msvc/Makefile
A eduke32/platform/Windows/src/compat-to-msvc/vsnprintf.c
A eduke32/platform/Windows/src/dxlibs/d3dxof.def
A eduke32/platform/Windows/src/dxlibs/dinput8.def
A eduke32/platform/Windows/src/dxlibs/dpnlobby.def
A eduke32/source
A eduke32/source/audiolib
A eduke32/source/audiolib/include
A eduke32/platform/Windows/src/dxlibs/dxguid_sdl.c
A eduke32/platform/Windows/src/backtrace.c
A eduke32/platform/Windows/src/dxlibs/dxguid.c
A eduke32/platform/Windows/src/_dbg_common.h
A eduke32/source/audiolib/src
A eduke32/platform/Windows/msvc.mak
A eduke32/platform/Windows/eduke32.vcxproj.filters
A eduke32/platform/wiibuild.sh
A eduke32/source/audiolib/include/drivers.h
A eduke32/source/audiolib/include/music.h
A eduke32/source/audiolib/src/driver_nosound.cpp
A eduke32/source/audiolib/src/_multivc.h
A eduke32/platform/Windows/lib/32/libFLAC.a
A eduke32/platform/Windows/lib/32/libdsound.a
A eduke32/source/audiolib/src/driver_nosound.h
A eduke32/source/audiolib/src/drivers.cpp
A eduke32/source/audiolib/src/flac.cpp
A eduke32/platform/Windows/lib/32/libluajit.a
A eduke32/platform/Windows/lib/32/libvorbisfile.a
A eduke32/source/audiolib/src/mix.cpp
A eduke32/source/audiolib/src/linklist.h
A eduke32/source/audiolib/src/pitch.h
A eduke32/source/audiolib/src/pitch.cpp
A eduke32/platform/Windows/lib/64/libFLAC.a
A eduke32/platform/Windows/lib/64/libdsound.a
A eduke32/source/build
A eduke32/source/build/doc
A eduke32/platform/Windows/lib/64/libluajit.a
A eduke32/platform/Windows/lib/64/libvorbisfile.a
A eduke32/platform/Windows/lib/instructions.txt
A eduke32/platform/Windows/src/compat-to-msvc/dll_math.c
A eduke32/platform/Windows/src/dxlibs/d3d8.def
A eduke32/source/build/include
A eduke32/source/build/include/msvc
A eduke32/platform/Windows/src/dxlibs/dinput.c
A eduke32/platform/Windows/src/dxlibs/dpnaddr.def
A eduke32/platform/Windows/src/dxlibs/dsetup.def
A eduke32/platform/Windows/src/dxlibs/readme.txt
A eduke32/platform/Windows/eduke32.sln
A eduke32/platform/osxbuild.sh
A eduke32/source/audiolib/include/fx_man.h
A eduke32/source/audiolib/src/driver_directsound.cpp
A eduke32/source/audiolib/src/driver_sdl.cpp
A eduke32/source/audiolib/src/formats.cpp
A eduke32/source/audiolib/src/mixst.cpp
A eduke32/source/audiolib/src/vorbis.cpp
A eduke32/source/audiolib/gpl-2.0.txt
A eduke32/source/audiolib/src/xmp.cpp
A eduke32/source/build/doc/build.txt
A eduke32/source/build/doc/todo.txt
A eduke32/source/build/doc/buildinf.txt
A eduke32/source/build/include/animvpx.h
A eduke32/source/build/include/cache1d.h
A eduke32/source/build/include/compat.h
A eduke32/source/build/include/dynamicgtk.h
A eduke32/source/build/include/a.h
A eduke32/source/build/include/buildtypes.h
A eduke32/source/build/include/common.h
A eduke32/source/build/include/dxtfilter.h
A eduke32/source/build/include/msvc/inttypes.h
A eduke32/source/build/include/baselayer.h
A eduke32/source/build/include/clip.h
A eduke32/source/build/include/crc32.h
A eduke32/source/build/include/editor.h
A eduke32/source/build/include/gtkpixdata.h
A eduke32/source/build/include/gtkbits.h
A eduke32/source/build/include/jwzgles.h
A eduke32/source/build/include/hightile.h
A eduke32/source/build/include/glext.h
A eduke32/source/build/include/hash.h
A eduke32/source/build/include/kplib.h
A eduke32/source/build/include/m32script.h
A eduke32/source/build/include/lunatic.h
A eduke32/source/build/include/mdsprite.h
A eduke32/source/build/include/mutex.h
A eduke32/source/build/include/libdivide.h
A eduke32/source/build/include/md4.h
A eduke32/source/build/include/osd.h
A eduke32/source/build/include/palette.h
A eduke32/source/build/include/osxbits.h
A eduke32/source/build/include/polymost.h
A eduke32/source/build/include/pragmas_arm.h
A eduke32/source/build/include/pragmas_x86_gcc.h
A eduke32/source/build/include/polymer.h
A eduke32/source/build/include/pragmas_ppc.h
A eduke32/source/build/include/renderlayer.h
A eduke32/source/build/include/rawinput.h
A eduke32/source/build/include/prlights.h
A eduke32/source/build/include/sdl_inc.h
A eduke32/source/build/include/sdlappicon.h
A eduke32/source/build/include/scriptfile.h
A eduke32/source/build/include/tracker.hpp
A eduke32/source/build/include/startwin.editor.h
A eduke32/source/build/include/tracker_operators.hpp
A eduke32/source/build/include/texcache.h
A eduke32/source/build/include/wiibits.h
A eduke32/source/build/src
A eduke32/source/build/include/winlayer.h
A eduke32/source/build/include/xxhash.h
A eduke32/source/build/include/winbits.h
A eduke32/source/build/src/2d.cpp
A eduke32/platform/Windows/lib/32/libSDL2.a
A eduke32/platform/Windows/lib/32/libdxguid.a
A eduke32/platform/Windows/lib/32/libogg.a
A eduke32/source/build/src/a-c.cpp
A eduke32/source/build/src/a.nasm
A eduke32/source/build/src/a.masm
A eduke32/source/build/src/animvpx.cpp
A eduke32/source/build/src/baselayer.cpp
A eduke32/platform/Windows/lib/32/libvpx.a
A eduke32/source/build/src/build.cpp
A eduke32/source/build/src/common.cpp
A eduke32/source/build/src/colmatch.cpp
A eduke32/source/build/src/clip.cpp
A eduke32/source/build/src/defs.cpp
A eduke32/source/build/src/crc32.cpp
A eduke32/source/build/src/config.cpp
A eduke32/platform/Windows/lib/64/libSDL2.a
A eduke32/platform/Windows/lib/64/libdxguid.a
A eduke32/platform/Windows/lib/64/libogg.a
A eduke32/source/build/src/engine_oldmap.h
A eduke32/source/build/src/dynamicgtk.cpp
A eduke32/platform/Windows/lib/64/libvpx.a
A eduke32/platform/Windows/lib/minipng.dfa
A eduke32/platform/Windows/src/compat-to-msvc/io_math.c
A eduke32/platform/Windows/src/dxlibs/d3dx8d.def
A eduke32/platform/Windows/src/dxlibs/dinput.def
A eduke32/platform/Windows/src/dxlibs/dpnet.def
A eduke32/platform/Windows/src/dxlibs/dsound.def
A eduke32/platform/Windows/src/_dbg_LOAD_IMAGE.h
A eduke32/platform/Windows/eduke32.vcxproj
A eduke32/platform/synthesis.sh
A eduke32/source/audiolib/include/multivoc.h
A eduke32/source/audiolib/src/driver_directsound.h
A eduke32/source/audiolib/src/driver_sdl.h
A eduke32/source/audiolib/src/fx_man.cpp
A eduke32/source/audiolib/src/multivoc.cpp
A eduke32/source/audiolib/src/xa.cpp
A eduke32/source/build/doc/build2.txt
A eduke32/source/build/include/msvc/stdint.h
A eduke32/source/build/include/build.h
A eduke32/source/build/include/colmatch.h
A eduke32/source/build/include/dxdidf.h
A eduke32/source/build/include/glbuild.h
A eduke32/source/build/include/gtkpixdata_shim.h
A eduke32/source/build/include/jwzglesI.h
A eduke32/source/build/include/lz4.h
A eduke32/source/build/include/mmulti.h
A eduke32/source/build/include/osxmain.h
A eduke32/source/build/include/pragmas.h
A eduke32/source/build/include/pragmas_x86_msvc.h
A eduke32/source/build/include/scancodes.h
A eduke32/source/build/include/sdlayer.h
A eduke32/source/build/include/tracker_operator.hpp
A eduke32/source/build/include/windows_inc.h
A eduke32/source/build/src/SDLMain.mm
A eduke32/source/build/src/a64.yasm
A eduke32/source/build/src/cache1d.cpp
A eduke32/source/build/src/compat.cpp
A eduke32/source/build/src/dxtfilter.cpp
A eduke32/source/duke3d
A eduke32/source/duke3d/rsrc
A eduke32/source/duke3d/rsrc/source
A eduke32/source/build/src/glbuild.cpp
A eduke32/source/build/src/engine_priv.h
A eduke32/source/build/src/hash.cpp
A eduke32/source/build/src/engine.cpp
A eduke32/source/build/src/gtkbits.cpp
A eduke32/source/build/src/lunatic.cpp
A eduke32/source/build/src/mhk.cpp
A eduke32/source/build/src/hightile.cpp
A eduke32/source/build/src/lz4.c
A eduke32/source/build/src/mingw_main.cpp
A eduke32/source/build/src/osxbits.mm
A eduke32/source/build/src/pragmas.cpp
A eduke32/source/build/src/scriptfile.cpp
A eduke32/source/build/src/smalltextfont.cpp
A eduke32/source/build/src/texcache.cpp
A eduke32/source/build/src/wiibits.cpp
A eduke32/source/build/Dependencies.mak
A eduke32/source/duke3d/src
A eduke32/source/duke3d/src/lunatic
A eduke32/source/build/src/kplib.cpp
A eduke32/source/build/src/osd.cpp
A eduke32/source/build/src/mdsprite.cpp
A eduke32/source/duke3d/rsrc/source/EDuke32_logo_21_large_opaque.psd
A eduke32/source/duke3d/rsrc/build.bmp
A eduke32/source/duke3d/rsrc/eduke32_icon.c
A eduke32/source/duke3d/src/lunatic/doc
A eduke32/source/build/src/mutex.cpp
A eduke32/source/build/src/polymer.cpp
A eduke32/source/build/src/rev.cpp
A eduke32/source/build/src/sdlayer12.cpp
A eduke32/source/build/src/startosx.editor.mm
A eduke32/source/build/src/tiles.cpp
A eduke32/source/build/src/winlayer.cpp
A eduke32/source/duke3d/src/lunatic/m32
A eduke32/source/duke3d/rsrc/game_icon.c
A eduke32/source/duke3d/rsrc/manifest.game.xml
A eduke32/source/build/src/jwzgles.c
A eduke32/source/build/src/md4.cpp
A eduke32/source/build/src/mmulti_null.cpp
A eduke32/source/build/src/palette.cpp
A eduke32/source/duke3d/src/lunatic/test
A eduke32/source/build/src/rawinput.cpp
A eduke32/source/build/src/sdlayer.cpp
A eduke32/source/build/src/startgtk.editor.cpp
A eduke32/source/build/src/textfont.cpp
A eduke32/source/build/src/polymost.cpp
A eduke32/source/build/src/winbits.cpp
A eduke32/source/build/buildlic.txt
A eduke32/source/build/src/screenshot.cpp
A eduke32/source/build/src/sdlkeytrans.cpp
A eduke32/source/build/src/startwin.editor.cpp
A eduke32/source/build/src/voxmodel.cpp
A eduke32/source/build/src/xxhash.c
A eduke32/source/duke3d/rsrc/source/EDuke32_logo_21_large.psd
A eduke32/source/duke3d/src/lunatic/doc/din_w_explosive.png
A eduke32/source/duke3d/rsrc/source/EDuke32_logo_21_large_blue.psd
A eduke32/source/duke3d/src/lunatic/doc/lunacon.txt
A eduke32/source/duke3d/src/lunatic/m32/compinside.lua
A eduke32/source/duke3d/src/lunatic/test/damagehplane.lua
A eduke32/source/duke3d/src/lunatic/test/event_chaining.con
A eduke32/source/duke3d/src/lunatic/test/helixspawner.lua
A eduke32/source/duke3d/src/lunatic/test/nlcf_return.con
A eduke32/source/duke3d/src/lunatic/test/rotfixed_actor.con
A eduke32/source/duke3d/src/lunatic/test/sprite_addtv.con
A eduke32/source/duke3d/rsrc/source/wii-hbc-icon.xcf
A eduke32/source/duke3d/rsrc/buildres.rc
A eduke32/source/duke3d/rsrc/game.bmp
A eduke32/source/duke3d/rsrc/manifest.build.xml
A eduke32/source/duke3d/src/lunatic/doc/din_w_crushing.png
A eduke32/source/duke3d/src/lunatic/doc/lpeg-lunatic.patch
A eduke32/source/duke3d/src/lunatic/doc/lunatic_sh.style
A eduke32/source/duke3d/src/lunatic/test/checknearwall.con
A eduke32/source/duke3d/src/lunatic/test/else_brace_if.con
A eduke32/source/duke3d/src/lunatic/test/getuserdef.con
A eduke32/source/duke3d/src/lunatic/test/nlcf_break.con
A eduke32/source/duke3d/src/lunatic/test/quote_ops.con
A eduke32/source/duke3d/src/lunatic/test/sprite_access.con
A eduke32/source/duke3d/src/lunatic/test/test_bitar.lua
A eduke32/source/duke3d/src/lunatic/test/thisactor_getzrange.con
A eduke32/source/duke3d/src/lunatic/util
A eduke32/source/duke3d/src/lunatic/test/test_dists.lua
A eduke32/source/duke3d/src/lunatic/test/transhacktest.m32
A eduke32/source/duke3d/src/lunatic/util/bigytiles.lua
A eduke32/source/duke3d/src/lunatic/util/findmaps.sh
A eduke32/source/duke3d/src/lunatic/util/mapdiff.sh
A eduke32/source/duke3d/src/lunatic/util/build.lua
A eduke32/source/duke3d/src/lunatic/util/foreachmap.lua
A eduke32/source/duke3d/src/lunatic/util/mapstats.lua
A eduke32/source/duke3d/src/lunatic/_defs_editor.lua
A eduke32/source/duke3d/src/lunatic/_defs_game.lua
A eduke32/source/duke3d/src/lunatic/bitar.lua
A eduke32/source/duke3d/rsrc/source/game3.psd
A eduke32/source/duke3d/rsrc/build_icon.ico
A eduke32/source/duke3d/rsrc/eduke32_icon_48px.c
A eduke32/source/duke3d/rsrc/gameres.rc
A eduke32/source/duke3d/src/lunatic/doc/din_w_collapse.png
A eduke32/source/duke3d/src/lunatic/doc/how_to_build_lunatic.txt
A eduke32/source/duke3d/src/lunatic/doc/lunatic.txt
A eduke32/source/duke3d/src/lunatic/test/animatesprites.con
A eduke32/source/duke3d/src/lunatic/test/delmusicsfx.lua
A eduke32/source/duke3d/src/lunatic/test/gettimedate.con
A eduke32/source/duke3d/src/lunatic/test/maputil.lua
A eduke32/source/duke3d/src/lunatic/test/qsubstr.con
A eduke32/source/duke3d/src/lunatic/test/shadexfog.lua
A eduke32/source/duke3d/src/lunatic/test/tables.lua
A eduke32/source/duke3d/src/lunatic/test/test_rotspr.lua
A eduke32/source/duke3d/src/lunatic/test/weaponvars.con
A eduke32/source/duke3d/src/lunatic/util/colenemy.lua
A eduke32/source/duke3d/src/lunatic/util/mapastats.lua
A eduke32/source/duke3d/src/lunatic/util/plax.lua
A eduke32/source/duke3d/src/lunatic/bcheck.lua
A eduke32/source/duke3d/src/lunatic/dis_x64.lua
A eduke32/source/duke3d/src/lunatic/con_lang.lua
A eduke32/source/duke3d/src/lunatic/defs_common.lua
A eduke32/source/duke3d/src/lunatic/dynsymlist_editor.lds
A eduke32/source/duke3d/src/lunatic/fs.lua
A eduke32/source/duke3d/src/lunatic/dynsymlist_game.lds
A eduke32/source/duke3d/src/lunatic/listglobals.sh
A eduke32/source/duke3d/src/lunatic/dis_x86.lua
A eduke32/source/duke3d/src/lunatic/engine.lua
A eduke32/source/duke3d/src/lunatic/lunatic_editor.h
A eduke32/source/duke3d/src/lunatic/randgen.lua
A eduke32/source/duke3d/src/lunatic/lunatic_game.cpp
A eduke32/source/duke3d/src/lunatic/savegame.lua
A eduke32/source/duke3d/src/lunatic/test.lua
A eduke32/source/duke3d/src/GameListSource.game.mm
A eduke32/source/duke3d/src/lunatic/v.lua
A eduke32/source/duke3d/src/GrpFile.game.h
A eduke32/source/duke3d/src/lunatic/lunacon.lua
A eduke32/source/duke3d/src/lunatic/lunatic_game.h
A eduke32/source/duke3d/src/lunatic/stat.lua
A eduke32/source/duke3d/src/lunatic/xmath.lua
A eduke32/source/duke3d/src/_rts.h
A eduke32/source/duke3d/src/_midi.h
A eduke32/source/duke3d/src/GrpFile.game.mm
A eduke32/source/duke3d/src/android.h
A eduke32/source/duke3d/src/actors.cpp
A eduke32/source/duke3d/src/animsounds.h
A eduke32/source/duke3d/src/anim.h
A eduke32/source/duke3d/src/cheats.cpp
A eduke32/source/duke3d/src/anim.cpp
A eduke32/source/duke3d/src/astub.cpp
A eduke32/source/duke3d/src/cmdline.cpp
A eduke32/source/duke3d/src/config.cpp
A eduke32/source/duke3d/src/common.cpp
A eduke32/source/duke3d/src/demo.cpp
A eduke32/source/duke3d/src/cmdline.h
A eduke32/source/duke3d/src/config.h
A eduke32/source/duke3d/rsrc/source/game2.psd
A eduke32/source/duke3d/rsrc/build_icon.c
A eduke32/source/duke3d/rsrc/eduke32_icon_32px.c
A eduke32/source/duke3d/rsrc/game_icon.ico
A eduke32/source/duke3d/src/lunatic/doc/Makefile
A eduke32/source/duke3d/src/lunatic/doc/din_w_toxic.png
A eduke32/source/duke3d/src/lunatic/doc/lunatic.conf
A eduke32/source/duke3d/src/lunatic/m32/randwalk.lua
A eduke32/source/duke3d/src/lunatic/test/dangling_else.con
A eduke32/source/duke3d/src/lunatic/test/gamearray.con
A eduke32/source/duke3d/src/lunatic/test/mapstate.con
A eduke32/source/duke3d/src/lunatic/test/qgetsysstr.con
A eduke32/source/duke3d/src/lunatic/test/screentext.con
A eduke32/source/duke3d/src/lunatic/test/switch.con
A eduke32/source/duke3d/src/lunatic/test/test_geom.lua
A eduke32/source/duke3d/src/lunatic/test/transhacktest.map
A eduke32/source/duke3d/src/lunatic/util/cmpart.lua
A eduke32/source/duke3d/src/lunatic/util/map2text.lua
A eduke32/source/duke3d/src/lunatic/util/mapypan.lua
A eduke32/source/duke3d/src/lunatic/bcarray.lua
A eduke32/source/duke3d/src/lunatic/control.lua
A eduke32/source/duke3d/src/events_defs.h
A eduke32/source/duke3d/src/duke3d.h
A eduke32/source/duke3d/src/game.h
A eduke32/source/duke3d/src/function.h
A eduke32/source/duke3d/src/gamedef.cpp
A eduke32/source/duke3d/src/lunatic/dump.lua
A eduke32/source/duke3d/src/lunatic/engine_maptext.lua
A eduke32/source/duke3d/src/lunatic/lunatic_editor.cpp
A eduke32/source/duke3d/src/lunatic/profdemo.lua
A eduke32/source/duke3d/src/lunatic/strict.lua
A eduke32/source/duke3d/src/GameListSource.game.h
A eduke32/source/duke3d/src/_functio.h
A eduke32/source/duke3d/src/actors.h
A eduke32/source/duke3d/src/animsounds.cpp
A eduke32/source/duke3d/src/cheats.h
A eduke32/source/duke3d/src/common_game.h
A eduke32/source/duke3d/src/demo.h
A eduke32/source/duke3d/src/game.cpp
A eduke32/source/duke3d/src/gameexec.cpp
A eduke32/source/duke3d/src/gamevars.h
A eduke32/source/duke3d/src/gamedef.h
A eduke32/source/duke3d/src/gamestructures.cpp
A eduke32/source/duke3d/src/gameexec.h
A eduke32/source/duke3d/src/gamedefs.h
A eduke32/source/duke3d/src/gamevars.cpp
A eduke32/source/duke3d/src/global.cpp
A eduke32/source/duke3d/src/global.h
A eduke32/source/duke3d/src/grpscan.cpp
A eduke32/source/duke3d/src/grpscan.h
A eduke32/source/duke3d/src/input.cpp
A eduke32/source/duke3d/src/m32common.cpp
A eduke32/source/duke3d/src/in_android.cpp
A eduke32/source/duke3d/src/inv.h
A eduke32/source/duke3d/src/m32def.h
A eduke32/source/duke3d/src/input.h
A eduke32/source/duke3d/src/m32def.cpp
A eduke32/source/duke3d/src/in_android.h
A eduke32/source/duke3d/src/keys.h
A eduke32/source/duke3d/src/m32exec.cpp
A eduke32/source/duke3d/src/mapster32.h
A eduke32/source/duke3d/src/menus.h
A eduke32/source/duke3d/src/macros.h
A eduke32/source/duke3d/src/m32structures.cpp
A eduke32/source/duke3d/src/menus.cpp
A eduke32/source/duke3d/src/mdump.cpp
A eduke32/source/duke3d/src/midi.cpp
A eduke32/source/duke3d/src/mpu401.cpp
A eduke32/source/duke3d/src/namesdyn.cpp
A eduke32/source/duke3d/src/m32vars.cpp
A eduke32/source/duke3d/src/mdump.h
A eduke32/source/duke3d/src/midi.h
A eduke32/source/duke3d/src/names.h
A eduke32/source/enet
A eduke32/source/enet/include
A eduke32/source/enet/include/enet
A eduke32/source/duke3d/src/osdcmds.cpp
A eduke32/source/duke3d/src/net.h
A eduke32/source/duke3d/src/osdfuncs.h
A eduke32/source/duke3d/src/premap.h
A eduke32/source/duke3d/src/savegame.cpp
A eduke32/source/duke3d/src/screens.cpp
A eduke32/source/duke3d/src/music.cpp
A eduke32/source/duke3d/src/net.cpp
A eduke32/source/duke3d/src/osdfuncs.cpp
A eduke32/source/duke3d/src/premap.cpp
A eduke32/source/enet/src
A eduke32/source/duke3d/src/player.cpp
A eduke32/source/duke3d/src/quotes.h
A eduke32/source/duke3d/src/savegame.h
A eduke32/source/duke3d/src/screens.h
A eduke32/source/duke3d/src/rts.h
A eduke32/source/duke3d/src/sbar.h
A eduke32/source/etcpak
A eduke32/source/etcpak/include
A eduke32/source/duke3d/src/mpu401.h
A eduke32/source/duke3d/src/namesdyn.h
A eduke32/source/duke3d/src/osdcmds.h
A eduke32/source/duke3d/src/player.h
A eduke32/source/duke3d/src/screentext.h
A eduke32/source/duke3d/src/sdlmusic.cpp
A eduke32/source/etcpak/src
A eduke32/source/duke3d/src/rts.cpp
A eduke32/source/duke3d/src/sbar.cpp
A eduke32/source/duke3d/src/screentext.cpp
A eduke32/source/duke3d/src/sector.h
A eduke32/source/duke3d/src/soundefs.h
A eduke32/source/duke3d/src/sounds_mapster32.cpp
A eduke32/source/duke3d/src/startgtk.game.cpp
A eduke32/source/duke3d/src/winbits.cpp
A eduke32/source/kenbuild
A eduke32/source/kenbuild/rsrc
A eduke32/source/enet/include/enet/enet.h
A eduke32/source/duke3d/src/sounds.cpp
A eduke32/source/duke3d/src/sounds_mapster32.h
A eduke32/source/duke3d/src/startosx.game.mm
A eduke32/source/duke3d/src/sounds_common.h
A eduke32/source/duke3d/src/soundsdyn.h
A eduke32/source/enet/include/enet/types.h
A eduke32/source/enet/src/callbacks.c
A eduke32/source/enet/src/packet.c
A eduke32/source/enet/src/win32.c
A eduke32/source/etcpak/src/ProcessCommon.hpp
A eduke32/source/etcpak/src/Types.hpp
A eduke32/source/kenbuild/rsrc/build.bmp
A eduke32/source/duke3d/src/startwin.game.h
A eduke32/source/enet/include/enet/callbacks.h
A eduke32/source/enet/include/enet/time.h
A eduke32/source/enet/include/enet/win32.h
A eduke32/source/enet/src/list.c
A eduke32/source/enet/src/unix.c
A eduke32/source/etcpak/src/Math.hpp
A eduke32/source/etcpak/src/Tables.hpp
A eduke32/source/etcpak/LICENSE.txt
A eduke32/source/kenbuild/src
A eduke32/source/duke3d/Dependencies.mak
A eduke32/source/enet/include/enet/list.h
A eduke32/source/enet/include/enet/unix.h
A eduke32/source/enet/src/compress.c
A eduke32/source/duke3d/src/sector.cpp
A eduke32/source/kenbuild/rsrc/build_icon.icns
A eduke32/source/kenbuild/rsrc/buildres.rc
A eduke32/source/duke3d/src/sounds.h
A eduke32/source/duke3d/src/soundsdyn.cpp
A eduke32/source/mact
A eduke32/source/mact/include
A eduke32/source/kenbuild/rsrc/build_icon.ico
A eduke32/source/duke3d/src/startwin.game.cpp
A eduke32/source/duke3d/gpl-2.0.txt
A eduke32/source/enet/include/enet/protocol.h
A eduke32/source/enet/include/enet/utility.h
A eduke32/source/enet/src/host.c
A eduke32/source/enet/src/peer.c
A eduke32/source/enet/LICENSE
A eduke32/source/etcpak/src/ProcessRGB.cpp
A eduke32/source/etcpak/src/Vector.hpp
A eduke32/source/mact/src
A eduke32/source/kenbuild/rsrc/game.bmp
A eduke32/source/kenbuild/rsrc/game_icon.ico
A eduke32/source/kenbuild/rsrc/manifest.game.xml
A eduke32/source/kenbuild/rsrc/game_icon.c
A eduke32/source/kenbuild/rsrc/manifest.build.xml
A eduke32/source/sw
A eduke32/source/sw/rsrc
A eduke32/source/kenbuild/rsrc/build.xcf
A eduke32/source/kenbuild/rsrc/build_icon.png
A eduke32/source/enet/src/protocol.c
A eduke32/source/kenbuild/rsrc/game.xcf
A eduke32/source/kenbuild/rsrc/game_icon.png
A eduke32/source/kenbuild/src/StartupWinController.game.mm
A eduke32/source/kenbuild/src/config.cpp
A eduke32/source/kenbuild/src/sound_stub.cpp
A eduke32/source/sw/src
A eduke32/source/etcpak/include/ProcessRGB.h
A eduke32/source/etcpak/src/Tables.cpp
A eduke32/source/etcpak/AUTHORS.txt
A eduke32/source/kenbuild/rsrc/build_icon.c
A eduke32/source/kenbuild/src/common_game.h
A eduke32/source/kenbuild/src/names.h
A eduke32/source/kenbuild/src/common.cpp
A eduke32/source/kenbuild/src/game.h
A eduke32/source/kenbuild/src/startwin.game.cpp
A eduke32/source/kenbuild/rsrc/build_icon.xcf
A eduke32/source/kenbuild/rsrc/game32_icon.c
A eduke32/source/kenbuild/rsrc/gameres.rc
A eduke32/source/kenbuild/src/bstub.cpp
A eduke32/source/kenbuild/buildlic.txt
A eduke32/source/mact/include/file_lib.h
A eduke32/source/mact/include/scriplib.h
A eduke32/source/kenbuild/src/startwin.game.h
A eduke32/source/mact/include/control.h
A eduke32/source/mact/include/animlib.h
A eduke32/source/mact/include/keyboard.h
A eduke32/source/mact/src/animlib.cpp
A eduke32/source/mact/src/file_lib.cpp
A eduke32/source/mact/gpl-2.0.txt
A eduke32/source/sw/rsrc/game_icon.c
A eduke32/source/kenbuild/src/game.cpp
A eduke32/source/kenbuild/src/startgtk.game.cpp
A eduke32/source/mact/include/_control.h
A eduke32/source/mact/include/joystick.h
A eduke32/source/mact/src/_scrplib.h
A eduke32/source/mact/src/joystick.cpp
A eduke32/source/sw/rsrc/build.bmp
A eduke32/source/sw/rsrc/gameres.rc
A eduke32/source/sw/src/GameListSource.game.mm
A eduke32/source/sw/src/_config.h
A eduke32/source/sw/rsrc/game_icon.ico
A eduke32/source/sw/rsrc/manifest.build.xml
A eduke32/source/sw/src/GrpFile.game.h
A eduke32/source/sw/src/_functio.h
A eduke32/source/sw/src/actor.h
A eduke32/source/sw/src/anim.cpp
A eduke32/source/mact/src/keyboard.cpp
A eduke32/source/sw/rsrc/buildres.rc
A eduke32/source/sw/rsrc/game_icon.png
A eduke32/source/sw/src/ai.cpp
A eduke32/source/sw/src/anim.h
A eduke32/source/sw/rsrc/manifest.game.xml
A eduke32/source/sw/src/GrpFile.game.mm
A eduke32/source/sw/src/_rts.h
A eduke32/source/sw/src/ai.h
A eduke32/source/sw/src/bldscript.cpp
A eduke32/source/sw/src/bots.h
A eduke32/source/sw/src/bunny.cpp
A eduke32/source/mact/include/mouse.h
A eduke32/source/mact/src/control.cpp
A eduke32/source/mact/src/scriplib.cpp
A eduke32/source/sw/src/break.h
A eduke32/source/sw/src/cache.h
A eduke32/source/sw/src/break.cpp
A eduke32/source/sw/src/cache.cpp
A eduke32/source/sw/rsrc/game.bmp
A eduke32/source/sw/rsrc/game_icon.svg
A eduke32/source/sw/src/GameListSource.game.h
A eduke32/source/sw/src/StartupWinController.game.mm
A eduke32/source/sw/src/actor.cpp
A eduke32/source/sw/src/ambient.h
A eduke32/source/sw/src/border.cpp
A eduke32/source/sw/src/brooms.cpp
A eduke32/source/sw/src/cheats.cpp
A eduke32/source/sw/src/common_game.h
A eduke32/source/sw/src/console.cpp
A eduke32/source/sw/src/damage.h
A eduke32/source/sw/src/draw.cpp
A eduke32/source/sw/src/colormap.h
A eduke32/source/sw/src/config.h
A eduke32/source/sw/src/coolie.cpp
A eduke32/source/sw/src/demo.h
A eduke32/source/sw/src/function.h
A eduke32/source/sw/src/girlninj.cpp
A eduke32/source/sw/src/hornet.cpp
A eduke32/source/sw/src/colormap.cpp
A eduke32/source/sw/src/config.cpp
A eduke32/source/sw/src/coolg.cpp
A eduke32/source/sw/src/demo.cpp
A eduke32/source/sw/src/eel.cpp
A eduke32/source/sw/src/game.h
A eduke32/source/sw/src/grpscan.cpp
A eduke32/source/sw/src/common.cpp
A eduke32/source/sw/src/conpic.h
A eduke32/source/sw/src/copysect.cpp
A eduke32/source/sw/src/digi.h
A eduke32/source/sw/src/game.cpp
A eduke32/source/sw/src/goro.cpp
A eduke32/source/sw/src/interp.cpp
A eduke32/source/sw/src/interp.h
A eduke32/source/sw/src/jbhlp.cpp
A eduke32/source/sw/src/gamedefs.h
A eduke32/source/sw/src/grpscan.h
A eduke32/source/sw/src/interpsh.cpp
A eduke32/source/sw/src/jnames.h
A eduke32/source/sw/src/inv.cpp
A eduke32/source/sw/src/inv.h
A eduke32/source/sw/src/jplayer.cpp
A eduke32/source/sw/src/jnstub.cpp
A eduke32/source/sw/src/jsector.h
A eduke32/source/sw/src/lava.cpp
A eduke32/source/sw/src/jtags.h
A eduke32/source/sw/src/light.cpp
A eduke32/source/sw/src/mclip.h
A eduke32/source/sw/src/jsector.cpp
A eduke32/source/sw/src/mclip.cpp
A eduke32/source/sw/src/menus.h
A eduke32/source/sw/src/jweapon.cpp
A eduke32/source/sw/src/mytypes.h
A eduke32/source/sw/src/net.h
A eduke32/source/sw/src/mfile.h
A eduke32/source/sw/src/names.h
A eduke32/source/sw/src/ninja.cpp
A eduke32/source/sw/src/light.h
A eduke32/source/sw/src/mdastr.cpp
A eduke32/source/sw/src/miscactr.cpp
A eduke32/source/sw/src/panel.h
A eduke32/source/sw/src/player.h
A eduke32/source/sw/src/reserve.h
A eduke32/source/sw/src/keys.h
A eduke32/source/sw/src/lists.h
A eduke32/source/sw/src/menus.cpp
A eduke32/source/sw/src/names2.h
A eduke32/source/sw/src/ninja.h
A eduke32/source/sw/src/parent.h
A eduke32/source/sw/src/predict.cpp
A eduke32/source/sw/src/morph.cpp
A eduke32/source/sw/src/net.cpp
A eduke32/source/sw/src/pal.h
A eduke32/source/sw/src/parse.h
A eduke32/source/sw/src/quake.cpp
A eduke32/source/sw/src/panel.cpp
A eduke32/source/sw/src/rotator.cpp
A eduke32/source/sw/src/saveable.cpp
A eduke32/source/sw/src/ripper2.cpp
A eduke32/source/sw/src/ripper.cpp
A eduke32/source/sw/src/rts.h
A eduke32/source/sw/src/rts.cpp
A eduke32/source/sw/src/player.cpp
A eduke32/source/sw/src/quake.h
A eduke32/source/sw/src/rooms.cpp
A eduke32/source/sw/src/save.cpp
A eduke32/source/sw/src/savedef.h
A eduke32/source/sw/src/saveable.h
A eduke32/source/sw/src/scrip2.cpp
A eduke32/source/tools
A eduke32/source/tools/src
A eduke32/source/sw/src/sector.cpp
A eduke32/source/sw/src/sector.h
A eduke32/source/sw/src/serp.cpp
A eduke32/source/sw/src/settings.h
A eduke32/source/sw/src/slidor.cpp
A eduke32/source/sw/src/setup.cpp
A eduke32/source/sw/src/skull.cpp
A eduke32/source/sw/src/skel.cpp
A eduke32/source/sw/src/sounds.h
A eduke32/source/sw/src/stag.h
A eduke32/source/sw/src/spike.cpp
A eduke32/source/sw/src/startgtk.game.cpp
A eduke32/source/sw/src/sw_strs.h
A eduke32/source/sw/src/text.cpp
A eduke32/source/sw/src/trigger.h
A eduke32/source/sw/src/wallmove.cpp
A eduke32/source/sw/src/slidor.h
A eduke32/source/sw/src/sounds.cpp
A eduke32/source/sw/src/sprite.h
A eduke32/source/sw/src/startwin.game.h
A eduke32/source/sw/src/sync.cpp
A eduke32/source/sw/src/sprite.cpp
A eduke32/source/sw/src/startwin.game.cpp
A eduke32/source/sw/src/swconfig.cpp
A eduke32/source/sw/src/text.h
A eduke32/source/sw/src/vator.cpp
A eduke32/source/sw/src/sumo.cpp
A eduke32/source/sw/src/tags.h
A eduke32/source/sw/src/track.h
A eduke32/source/sw/src/vis.h
A eduke32/source/sw/src/track.cpp
A eduke32/source/sw/src/vis.cpp
A eduke32/source/sw/src/warp.cpp
A eduke32/source/sw/src/zilla.cpp
A eduke32/source/tools/src/arttool.cpp
A eduke32/source/sw/src/weapon.h
A eduke32/source/sw/gpl-2.0.txt
A eduke32/source/tools/src/bsuite.cpp
A eduke32/source/tools/src/enumdisplay.cpp
A eduke32/source/sw/src/warp.h
A eduke32/source/sw/src/zombie.cpp
A eduke32/source/tools/src/ase_import.py
A eduke32/source/tools/src/cacheinfo.cpp
A eduke32/source/tools/src/generateicon.cpp
A eduke32/source/tools/src/highpalookupmaker.py
A eduke32/source/sw/src/weapon.cpp
A eduke32/source/sw/Dependencies.mak
A eduke32/source/tools/src/bin2c.cpp
A eduke32/source/tools/src/compat_tools.cpp
A eduke32/source/tools/src/givedepth.cpp
A eduke32/source/tools/src/kgroup.cpp
A eduke32/source/tools/src/md2tool.cpp
A eduke32/source/tools/src/transpal.cpp
A eduke32/source/tools/src/ivfrate.cpp
A eduke32/source/tools/src/makesdlkeytrans.cpp
A eduke32/source/tools/src/mkpalette.cpp
A eduke32/source/tools/src/vgafont.cpp
A eduke32/source/tools/src/kmd2tool.cpp
A eduke32/source/tools/src/md3_export.py
A eduke32/source/tools/src/unpackssi.cpp
A eduke32/source/tools/src/checkdefs.sh
A eduke32/source/tools/src/getdxdidf.cpp
A eduke32/source/tools/src/kextract.cpp
A eduke32/source/tools/src/map2stl.cpp
A eduke32/source/tools/src/prhighpal.py
A eduke32/source/tools/src/wad2art.cpp
A eduke32/Common.mak
A eduke32/.gitignore
A eduke32/_clang-format
A eduke32/Android.mk
A eduke32/source/tools/src/wad2map.cpp
A eduke32/GNUmakefile
U eduke32
Ausgecheckt, Revision 6129.

Alternativ kann der jeweils aktuelle Quelltext (oder bei Bedarf auch ältere Versionen) als Tarball (Archiv) von der Website der Entwickler heruntergeladen werden: eduke32_src_20170423-6129.tar.xz (Stand: 27. April 2017).

Das Archiv habe ich ebenfalls in das Verzeichnis Software verschoben, dort mit dem Archivmanager entpackt und anschließend wieder gelöscht:

Entpacken des Quelltextes

Die folgend beschriebenen Schritte gelten für alle Quelltexte, egal ob aus SVN-Repository oder Tarball bezogen gleichermaßen.

2. Vorbereitung

Bevor das Programm unter Linux ausgeführt werden kann, muss der Quelltext erst noch kompiliert werden. Generell muss die dafür benötigte Software (Compiler usw.) installiert sein. Unter Linux Mint ist das standardmäßig der Fall – kann mich zumindest nicht erinnern, das erst noch nachgeholt zu haben.

Daneben müssen für EDuke32 verschiedene besondere Abhängigkeiten erfüllt sein, d. h. z. B. verschiedene Programmbibliotheken („libraries“) müssen installiert sein und bei Bedarf noch zwingend installiert werden.

Unter Ubuntu (ab 14.04) und Derivaten, wie z. B. Linux Mint können folgende Pakete

  • build-essential
  • nasm
  • libgl1-mesa-dev
  • libglu1-mesa-dev
  • libsdl1.2-dev
  • libsdl-mixer1.2-dev
  • libsdl2-dev
  • libsdl2-mixer-dev
  • flac
  • libflac-dev
  • libvorbis-dev
  • libpng12-dev
  • libvpx-dev
  • libgtk2.0-dev
  • freepats

mit dem Befehl

$ sudo apt-get install build-essential nasm libgl1-mesa-dev libglu1-mesa-dev libsdl1.2-dev libsdl-mixer1.2-dev libsdl2-dev libsdl2-mixer-dev flac libflac-dev libvorbis-dev libpng-dev libvpx-dev libgtk2.0-dev freepats

installiert werden:

Download und Installation fehlender Pakete zur Auflösung von Abhängigkeiten

Das Programm apt-get benötigt Administratorrechte, unter Linux Mint wird es daher mit dem vorangestellten Kommando „sudo“ ausgeführt.

Besonders möchte ich auf die Pakete flac und libflac-dev hinweisen: In der Anleitung aus dem Ubuntu-Wiki werden beide Pakete nicht erwähnt, was mir zunächst erhebliche Probleme bereitete, denn das Kompilieren scheiterte beim Objekt flac.o – allerdings mit einer zumindest für mich etwas irreführenden Fehlermeldung. Danach konnte der Kompiler (angeblich) eine definitiv vorhandene Datei (all.h) nicht finden, die allerdings war im Verzeichnis ~/Downloads/Software/eduke32/platform/Windows/include/FLAC vorhanden. So etwas kann interessierte Laien wie mich natürlich verwirren, daher habe ich – eher auf Verdacht – die Pakete flac und libflac-dev nachinstalliert und dann lief der Kompiliervorgang ohne weitere Probleme durch.

3. Kompilieren der Software

Sind alle Abhängigkeiten erfüllt, ist der eigentliche Kompiliervorgang fast schon ein Selbstläufer.

Soweit wir nicht schon darin sind, wechseln wir in der Konsole in das Verzeichnis eduke32:

$ cd ~/Downloads/Software/eduke32

Hinweis (für Linux-Neulinge):

Die Tilde „~“ steht unter Linux immer für das jeweilige Heimatverzeichnis, d. h. egal, von welchem (Unter-)Verzeichnis aus der Befehl ausgeführt wird (in meinem Beispiel im Wurzel- bzw. Rootverzeichnis): Es spart Tipperei (denn sonst hätte ich $ cd /home/cbehrens/Downloads/… eingeben müssen) und man landet immer richtig…

$ ls

zeigt den Inhalt des Verzeichnisses an, in dem u. a. das GNUmakefile zu finden ist: Eine Datei mit einer Vielzahl von Anweisungen für Kompiler und Linker, auf die ich hier nicht näher eingehen kann.

Den eigentlichen Kompilier- und Linkvorgang starten wir nun mit dem Befehl

$ make

(Jupp – mehr ist es tatsächlich nicht…).

Der führt dann – hoffentlich – zu folgender Ausgabe:

Im Verzeichnis eduke32 hat der Linker zwei ausführbare Dateien erstellt:

eduke32: Das ist die zum Spielen benötigte Programmdatei.

mapster32: Das ist – man ahnt es fast – ein Editor zum Bearbeiten und Erstellen eigener Level.

Auf den Editor komme ich vielleicht später noch zurück.

4. Einrichten und Erweitern des Spiels

Den Quellcode benötigen wir nun nicht mehr, daher habe ich die beiden Dateien in das Verzeichnis

~/Spiele/eDuke32

verschoben. In das Verzeichnis muss vor dem Start auch noch die oben bereits erwähnte Datei DUKE3D.GRP kopiert werden. Die Programme lassen sich dann dort entweder per Doppelklick oder – etwas eleganter – von der Konsole aus dem Verzeichnis heraus mit dem Befehl

$ ./eduke32

starten. Probiert das ruhig einmal aus, das sollte dann etwa so aussehen:

So sollte es nach dem Aufruf von $ ./eduke32 aussehen

Der Start aus der Konsole ist vor allem immer dann sinnvoll, wenn dem Programm beim Aufruf noch bestimmte Parameter übergeben werden sollen.

Mit dem Konsolenbefehl

$ ./eduke32 -map [file.map]

z. B. können eigene Level geladen werden usw.

Unter „Messages“ nennt das Programm die Verzeichnisse, in denen es nach den Spieldaten sucht:

Using /home/cbehrens/Spiele/eDuke32/ for game data
Using /home/cbehrens/.eduke32/ for game data

Bevor wir mit dem Spielen beginnen, sollten wir das Spiel aber erst noch etwas zeitgemäß „aufbohren“. Dafür empfehle ich folgende Erweiterungen:

  • High Resolution Pack (HRP): Ersetzt die doch etwas in die Jahre gekommenen Grafiken, vor allem Texturen durch neue, höher auflösende. Unter Linux wird das Duke3D HRP v5.4 ZIPFILE (890 MB) – Standalone HRP file benötigt. Als (optionales) Zubehör gibt es dann noch das XXX Pack v1.33by NightFright. Damit lässt sich das Spiel dann noch etwas – äh – weniger jugendfrei gestalten als ohnehin schon.

  • Duke3D HRP Music Packs: Polieren den Sound ordentlich auf.

Sämtliche heruntergeladenen ZIP-Archive bitte nicht entpacken, sondern so wie sie sind in das Verzeichnis autoload verschieben. Laut Meldungen sucht eduke32 zwar in beiden Verzeichnissen (s. o.), meiner Erfahrung nach sollte aber das Verzeichnis

$ ~/.eduke32/autoload

(also das versteckte Verzeichnis direkt im Heimatverzeichnis) verwendet werden.

Hinweis (für Linux-Neulinge):

Unter Linux werden Dateien und Verzeichnisse mittels eines dem Namen vorangestellten Punktes „versteckt“. Der Dateimanager zeigt das .eduke32-Verzeichnis daher standardmäßig nicht an. Das lässt sich leicht ändern: Einfach mit dem rechten Mousebutton in einen freien Bereich klicken und im Kontextmenu den Punkt „Verborgene Dateien Anzeigen“ auswählen:

Verborgene Dateien unter Linux anzeigen

und nicht erschrecken, da dürften einige Verzeichnisse erscheinen…

Sollte das Verzeichnis .eduke32 noch nicht vorhanden sein: Bitte einmal das Programm eduke32 starten (s. o.), das erstellt dann das Verzeichnis, in dem es u. a. die Konfigurationsdateien, aber auch Spielstände und Screenshots (die können während des Spiels mit der Taste F12 aufgenommen werden) ablegt.

Sind alle ZIP-Archive im Verzeichnis autoload abgelegt, kann das Spiel bzw. eduke32 erneut gestartet werden. Angesichts der doch nicht unerheblichen Dateigrößen kann es dabei zu spürbaren Ladezeiten kommen. Da ich von einer SSD aus spiele, kann ich dazu nicht viel berichten, hier geht alles sehr schnell.

Wem das noch nicht ausreicht:

Und nun: Let‘s rock…!

Download

Der (leicht gekürzte) Text im PDF-Format zum Download: Tutorial-EDuke32-Linux