A modern build system for Quake II with dual renderer support (Software and OpenGL).
- Dual Renderer Support: Both software and OpenGL renderers
- Clean Build System: Organized makefiles with clear targets
- Easy Renderer Switching: Simple script to switch between renderers
- Automatic Setup: Handles file structure and configuration automatically
make bothmake softmake gl./build/roquakeii +set game baseq2 +set basedir ../data# Switch to software renderer
./scripts/switch_renderer.sh soft
# Switch to OpenGL renderer
./scripts/switch_renderer.sh gl
# Check current renderer
./scripts/switch_renderer.shEdit data/baseq2/config.cfg:
set vid_ref "softx" # Software renderer (always works)
set vid_ref "gl" # OpenGL renderer (requires OpenGL libraries)roquakeii/
├── build/ # Compiled binaries
│ ├── roquakeii # Main executable
│ ├── ref_soft.so # Software renderer
│ ├── ref_softx.so # Software renderer (symlink)
│ ├── ref_gl.so # OpenGL renderer
│ ├── gamex86_64.so # Game logic DLL
│ └── roquakeii.conf # Renderer path config
├── data/ # Game data
│ ├── baseq2/ # Base game files
│ │ ├── config.cfg # User configuration
│ │ ├── default.cfg # Default configuration
│ │ ├── gamex86_64.so # Game DLL (copied)
│ │ └── pak*.pak # Game data files
│ └── roquakeii.conf # Renderer path config
├── makefiles/ # Build system
│ ├── makefile # Main executable
│ ├── makefile_renderers # Renderer libraries
│ └── makefile_game # Game DLL
├── scripts/ # Utility scripts
│ └── switch_renderer.sh # Renderer switcher
└── src/ # Source code
├── client/ # Client code
├── game/ # Game logic
├── ref_soft/ # Software renderer
├── ref_gl/ # OpenGL renderer
└── linux/ # Linux-specific code
| Target | Description |
|---|---|
make all |
Build everything (default) |
make both |
Build both renderers (recommended) |
make soft |
Build software renderer only |
make gl |
Try to build OpenGL renderer |
make clean |
Clean all build files |
make setup |
Setup file structure |
make help |
Show help information |
- GCC compiler
- X11 development libraries
- Standard C libraries
- All software renderer requirements
- OpenGL development libraries (
glu,mesa) - GLU headers (
/usr/include/GL/glu.h)
sudo pacman -S glu mesa| Feature | Software | OpenGL |
|---|---|---|
| Compatibility | ✅ Always works | |
| Performance | Good | Better |
| Graphics | Basic | Enhanced |
| Dependencies | Minimal | OpenGL libraries |
# Check if OpenGL libraries are installed
ls /usr/include/GL/glu.h
# Install missing dependencies
sudo pacman -S glu mesa
# Try building again
make gl# Check if game data files are present
ls data/baseq2/pak*.pak
# Ensure configuration is correct
./scripts/switch_renderer.sh softmake clean
make bothUser configuration file. Key settings:
vid_ref: Renderer selection (softxorgl)name: Player namecrosshair: Crosshair visibility
Default configuration loaded before user config.
- Fork the repository
- Create a feature branch
- Make your changes
- Test with both renderers
- Submit a pull request
This project is based on the original Quake II source code by id Software, released under the GPL license.
- id Software for the original Quake II
- The Quake II community for preservation efforts
- Open source contributors who made this possible