SoftQuake is a project that aims to provide a cross-platform port of the software rendered version of Quake. It's directly based on the 1999 release of the Quake source code by id Software.
Primary goals:
- Match the original DOS visuals and feel as closely as possible.
- Minimal quality of life changes.
- No internal engine changes or limit removing.
- Cross-platform code.
GLQuake is also ported, mostly as a historical curiosity. At this point (in 2023) there are a vast number of GLQuake based ports that look a lot nicer, and bring more features to the table. It's not the primary focus of this project, but it's there if you want it.
For more info, please read softquake-notes.txt
There are pre-compiled binaries available in the Release section.
Just pick the OS that suits you, and download.
Linux users will need a 32 bit version of SDL2 installed on their machines.
The following sections are for those who want to build this code from source.
- gcc
- make
- SDL2 (32 bit)
- SDL2_mixer (32 bit, optional).
- OpenGL 2
- Meson (optional)
- MSYS2
- i686-w64-mingw32-gcc
- make
- OpenGL 2 (provided by your video card driver)
- SDL2 (32 bit, either use the included dll or provide one yourself)
- Install MSYS2
- Launch
MSYS2 MinGW 32-bit - Update MSYS2. A simple
pacman -Syyfollowed bypacman -Suymight be sufficient - Type in the following command:
pacman -S make i686-w64-mingw32-gcc
- Follow these instructions
All instructions for the Windows build can be followed on a Linux system, provided you have i686-w64-mingw32-gcc installed (you won't need MSYS2)
- Navigate to
Source - Run
make - The final output will be in the
bindirectory
- Navigate to
Source - Run
./build-cross-win32.sh(this script accepts command line arguments just likemake) - The final output will be in the
bindirectory
- Navigate to
Source - Run
./build-linux.sh - The final output will be in the
bindirectory
- Todo
This step has not been thoroughly tested yet, your results may vary
- You may use your own system-wide copy of SDL2_mixer if you prefer, and skip this step
- Navigate to
Source/thirdparty/SDL2_mixer/src - Run
./build.sh linux libSDL2_mixer-2.0.so.0will be built- Copy it to
Source/thirdparty/lib/linux/x86
- Navigate to
Source/thirdparty/SDL2_mixer/src - Run
./build.sh win32 SDL2_mixer.dllandSDL2_mixer.libwill be built- Copy both files to
Source/thirdparty/lib/win32/x86
There are a number of compile-time options available:
ENABLE_CD_AUDIOENABLE_SOUNDENABLE_PNGENABLE_GL_LIGHTMAP_FIXENABLE_GL_FULLBRIGHT_FIXENABLE_GL_TEXTUREMODE_FIXENABLE_GL_CLEARCOLOR_FIXENABLE_GL_UI_SCALING_FIX
Please read softquake-notes.txt for a detailed overview of what they do.
By default, all options are set to use the same parameters as the original source code release.
These are actual missing features and not just nice-to-have things. This is by no means an exhaustive list, feel free to file an issue.
- Networking
- Dedicated server
Todo: Formalise bug reports (use Github for now)
There are probably bugs.
https://github.com/voidstar-dev/SoftQuake/issues
I can only program for and test on platforms and operating systems that I actually have access to.
Contributors are welcome!
- id Software
- QuakeSpasm developers
- SDL2 developers
- Darkplaces developers (this readme format is larely based on their page)
- Meson developers
- Everyone else that I have missed for keeping this game alive