Ubuntu Linux: Install Doom3 Game

How do I install the first-person shooter genre, Doom3 video game under Ubuntu Linux?

Doom 3 is a science fiction first-person shooter video game developed by id Software. It was first released for Microsoft Windows. The game was later adapted for Linux, as well as being ported for Mac OS X.

Game Requirements

  1. Any Linux Distribution.
  2. 3D Video card with OpenGL acceleration support (min 64M ram)
  3. ALSA and OSS sound backend.
  4. Linux Kernel v2.6+ and glibc v2.2.4+ is recommended. (part of most modern Linux distro)
  5. DOOM3 PC retail Windows version DVD / CD.

The following instructions are tested on both Fedora 10 and Ubuntu Linux 8.04 (but should work under any Linux distro) using nVidia Quadro FX 570/PCI/SSE2 256MB RAM 3D accelerator card.

Step # 1: Install Doom3 Linux Client

Visit this page and grab Linux doom3 installer client. You can use wget command as follows:
$ cd /tmp
$ wget ftp://ftp.idsoftware.com/idstuff/doom3/linux/doom3-linux-1.3.1.1304.x86.run

Install it, enter:
$ sudo sh doom3-linux-1.3.1.1304.x86.run
Accept the license agreement.

Fig.01: Doom3 Setup

Now, just follow the on-screen instructions. By default game will be installed in /usr/local/games/doom3/base directory.

Step # 2: Copy Files From DOOM3 PC Retail Windows CDs Version (not part of Linux)

The following files need to be copied from the win32 install CDs to your /usr/local/games/doom3/base directory:

  1. pak000.pk4
  2. pak001.pk4
  3. pak002.pk4
  4. pak003.pk4
  5. pak004.pk4 etc

Insert CD #1 into Linux computer and mount it at /mnt/dvd or /mnt/cdrom/ or /media/cdrom. Once mounted copy above files:
$ cp /path/to/pak*.pk4 /usr/local/games/doom3/base
For example, my cd was mounted at /mnt/dvd. You need to use Setup/Data/base directory to copy above files:
$ sudo cp -v /mnt/cdrom/Setup/Data/base/pak*.pk4 /usr/local/games/doom3/base
You need to unmount CD, eject it
$ eject
Insert 2nd CD and copy files:
$ sudo cp -v /mnt/cdrom/Setup/Data/base/pak*.pk4 /usr/local/games/doom3/base
You need to unmount CD, eject it
$ eject
Insert 3rd CD and copy files, enter:
$ sudo cp -v /mnt/cdrom/Setup/Data/base/pak*.pk4 /usr/local/games/doom3/base
Run ls -l command to verify that all files are copied:
$ cd /usr/local/games/doom3/base
$ ls -l

How Do I Start doom3?

You need to copy all pak???.pk4 files from all 3 CDs to /usr/local/games/doom3/base directory. Once done type the following command to start doom3:
$ doom3
You need to type your CD-key and you can play the game.

Fig.02: Linux Doom3 in Action

Fig.03: Linux Doom3

Sound Problem

If sound is not understandable then try running doom3 with the following command:
$ doom3 +set s_driver oss +set s_numberOfSpeakers 2

How do I start the doom3 dedicated server?

Type the command:
$ doom3-dedicated
Sample Outputs:

