How to play Quake using an Open Source Engine on Linux

2020-03-02

(last time edited: 2021-01-28)

tags: linux, games

There are multiple Open Source engines for Quake. So far I've only tried QuakeSpasm, DarkPlaces and vkQuake. They all work perfectly. In this guide I'll teach you the basic use.

First of all buy or grab from the Internet a Windows DRM-Free GOG Copy of the first Quake game and run md5sum on it to check its integrity.

The md5 hash for setup_quake_the_offering_2.0.0.6.exe should be c8acba92fca95b8ba67111fa81730141

$ md5sum setup_quake_the_offering_2.0.0.6.exe

Install innoextract.

Extract the content.

$ innoextract -Lm ~/Downloads/setup_quake_the_offering_2.0.0.6.exe -d /tmp/Quake

Move the id1 subdir to your home directory.

$ mv /tmp/Quake/app/id1 ~

In order to have CD-ROM music working first create music directory.

$ mkdir ~/id1/music

Install bchunk.

Run bchunk on the game music files. Don't forget to add "track" in the output.

$ bchunk -w /tmp/Quake/app/game.gog /tmp/Quake/app/game.cue ~/id1/music/track

Also move the hipnotic and rogue directories to home.

$ mv /tmp/Quake/app/hipnotic /tmp/Quake/app/rogue ~

QuakeSpasm

QuakeSpasm is a modern, cross-platform Quake 1 engine based on FitzQuake. It includes support for 64 bit CPUs and custom music playback, a new sound driver, some graphical niceities, and numerous bug-fixes and other improvements. QuakeSpasm utilizes either the SDL or SDL2 frameworks, so choose which one works best for you. SDL is probably less buggy, but SDL2 has nicer features and smoother mouse input - though no CD support.

Download and install QuakeSpasm.

If QuakeSpasm is not present in your distro repository download an official binary release from here.

Extract the content.

$ tar -xf ~/Downloads/quakespasm*.tar.gz -C ~/Games

Play Quake using QuakeSpasm either by executing the extracted binary files or by executing the binary files installed in your system.

$ ~/./Games/quakespasm*/quakespasm -basedir ~/id1

or just

$ quakespasm

QuakeSpasm reads the directory id1 from your home directory by default.

Add -hipnotic or -rogue at the end of the command if you wanna play a different mission pack.

$ quakespasm -hipnotic

or

$ quakespasm -rogue

vkQuake

vkQuake is a Quake 1 port using Vulkan instead of OpenGL for rendering. It is based on the popular QuakeSpasm port and runs all mods compatible with it like Arcane Dimensions.

Download and install vkQuake.

If vkQuake is not present in your distro repository download the lastest source code release .zip or .tar from here.

Extract the content.

$ unzip ~/Downloads/vkQuake* -d ~/Engines

or the equivalent for tar extraction.

$ tar -xf ~/Downloads/vkQuake* -C ~/Engines

Let's compile the source code.

Notice: vkQuake 0.97 and later requires at least SDL2 2.0.6 with enabled Vulkan support. The precompiled versions in some of the distribution repositories (e.g. Ubuntu) do not currently ship with Vulkan support. You will therefore need to compile it from source. Make sure you have libvulkan-dev installed before running configure.

$ make -C ~/Engines/vkQuake*/Quake

Play Quake using vkQuake either by executing the compiled binary files or by executing the binary files installed in your system.

$ ~/./Engines/vkQuake*/Quake/vkquake -basedir ~/id1

or

$ vkquake -basedir ~/id1

or just

$ vkquake

Add -hipnotic or -rogue at the end of the command if you wanna play a different mission pack.

$ vkquake -hipnotic

or

$ vkquake -rogue

Happy gaming!