| FazBrowse GitHub Viewer | Trending | | Home |
| Tools: [Download Repo ZIP] [Original HTTPS Page] |
| Name | Name | Last commit date | ||
|---|---|---|---|---|
vkQuake is a port of id Software's Quake using Vulkan instead of OpenGL for rendering. It is based on the popular QuakeSpasm and QuakeSpasm-Spiked ports and runs all mods compatible with QuakeSpasm like Arcane Dimensions.
Improvements over QuakeSpasm include:
Windows and Linux binaries can be found in Releases. MacOS (both Apple Silicon and 64-bit Intel) binaries are at Mac Source Ports.
It is recommended to use the installer on Windows. This sets up start menu entries for the classic and remastered Quake versions. The engine finds Steam, GOG and Epic Games Store installs automatically; otherwise it asks for the game folder once and remembers it. Save data and config files will be written to the user folder (%APPDATA%\vkQuake) instead of the Quake data folder.
Otherwise copy all files inside the vkquake-<version>_windows_x64.zip (Intel) or vkquake-<version>_windows_arm64.zip (Arm64) folder in the zip to the Quake base directory. Overwrite any existing files. Afterward to run the game just execute vkQuake.exe.
Copy all files inside the vkquake-<version>-linux_x64 folder in the tar archive to the Quake base directory. Overwrite any existing files. Run vkquake.AppImage.
Note
Make sure all data files are lowercase, e.g. "id1", not "ID1" and "pak0.pak", not "PAK0.PAK". Some distributions of the game have upper case file names, e.g. from GOG.com.
OpenBSD includes vkQuake in the standard package repositories since version 6.6.
If you're running OpenBSD 6.6 or greater, you can install the package with:
$ pkg_add vkquakeFreeBSD includes vkQuake in the standard port/package repoistories since version 11.3.
If you're running FreeBSD 11.3 or greater, you can install the package with:
# pkg install vkquakeAlternatvely, you can build vkQuake with FreeBSD's port collection:
$ cd /usr/ports/games/vkquake
# make installvkQuake has support for playing the 2021 re-release content. Follow installation instructions as above but copy the files into the rerelease folder.
vkQuake shows basic usage of the API. For example it demonstrates render passes & sub passes, pipeline barriers & synchronization, compute shaders, push & specialization constants, CPU/GPU parallelism and memory pooling.
vkQuake only supports little-endian systems. The reason is, all known existing Vulkan-capable systems in the wild are little-endian. Consequently, all big-endian support from QuakeSpasm has been effectively removed. vkQuake wouldn't even start on an big-endian system, outputing a fatal error.
Note
For Windows, you will need at least Vulkan SDK version 1.4.321.1 or newer.For Linux, you will need at least Vulkan SDK version 1.2.162 or newer. When building for Linux this is not always the case for the SDK provided by the distribution. Install the latest LunarG SDK if necessary.
Clone the vkQuake repo from https://github.com/Novum/vkQuake.git
Prerequisites:
Open the Visual Studio solution, Windows\VisualStudio\vkquake.sln, select the desired configuration and platform, then build the solution.
Setup your MinGW-w64 environment, e.g. using w64devkit or MSYS2.
Build 64 bit Intel vkQuake:
cd vkQuake/Quake make -f Makefile.w64
Build 64 bit Arm vkQuake:
cd vkQuake/Quake make -f Makefile.w64a
If you are on Linux and want to cross-compile for Windows, see the build_cross_win??.sh scripts.
With Meson, Ninja and a compiler installed (LLVM/Clang on PATH, or run meson setup --vsenv build for MSVC):
cd vkQuake meson setup build && ninja -C build
Make sure that both your GPU and your GPU driver support Vulkan.
To compile vkQuake, first install the build dependencies:
Ubuntu:
apt-get install git meson gcc glslang-tools spirv-tools libsdl3-dev libvulkan-dev libvorbis-dev libmpg123-dev libx11-xcb-dev
Arch Linux:
pacman -S git meson flac glibc libgl mpg123 libvorbis libx11 sdl3 vulkan-headers glslang spirv-tools
Fedora:
dnf install git meson gcc glslang spirv-tools vulkan-loader-devel SDL3-devel mpg123-devel libvorbis-devel flac-devel opusfile-devel
On distributions that do not ship SDL3 yet, install the SDL2 development package instead (e.g. libsdl2-dev); the build falls back to SDL2 automatically.
Then clone the vkQuake repo:
git clone https://github.com/Novum/vkQuake.git
Now go to the Quake directory and compile the executable:
cd vkQuake meson build -Ddebug=true -Dstrip=false && ninja -C build
Meson prefers SDL3 and falls back to SDL2 if it is not installed; add -Duse_sdl3=disabled to force SDL2 (or enabled to require SDL3).
Note
The Meson version needs to be 1.3.0 or newer. For older distributions you can use make:cd vkQuake/Quake make -jMeson is the preferred way to build vkQuake because it automatically checks for out of date file depenencies, is faster and has better error reporting for missing dependencies.
Note
vkQuake requires SDL3 or, as a fallback for older distributions, at least SDL2 2.0.6 with enabled Vulkan support.
To compile vkQuake, first install the build dependencies with Homebrew:
brew install molten-vk vulkan-headers glslang spirv-tools sdl3 libvorbis flac opus opusfile flac mpg123 meson pkgconfig
Then clone the vkQuake repo:
git clone https://github.com/Novum/vkQuake.git
Now go to the Quake directory and compile the executable:
cd vkQuake meson build -Ddebug=true -Dstrip=false && ninja -C build
Meson prefers SDL3 and falls back to SDL2 if it is not installed; add -Duse_sdl3=disabled to force SDL2 (or enabled to require SDL3).
Note
The Meson version needs to be 1.3.0 or newer.
vkQuake is not garanteed to be free of runtime errors. In those rare cases, the game is either quit brutally with a Quake Error dialog, or by an Host_Error console message that only terminates the currently played level.
In both cases some error context is provided that can be useful for developers. See Error reporting for details.
Note
This section only applies to older releases. For the 2021 re-release music will work out of the box.
The original Quake had a great soundtrack by Nine Inch Nails. Unfortunately, the Steam version does not come with the soundtrack files. The GOG-provided files need to be converted before they are ready for use. In general, you'll just need to move a "music" folder to the correct location within your vkQuake installation (.e.g /usr/share/quake/id1/music). Most Quake engines play nicest with soundtracks placed in the id1/music subfolder vs. sound\cdtracks
QuakeSpasm, the engine vkQuake is derived from, supports OGG, MP3, FLAC, and WAV audio formats. The Linux version of QuakeSpasm/VkQuake requires external libraries: libogg or libvorbis for OGG support, libmad or libmpg123 for MP3, and libflac for FLAC. If you already have a setup that works for the engine you're currently using, then you don't necessarily have to change it.
Generally, the below setup works for multiple engines, including Quakespasm/vkQuake:
| Back | FazBrowse Home | New Git URL |