Installing and playing the classic PC Doom game on Linux/Ubuntu.

  1. Install Doom on Linux
  2. Set a custom resolution for prboom
  3. Install a map editor
Scythe2.wad MAP30.
MAP02 of Freedoom. This is a great IWAD.
MAP02 of Freedoom running in Prboom.

The Classic PC Doom game is a masterwork of game design. It is a first-person shooter that other games such as Halo copied, but they can not do as well as this classic game, since 1993, it has dominated the first-person shooter market. No other game has the atmosphere and gameplay that classic PC Doom has. The Prboom source port is the best for playing Doom on PC.

Install Doom on Linux

Type this command to install Doom and all needed files right away.

[email protected]:~$ sudo apt-get install chocolate-doom doom-wad-shareware prboom-plus freedoom

The Doom IWADS, freedoom.wad, doom1.wad live in the /usr/share/games/doom folder. If you own a copy of Doom or Doom2, then copy the doom.wad and doom2.wad into this folder and then they will be accessible to prboom and chocolate-doom.

flynn@ubuntu:~/Documents$ ls /usr/share/games/doom/
doom1.wad  freedoom.wad  prboom.wad

Prboom Plus is an enhanced version of Prboom with extra features. The Prboom+ source port has many useful features for recording demos, as well as many features that benefit all Doomers in general. Install it on Ubuntu thusly.

[email protected]:~$ sudo apt-get install prboom-plus

This will also install Freedoom, giving the player a full IWAD with 30 maps to slaughter through.

Gzdoom is another very good source port that allows a fun gaming experience with countless mods and wad files that use advanced engine features.

Download Gzdoom from this website.

This is a lot of fun to use when playing Russian Overkill.

You may also install this with a Debian package. Russian Overkill is a lot of fun and playing with Gzdoom gives the best experience.

The old vanilla Doom executable would show a flashing floppy disk icon when there was disk activity. Do any modern source ports use this feature or is it a bit superfluous in these days of super-fast 7200 rpm SATA2 drives and computers with an I7 CPU? I miss that feature from the days of playing vanilla Doom on a 486 sx33 with 4MB of RAM. Those were the days, we could never have imagined that we would be playing Doom on our phones. Or on an Android tablet. The great game has come so far in these modern times with Gzdoom and Chocolate Doom we have a wide choice if we want either accelerated graphics and 3d models or just classic vanilla Doom gaming. The Chocolate Doom game has a game engine that closely replicates the behavior of the vanilla Doom engine as closely as possible.

Classic Doom E1M1.
Classic Doom E1M1.

Set a custom resolution for prboom

To set a custom resolution for prboom; open the ~/.prboom/prboom.cfg file with vim.tiny and change the video resolution to the values you desire. Below is an example. set the screen_width and screen_height to the proper resolution of your monitor.

# Video settings
videomode                 "16bit"
screen_width               1920
screen_height              1080
use_fullscreen                1
use_doublebuffer              1
translucency                  1
tran_filter_pct              87
screenblocks                 10
usegamma                      2
uncapped_framerate            1
filter_wall                   1
filter_floor                  1
filter_sprite                 1
filter_z                      1
filter_patch                  1
filter_threshold          49152
sprite_edges                  0
patch_edges                   0

This will fix the resolution of prboom. This is how I always fix it.

Install a map editor

Install a nice map editor for Linux and start making levels for Doom.

The Eureka map editor for Linux is a good way to make awesome maps for this old game.

This is not too hard to use and would allow a user to make whatever they want.

The user manual is here:

So get cracking and make a cool map today!

Install gzdoom by typing sudo apt install gzdoom. This is a very good source port that supports mods like Ultimate Torment and Torture. And looks very good running on a good GPU. it also supports some build engine features like 3D floors and movable 3D floors using portals. As well as ACS scripting to create cool effects.

Home page: I ran gzdoom while in a folder containing IWADS and it finds them and allows you to select which one to play with.

