Open-source Quake 4 engine and game-code replacement built for stock assets on modern systems
Quick Start | Highlights | Compatibility | Building | Documentation | Credits
OpenQ4 is a complete open-source replacement for the Quake 4 engine and game binaries. The project keeps official Quake 4 asset compatibility as its guiding constraint while modernizing rendering, display handling, input, packaging, and the build pipeline for current hardware and operating systems.
Single-player and multiplayer live under one openq4/ directory with game-sp and game-mp. SDK-derived game code is maintained in the companion OpenQ4-GameLibs repository, while BSE is treated as first-party source under src/bse/ and linked directly into the client executable.
Note
OpenQ4 does not include Quake 4 assets. You need a legitimate copy of Quake 4 from Steam or GOG to play.
Note
OpenQ4 uses its own engine and game modules. It does not target compatibility with the proprietary Quake 4 DLLs and is not a drop-in runtime for legacy mods.
OpenQ4 running against stock Quake 4 content.
- Complete engine and game-code replacement for Quake 4
- Unified
openq4/game directory for both single-player and multiplayer - Startup auto-discovery for Steam and GOG installs
- Official
q4basePK4 validation enabled by default - In-tree BSE runtime integrated into
OpenQ4-client_<arch> - Canonical SDK-derived game-library source kept in OpenQ4-GameLibs
- Multi-scale bloom with luminance-based extraction
- FP16 HDR scene targets, filmic tone mapping, color controls, and log-average auto exposure
- SSAO and optional CRT post-processing
- Experimental shadow mapping for projected and point lights, projected-light CSM, alpha-tested transparency shadows, and optional translucent shadow accumulation
- Screen-fraction scaling, supersample-style presets, MSAA, and SMAA
- Automatic aspect-ratio, FOV, zoom, and view-weapon framing from live render size
- Single-player weapon wheel currently under development, including slow-motion audio/presentation treatment on hold
- Multi-monitor targeting plus borderless, desktop fullscreen, and exclusive fullscreen paths
- Controller hotplug and analog input support
- SDL3-first Linux runtime with an explicit
OpenQ4-steamdecklauncher/profile for Steam Deck - Meson-based builds,
builddir/for local artifacts, and.install/for staged runtime packages - Windows, Linux, and macOS targets with x64 as the current active baseline
Modern renderer upgrades layered onto the original game assets.
- Install Quake 4 from Steam or GOG.
- Download the latest OpenQ4 package from the Releases page.
- Extract the archive to a folder of your choice.
- Launch
OpenQ4-client_x64(OpenQ4-client_x64.exeon Windows). - On Steam Deck, launch
OpenQ4-steamdeckinstead of the generic client entrypoint.
OpenQ4 will try to locate your Quake 4 install automatically. If detection fails, set fs_basepath manually or see TECHNICAL.md.
Tip
Windows release packages are intended to be self-contained.
Tip
As of March 30, 2026, Linux packages default to the SDL3 backend. On Steam Deck and other Wayland sessions where both WAYLAND_DISPLAY and DISPLAY are present, OpenQ4-steamdeck prefers XWayland unless you already set SDL_VIDEODRIVER yourself.
OpenQ4 is developed against the shipped Quake 4 assets, not replacement repo-side content. Current compatibility work already covers several engine paths that stock content depends on:
- BSE reconstruction and client-side effect execution
- Effect-driven sound shader behavior
- BSE screen and camera effect paths
- Material and shader compatibility work needed to reduce custom override dependence
- Modern display handling for widescreen, ultrawide, and multi-monitor setups
- Official asset validation through
fs_validateOfficialPaks 1
Project scope is intentionally explicit:
openq4/remains the single game directory for SP and MP- BSE stays integrated in-tree under
src/bse/ - Dedicated server builds keep the disabled BSE manager path unless that changes by design
- Canonical SDK/game-library edits belong in
../OpenQ4-GameLibs, not a mirroredsrc/gametree - Compatibility with proprietary Quake 4 game DLLs is a non-goal
Gameplay parity work is still ongoing. For current follow-up items, see TODO.md and docs-dev/release-completion.md.
Full setup instructions live in BUILDING.md. The short version:
- Keep OpenQ4-GameLibs checked out beside this repo at
../OpenQ4-GameLibs - Use
builddir/for local Meson builds - Use
.install/as the staged runtime package root - On Windows, call
tools/build/meson_setup.ps1instead of rawmesonfrom an arbitrary shell - When staging
.install/, usemeson install -C builddir --no-rebuild --skip-subprojectsor the wrapper equivalent
powershell -ExecutionPolicy Bypass -File tools/build/meson_setup.ps1 setup --wipe builddir . --backend ninja --buildtype=debug --wrap-mode=forcefallback
powershell -ExecutionPolicy Bypass -File tools/build/meson_setup.ps1 compile -C builddir
powershell -ExecutionPolicy Bypass -File tools/build/meson_setup.ps1 install -C builddir --no-rebuild --skip-subprojectsSet OPENQ4_BUILD_GAMELIBS=1 if you want the wrapper to trigger game-library builds during compile. For local runtime validation, launch from .install/ so fs_cdpath points at the staged OpenQ4 overlay.
- BUILDING.md - platform requirements and build workflow
- TECHNICAL.md - advanced configuration, file layout, dependencies, and compatibility notes
- docs-user/display-settings.md - display, fullscreen, and multi-monitor behavior
- docs-user/steam-deck.md - Steam Deck launcher, controls, and asset discovery notes
- docs-user/shadow-mapping.md - shadow-map settings, presets, and troubleshooting
- docs-user/multiplayer-networking.md - multiplayer networking and lag compensation
- docs-dev/platform-support.md - platform roadmap and backend status
- docs-dev/official-pk4-checksums.md - official asset validation reference
- docs-dev/input-key-matrix.md - keyboard and controller input reference
- docs-dev/release-completion.md - current release checklist and open work
- TODO.md - tracked issues and planned tasks
Built to preserve the original game feel on modern displays and GPUs.
OpenQ4 welcomes code, documentation, testing, and compatibility reports. Keep stock-asset compatibility in mind, prefer engine-side fixes over shipping replacement content, and update documentation when behavior or workflow changes.
- themuffinator - OpenQ4 development and maintenance
- DarkMatter Productions - project stewardship and website
- Justin Marshall - Quake4Doom and initial BSE reverse engineering
- Robert Backebans - renderer modernization reference work
- id Software - idTech 4 engine and Quake 4
- Raven Software - Quake 4 game development
- Map-Center community - feedback and playtesting, especially Papaya, JohnnyBoy, and coffee009
- Sean Barrett - stb_vorbis audio codec
- GLEW Team - Nigel Stewart, Milan Ikits, Marcelo E. Magallon, and Lev Povalahev
- OpenAL Soft contributors - 3D audio implementation
- SDL contributors - cross-platform framework
- SMAA authors - Jorge Jimenez, Jose I. Echevarria, Belen Masia, Fernando Navarro, and Diego Gutierrez
OpenQ4 engine code is licensed under the GNU General Public License v3.0. See LICENSE for the full text.
The game-library code in OpenQ4-GameLibs is derived from the Quake 4 SDK and remains subject to id Software's SDK EULA. Quake 4 game assets remain the property of id Software and ZeniMax Media.
OpenQ4 is an independent project and is not affiliated with, endorsed by, or sponsored by id Software, Raven Software, Bethesda, or ZeniMax Media. Quake 4 is a trademark of ZeniMax Media Inc.
The software is provided "as is" without warranty of any kind. OpenQ4 is experimental software under active development and requires a legitimate Quake 4 installation.
Website | Repository | Game Library | Issue Tracker | Releases



