This is a work in progress. We already know it's buggy.
Duke3D runs natively on Linux now, thanks to 3DRealms releasing the game
source.
What works:
- Basic gameplay seems fine.
- Sound and music.
- keyboard input.
- mouse input.
- Hi-res (what would be "VESA modes" in DOS).
- Windowed/fullscreen support.
- Save games.
- Record and playback demos compatible with the Atomic Edition (1.5).
- Shareware and retail versions should all work.
- BUILD editor works to a large degree.
- DukeBots for multiplayer AI.
- In-game UI for keyboard configuration (original used external program).
- Assembly code all has portable C fallbacks, now.
- TCP/IP Networking!
- Linux/x86 port.
- Linux/ppc port.
- Windows/x86 port.
- BeOS/x86 port.
- MacOSX/ppc port.
- Solaris/x86 port.
- FreeBSD/x86 port.
- Probably works elsewhere without much effort.
What doesn't work/known bugs:
- Joystick input isn't working yet.
- MacOS X: netcode has byteswap issues when playing with x86 players.
- savegames aren't compatible between big/littleendian systems.
- File cases need to be exact in some places, not others.
- Engine (game?) relies on compiler treating "char" as "unsigned" by
default...this needs to be flushed out, for sanity's sake. But I'm
anal. :)
- Netcode handles packet loss _VERY_ poorly...it's fine for stable
connections and LANs, though.
- Configuring a multiplayer game involves editing text files and filling
in IP addresses. Not very user-friendly.
- Some text prompts try to read the SDL input queue instead of stdin like
they should.
- Probably other stuff. Do NOT consider this stable and complete yet!
To use:
- Make sure SDL and
SDL_mixer are
installed on your system. MacOS X users should build/install these in
"the unix way"...i.e., configure scripts, not Project Builder.
- Make sure you've got a Duke3D ATOMIC EDITION cd-rom. You might be
able to get away with the shareware version or one of the other
retail versions, but I haven't tried.
- You'll need some way to install the game from the cd-rom under DOS.
DOSemu worked for me. VMware,
VirtualPC, Bochs, or a real DOS/Windows system may or may not work.
(People have told me this can actually all be done in Linux directly,
after all. Google for it.)
- Once you have the game installed, and run setup.exe under DOS to
generate a duke3d.cfg file. Select any sound card for music and FX
playback (we use this as a on/off switch for audio).
- Copy the installed game dir to your Linux system.
- Get the source code from Subversion:
- svn co svn://svn.icculus.org/duke3d/trunk/ duke3d
- cd duke3d/source
- make
- You should have a "duke3d" binary now. Copy it to the game dir.
- There are some .con files in the "testdata" dir you get from the
duke3d Subversion. Copy them to the game dir, CAPITALIZED, so they
overwrite the ones that came with the original game.
- Run game, be happy.
- If you get really bad audio output under win32, edit your Duke3d.cfg
file so "MixRate" is "8000" and not "44000". YMMV.
- On BeOS, the "make" lines above should be "make beos=true".
- On MacOS X, the "make" lines above should be "make macosx=true".
- On Solaris, the "make" lines above should be "make solaris=true".
- On Linux/ppc, the "make" lines above should be "make linux_ppc=true".
- On FreeBSD, the "make" lines above should be "gmake freebsd=true".
- On Windows, there are Visual C++ 6.0 and Visual Studio.NET project
files in the "duke3d" directory.
IF YOU HAVE PROBLEMS:
Tough luck. Do NOT contact us with bug reports at this time. Do NOT contact
us if you can't get it to build. Do NOT contact us for copies of the game.
In fact, if you aren't sending us code, don't contact us at all.
The 3DRealms Forums might help you, however.
This port was done by Dan Olson, Steven Fuller, and Ryan C. Gordon, with
contributions from David Koenig, Dave Watson, among others.
The real nasty part (porting the Build Engine) was the work of:
- Ryan C. Gordon
- Dan Olson
- Andrew Henderson
- Christian Zander
- Adrian Neill
- Matt Helsley
- Nicholas Vining
- Matt Saettler
- Steven Fuller
- A cast of thousands.