{"id":15110135,"url":"https://github.com/novum/vkquake","last_synced_at":"2025-05-14T04:09:51.143Z","repository":{"id":37677438,"uuid":"63755042","full_name":"Novum/vkQuake","owner":"Novum","description":"Vulkan Quake port based on QuakeSpasm","archived":false,"fork":false,"pushed_at":"2025-05-08T16:48:05.000Z","size":116723,"stargazers_count":1975,"open_issues_count":24,"forks_count":241,"subscribers_count":75,"default_branch":"master","last_synced_at":"2025-05-08T17:46:02.046Z","etag":null,"topics":["3d-graphics","gpu","hardware-acceleration","quake","vulkan"],"latest_commit_sha":null,"homepage":null,"language":"C","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"gpl-2.0","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/Novum.png","metadata":{"files":{"readme":"readme.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE.txt","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null,"zenodo":null}},"created_at":"2016-07-20T06:09:07.000Z","updated_at":"2025-05-08T16:48:10.000Z","dependencies_parsed_at":"2023-02-19T20:31:17.315Z","dependency_job_id":"87108384-d00a-4de8-bf29-c19fbc3a6a6a","html_url":"https://github.com/Novum/vkQuake","commit_stats":null,"previous_names":[],"tags_count":60,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Novum%2FvkQuake","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Novum%2FvkQuake/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Novum%2FvkQuake/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Novum%2FvkQuake/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/Novum","download_url":"https://codeload.github.com/Novum/vkQuake/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":254070109,"owners_count":22009559,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["3d-graphics","gpu","hardware-acceleration","quake","vulkan"],"created_at":"2024-09-25T23:41:37.547Z","updated_at":"2025-05-14T04:09:46.131Z","avatar_url":"https://github.com/Novum.png","language":"C","funding_links":[],"categories":[],"sub_categories":[],"readme":"# 🌋 vkQuake\n[![Windows CI](https://github.com/Novum/vkQuake/actions/workflows/build-windows.yml/badge.svg)](https://github.com/Novum/vkQuake/actions/workflows/build-windows.yml) [![Windows CI](https://github.com/Novum/vkQuake/actions/workflows/build-mingw.yml/badge.svg)](https://github.com/Novum/vkQuake/actions/workflows/build-mingw.yml) [![Linux CI](https://github.com/Novum/vkQuake/actions/workflows/build-linux.yml/badge.svg)](https://github.com/Novum/vkQuake/actions/workflows/build-linux.yml) [![macOS CI](https://github.com/Novum/vkQuake/actions/workflows/build-mac.yml/badge.svg)](https://github.com/Novum/vkQuake/actions/workflows/build-mac.yml) [![Formatting](https://github.com/Novum/vkQuake/actions/workflows/clang-format-check.yml/badge.svg)](https://github.com/Novum/vkQuake/actions/workflows/clang-format-check.yml)\n\nvkQuake is a port of id Software's [Quake](https://en.wikipedia.org/wiki/Quake_(video_game)) using Vulkan instead of OpenGL for rendering. It is based on the popular [QuakeSpasm](http://quakespasm.sourceforge.net/) and [QuakeSpasm-Spiked](https://triptohell.info/moodles/qss/) ports and runs all mods compatible with QuakeSpasm like [Arcane Dimensions](http://www.moddb.com/mods/arcane-dimensions). \n\nImprovements over QuakeSpasm include:\n* Much better performance with multithreaded rendering and loading\n* The game can run at higher frame rates than 72Hz without breaking physics\n* A software Quake like underwater effect\n* Support for remastered models (in MD5 format) if using data from the 2021 rerelease\n* Support for standalone MD5 models, not only as `.mdl` alternatives\n* True color skins support (`.png`, `.tga`, `.jpg`) for MD5 models, including fullbrights \n* Dynamic shadows (requires a GPU with ray tracing support)\n* Better color precision reducing banding in dark areas\n* Native support for anti aliasing and anisotropic filtering\n* 8-bit color emulation\n* Scaling for pixelated look\n* Mods menu for easy mod loading\n* More modern protocol to avoid certain movement issues (from QSS)\n* Support for custom mod HUDs (from QSS)\n* Support for scriptable particles (from QSS)\n* External WAD support ([more info](https://github.com/Novum/vkQuake/pull/753))\n* WAD3 format support, allowing per-texture palettes for more colorful levels ([more info](https://github.com/Novum/vkQuake/pull/753))\n\n## Installation\n\nWindows and Linux binaries can be found in [Releases](https://github.com/Novum/vkQuake/releases).\nMacOS (both Apple Silicon and 64-bit Intel) binaries are at [Mac Source Ports](https://www.macsourceports.com/game/quake).\n\n### Windows\nIt is recommended to use the installer on Windows. This sets up start menu entries for the original and remastered Quake versions. Save data and config files will be written to the user folder (`%APPDATA\\vkQuake`) instead of the Quake data folder.\n\nOtherwise copy all files inside the `vkquake-\u003cversion\u003e_win64` or `vkquake-\u003cversion\u003e_win32` folder in the zip to the Quake base directory. Overwrite any existing files. Afterward to run the game just execute `vkQuake.exe`.\n\n### Linux\nCopy all files inside the `vkquake-\u003cversion\u003e-linux64` folder in the tar archive to the Quake base directory. Overwrite any existing files. Run `vkquake.AppImage`.\n\n\u003e **Note**\\\n\u003e 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.\n\n### OpenBSD\n\n[OpenBSD](https://openbsd.org) includes vkQuake in the standard package repositories since version [6.6](https://www.openbsd.org/66.html).\n\nIf you're running `OpenBSD 6.6` or greater you can install the package with:\n\n```console\n$ pkg_add vkquake\n```\n\n### Quake '2021 re-release'\n\nvkQuake has initial support for playing the 2021 re-release content. Follow installation instructions as above but copy the files into the rerelease folder.\n\n## Vulkan\nvkQuake shows basic usage of the API. For example it demonstrates render passes \u0026 sub passes, pipeline barriers \u0026 synchronization, compute shaders, push \u0026 specialization constants, CPU/GPU parallelism and memory pooling.\n\n## Endianness\nvkQuake only supports **little-endian** systems. \nThe 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. \nvkQuake wouldn't even start on an big-endian system, outputing a fatal error.\n\n## Building\n\u003e **Note**\\\n\u003e 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.\n\n### Windows\n\nClone the vkQuake repo from `https://github.com/Novum/vkQuake.git`\n\nPrerequisites:\n\n* [Git for Windows](https://github.com/git-for-windows/git/releases)\n* A [Vulkan-capable GPU](https://en.wikipedia.org/wiki/Vulkan_(API)#Compatibility) with the appropriate drivers installed\n* Install the latest [Vulkan SDK](https://vulkan.lunarg.com/sdk/home). Log out and back in after installation to make sure environment variables are set.\n\n#### Visual Studio\n\n* Install [Visual Studio Community](https://www.visualstudio.com/products/free-developer-offers-vs) with Visual C++ component.\n\nOpen the Visual Studio solution, `Windows\\VisualStudio\\vkquake.sln`, select the desired configuration and platform, then\nbuild the solution.\n\n#### MinGW\n\nSetup your [MinGW-w64](https://sourceforge.net/projects/mingw-w64/) environment, e.g. using [w64devkit](https://github.com/skeeto/w64devkit) or [MSYS2](https://www.msys2.org/).\n\nBuild 32 bit (x86) vkQuake:\n\n~~~\ncd vkQuake/Quake\nmake -f Makefile.w32\n~~~\n\nBuild 64 bit (x64) vkQuake:\n\n~~~\ncd vkQuake/Quake\nmake -f Makefile.w64\n~~~\n\nIf you are on Linux and want to cross-compile for Windows, see the `build_cross_win??.sh` scripts.\n\n### Linux\n\nMake sure that both your GPU and your GPU driver support [Vulkan](https://en.wikipedia.org/wiki/Vulkan#Support_across_vendors).\n\nTo compile vkQuake, first install the build dependencies:\n\nUbuntu:\n~~~\napt-get install git meson gcc glslang-tools spirv-tools libsdl2-dev libvulkan-dev libvorbis-dev libmpg123-dev libx11-xcb-dev\n~~~\n\nArch Linux:\n~~~\npacman -S git meson flac glibc libgl mpg123 libvorbis libx11 sdl2 vulkan-headers glslang spirv-tools\n~~~\n\nFedora:\n~~~\ndnf install git meson gcc glslang spirv-tools vulkan-loader-devel SDL2-devel mpg123-devel libvorbis-devel flac-devel opusfile-devel\n~~~\n\nThen clone the vkQuake repo:\n\n~~~\ngit clone https://github.com/Novum/vkQuake.git\n~~~\n\nNow go to the Quake directory and compile the executable:\n\n~~~\ncd vkQuake\nmeson build \u0026\u0026 ninja -C build\n~~~\n\n\u003e **Note**\\\n\u003e The Meson version needs to be 0.47.0 or newer. For older distributions you can use make:\n\u003e ~~~\n\u003e cd vkQuake/Quake\n\u003e make -j\n\u003e ~~~\n\u003e Meson 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.\n\n\u003e **Note**\\\n\u003e 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.\n\n### MacOS\n\nTo compile vkQuake, first install the build dependencies with Homebrew:\n\n~~~\nbrew install molten-vk vulkan-headers glslang spirv-tools sdl2 libvorbis flac opus opusfile flac mpg123 meson pkgconfig\n~~~\n\nThen clone the vkQuake repo:\n\n~~~\ngit clone https://github.com/Novum/vkQuake.git\n~~~\n\nNow go to the Quake directory and compile the executable:\n\n~~~\ncd vkQuake\nmeson build \u0026\u0026 ninja -C build\n~~~\n\n\u003e **Note**\\\n\u003e The Meson version needs to be 0.47.0 or newer.\n\n## Optional - Music / Soundtrack\n\n\u003e **Note**\\\n\u003e This section only applies to older releases. For the 2021 re-release music will work out of the box.\n\nThe 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`\n\nQuakeSpasm, 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. \n\nGenerally, the below setup works for multiple engines, including Quakespasm/vkQuake:\n\n* The music files are loose files, NOT inside a pak or pk3 archive.\n* The files are placed inside a \"music\" subfolder of the \"id1\" folder. For missionpack or mod soundtracks, the files are placed in a \"music\" subfolder of the appropriate game folder. So the original Quake soundtrack files go inside \"id1\\music\", Mission Pack 1 soundtrack files go inside \"hipnotic\\music\", and Mission Pack 2 soundtrack files go inside \"rogue\\music\".\n* The files are named in the pattern \"tracknn\", where \"nn\" is the CD track number that the file was ripped from. Since the soundtrack starts at the second CD track, MP3 soundtrack files are named \"track02.mp3\", \"track03.mp3\", etc. OGG soundtrack files are named \"track02.ogg\", \"track03.ogg\", etc. FLAC soundtrack files are named \"track02.flac\", \"track03.flac\", etc. WAV soundtrack files are named \"track02.wav\", \"track03.wav\", etc.\n\n**See more:** [Quake Soundtrack Solutions (Steam Community)](http://steamcommunity.com/sharedfiles/filedetails/?id=119489135)\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fnovum%2Fvkquake","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fnovum%2Fvkquake","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fnovum%2Fvkquake/lists"}