Running this command will return quite a lot of Doom packages available for Linux.

4.4 Fri Nov 01 jason@Yog-Sothoth 0: $ apt-cache search doom
darkradiant - Level design toolchain for DOOM3 and The Dark Mod
darkradiant-plugins-darkmod - DarkMod-specific plugins for DarkRadiant
deutex - composition tool for doom-style WAD files
doomsday - enhanced version of the legendary DOOM game
doomsday-common - enhanced version of the legendary DOOM game - common files
doomsday-data - enhanced version of the legendary DOOM game - data files
doomsday-server - enhanced version of the legendary DOOM game - server
eureka - map editor for the classic DOOM games
freedm - multiplayer deathmatch game for Doom-compatible engines
freedoom - two single player campaigns for Doom-compatible engines
glbsp - nodes builder for Doom-style games; has support for OpenGL
libbluray-bdj - Blu-ray Disc Java support library (BD-J library)
libbluray-bin - Blu-ray disc playback support library (tools)
libbluray-dev - Blu-ray disc playback support library (development files)
libbluray-doc - Blu-ray disc playback support library (documentation)
libbluray2 - Blu-ray disc playback support library (shared library)
libglbsp-dev - node builder library for OpenGL-based Doom-style games (headers)
libglbsp3 - node builder library for OpenGL-based Doom-style games
marsshooter - ridiculous space shooter governed by the laws of gravity
opl3-soundfont - OPL3 SoundFont that simulates the sound of an OPL3 chip
prboom-plus - enhanced clone of the classic first-person shooter Doom
prboom-plus-game-server - enhanced clone of the classic first-person shooter Doom (server)
rbdoom3bfg - Doom3 BFG edition game engine
slashem - variant of Nethack
slashem-gtk - variant of Nethack (Gtk window port)
slashem-sdl - variant of Nethack (SDL window port)
slashem-x11 - variant of Nethack (X11 window port)
ttf-aenigma - 465 free TrueType fonts by Brian Kent
ufoai - UFO: Alien Invasion -- build your team and stop the aliens
unmass - Extract game archive files
chocolate-common - dummy transitional package for chocolate-doom related packages
chocolate-doom - Doom engines closely-compatible with Vanilla Doom
spring-mods-kernelpanic - The Kernel Panic game for the Spring engine, a fast-paced RTS with no economy
wadc - programming environment for creating Doom maps
dosemu - DOS Emulator for Linux
game-data-packager - Installer for game data files
dhewm3 - GPL Doom 3 game engine
dhewm3-d3xp - dhewm3's gamelibrary for the title DOOM³: Resurrection of Evil
dhewm3-doom3 - dhewm3's gamelibrary for the title DOOM³
doom-wad-shareware - Shareware game files for the 3D game Doom
game-data-packager-runtime - Launcher for proprietary games
gzdoom - OpenGL version of ZDoom.
zdoom - Advanced Doom source port.

As well as a few unrelated packages, there are a lot of Doom source ports for Linux. Proving that this game is never going to die. But I wish that they would release a new Doom game with the same story as the 1993 version, and updated versions of the same maps. Would be cool to see the Tei Tenga planet and the Doom alpha content.

Doom map editing on Linux with Yandex. How to install and set up the Yadex Doom editor for Linux.

2 thoughts on “Installing and playing the classic PC Doom game on Linux/Ubuntu.”

  1. Brian Wallace

    OK, so you do all that. Then play freedoom and exit, now your display is stuck in 640×480 with no way out! The display control to change it is off the screen and you can’t get it back! You have to reboot to fail-safe mode to set it back up. X screens aren’t made to handle 640×480 the default for .prdoom. Need to include this problem and a fix in the instructions above.

Leave a Reply

Your email address will not be published. Required fields are marked *

This site uses Akismet to reduce spam. Learn how your comment data is processed.