DOOM 1.3.1.1304 linux-x86 Jan 16 2007 21:53:29
found interface lo - loopback
found interface vmnet1 - 172.16.91.1/255.255.255.0
found interface vmnet3 - 172.16.193.1/255.255.255.0
found interface vmnet8 - 192.168.120.1/255.255.255.0
found interface wlan0 - 192.168.1.101/255.255.255.0
------ Initializing File System ------
Loaded pk4 /usr/local/games/doom3/base/game01.pk4 with checksum 0x51c6981f
Loaded pk4 /usr/local/games/doom3/base/game02.pk4 with checksum 0xf3ec6f7
Loaded pk4 /usr/local/games/doom3/base/game03.pk4 with checksum 0x5d4230ea
Loaded pk4 /usr/local/games/doom3/base/pak000.pk4 with checksum 0x28d208f1
Loaded pk4 /usr/local/games/doom3/base/pak001.pk4 with checksum 0x40244be0
Loaded pk4 /usr/local/games/doom3/base/pak002.pk4 with checksum 0xc51ecdcd
Loaded pk4 /usr/local/games/doom3/base/pak003.pk4 with checksum 0xcd79d028
Loaded pk4 /usr/local/games/doom3/base/pak004.pk4 with checksum 0x765e4f8b
Loaded pk4 /usr/local/games/doom3/base/pak005.pk4 with checksum 0x8ffc3621
Loaded pk4 /usr/local/games/doom3/base/pak006.pk4 with checksum 0x95b65ab
Loaded pk4 /usr/local/games/doom3/base/pak007.pk4 with checksum 0x666bdb3c
Loaded pk4 /usr/local/games/doom3/base/pak008.pk4 with checksum 0x23ae5993
Current search path:
/home/vivek/.doom3/base
/usr/local/games/doom3/base
/usr/local/games/doom3/base/pak008.pk4 (3 files)
/usr/local/games/doom3/base/pak007.pk4 (38 files)
/usr/local/games/doom3/base/pak006.pk4 (48 files)
/usr/local/games/doom3/base/pak005.pk4 (63 files)
/usr/local/games/doom3/base/pak004.pk4 (5137 files)
/usr/local/games/doom3/base/pak003.pk4 (4676 files)
/usr/local/games/doom3/base/pak002.pk4 (6120 files)
/usr/local/games/doom3/base/pak001.pk4 (8972 files)
/usr/local/games/doom3/base/pak000.pk4 (2698 files)
/usr/local/games/doom3/base/game03.pk4 (2 files)
/usr/local/games/doom3/base/game02.pk4 (2 files)
/usr/local/games/doom3/base/game01.pk4 (2 files)
game DLL: 0x0 in pak: 0x0
Addon pk4s:
file system initialized.
--------------------------------------
----- Initializing Decls -----
------------------------------
------- Initializing renderSystem --------
using ARB renderSystem
renderSystem initialized.
--------------------------------------
5206 strings read from strings/english.lang
Couldn't open journal files
execing editor.cfg
execing default.cfg
execing DoomConfig.cfg
couldn't exec autoexec.cfg
5206 strings read from strings/english.lang
----- Initializing Sound System ------
sound system initialized.
--------------------------------------
Opening IP socket: localhost:27666
found DLL in pak file: /usr/local/games/doom3/base/game01.pk4/gamex86.so
copy gamex86.so to /home/vivek/.doom3/base/gamex86.so
--------- Initializing Game ----------
gamename: baseDOOM-1
gamedate: Jan 16 2007
Initializing event system
...473 event definitions
Initializing class hierarchy
...142 classes, 382184 bytes for event callbacks
Initializing scripts
/proc/cpuinfo CPU frequency: 2394 MHz
Compiled 'removeInitialSplineAngles': 881.6 ms
---------- Compile stats ----------

Memory usage:
     Strings: 79, 12592 bytes
  Statements: 67875, 1357500 bytes
   Functions: 2109, 250532 bytes
   Variables: 147376 bytes
    Mem used: 2479288 bytes
 Static data: 2277552 bytes
   Allocated: 3284544 bytes
 Thread size: 7068 bytes

...6 aas types
game initialized.
--------------------------------------
-------- Initializing Session --------
Couldn't read ../base/xpkey.
session initialized
--------------------------------------
--- Common Initialization Complete ---

Type 'help' for dedicated server info.

terminal support enabled ( use +set in_tty 0 to disabled )
pid: 10514
8112 MB System Memory
Async thread started

Further Readings:

Posted by: SXI ADMIN

The author is the creator of SXI LLC and a seasoned sysadmin, DevOps engineer, and a trainer for the Linux operating system/Unix shell scripting. Get the latest tutorials on SysAdmin, Linux/Unix and open source topics via RSS/XML feed or weekly email newsletter.