I don’t have much time for games anymore, but on the rare occasion where I’m bored and have some time to kill, I tend to waste it all trying to get old games to work on new hardware.
Hopefully I can spare you the loss of an evening if you are looking to boot up Duke3D for old time’s sake.
It has been a few years since I tried to run eduke32 on Linux and much has changed since the first time I wrote up an article on doing so.
Here’s how to install eduke32 with DukePlus on Linux. It probably works the same on Macs too but I don’t own one to know for sure.
We must first add the eduke32 repositories to /etc/apt/sources.list:
sudo nano /etc/apt/sources.list deb http://apt.duke4.net codename main deb-src http://apt.duke4.net codename main
Change “codename” to your distribution’s codename, but I can confirm “quantal” will still work on 14.04 (“trusty”).
Then download the GPG key so Ubuntu knows the duke4 repository is trusted:
wget -q http://apt.duke4.net/key/eduke32.gpg -O- | sudo apt-key add -
Last, download and install eduke32.
sudo apt-get update sudo apt-get install eduke32
Install the Duke Nukem core
Dig up your Duke Nukem 3D Atomic Edition CD! On it, you’ll find a file called DUKE3D.GRP.
You have to use Atomic Edition with DukePlus, but you could probably scrape by with regular v1.3 or even the shareware grp if you just want to see the base game in high-resolution.
If you downloaded the game through Steam, you can find it in that weird directory where Steam installs stuff (~/.local/share/) or if you downloaded it from GOG, it should be easy to find.
Worst case, try searching for it.
sudo find / -name DUKE3D.GRP
Copy DUKE3D.GRP from wherever you find it to ~/.eduke32.
cp DUKE3D.GRP ~/.eduke32
Install HRP or other mods
If you want to use HRP or any sort of sprite replacement (weapon skins, etc.) without DukePlus, you’ll want to create an autoload directory and use it for mod management.
Installing new mods is as simple as just putting the downloaded zip file straight into this folder and unzipping it there.
For DukePlus, the steps are only slightly more involved.
DukePlus’ lack of documentation in regards to installing it on Linux is its biggest pain in the ass.
From the website, you’ll download a file, DUKEPLUS.zip. Copy/save it to ~/.eduke32 (not into the autoload folder!)
Unzip this file in-place. You’ll get a new directory, “DukePlus Install.”
cd ~/.eduke32 unzip DUKEPLUS.zip
Everything in the first tier of “DukePlus Install” is irrelevant to Linux. What you want is the “DukePlus” folder contained within. Move it one level up. You can then delete the original “DukePlus Install” folder.
mv ~/.eduke32/Dukeplus\ Install/DukePlus ~/.eduke32/
If you want to use HRP or any other custom mods, place their zips in the DukePlus directory and unzip them there.
Now all you have to do is fire up eduke32.
I have found that starting eduke32 from the Applications menu does not work consistently– it does not detect the mod files properly. There’s probably an argument that’s supposed to be specified, but in the meantime, the only method I’ve found to consistently work is from the command line:
In the window that pops up, make sure you select “DukePlus” under the Custom Game menu, as well as “Enable ‘autoload’ folder” (if you ever plan to not use DukePlus).
Check “Polymer” if you want to run the game using the Polymer rendering engine (as seen in screenshots), otherwise leave it blank if you want to run vanilla.
If/when it pops up saying it can’t find dp.cfg, do not let it generate it from eduke32.cfg. Just say no.
Once inside the game, you’ll need to select OPTIONS->KEYBOARD SETUP or MOUSE SETUP and assign keys/buttons for “RELOAD ALTFIRE” and “DUKEPLUS MENU”. DukePlus is configured in-game (as in, you literally need to start Hollywood Holocaust or one of the other episodes before you can really configure it). It will harass you with a banner until you do so.
Polymer vs Polymost
A lot of hard work has been put into advanced rendering engines for Duke Nukem 3D, of which Polymer is the most developed but has some steep hardware requirements. My gaming hardware is seriously outdated so it’s possible I can’t get the full Polymer experience, so be your own judge:
Enabling DukePlus without HRP, Polymer or Polymost will work but may result in mismatched textures throughout the game. It’s playable but some things (like the corner apartment on E1M1) are difficult to find.
Unfortunately this entire setup is very, very unstable on Linux, owing in no small part to filename inconsistencies across platforms. It is clear everything is developed on Windows systems, because the amount of textures and models eduke32 cannot find on Linux systems as a result of inconsistent capitalization is pretty impressive.
Expect crashes often. At the time of this writing, only episodes 2 and 4 actually load for me; the rest (including the DukePlus levels) crash instantly upon loading.