A random collection of Quake engine hacks
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
 
 
 
 
 
 
Charles Pence 76836f32bc
Remove/clean some c_str() stuff.
3 hours ago
doc/original Move everything around into a semblance of a real directory structure. 4 months ago
lib/soloud Fix the fact that I ran the formatter on SoLoud. 3 months ago
src Remove/clean some c_str() stuff. 3 hours ago
.clang-format Remove/clean some c_str() stuff. 3 hours ago
.gitignore Add a -basedir param for finding assets. 3 months ago
CMakeLists.txt Fix CMake policy warning in SoLoud. 2 weeks ago
COPYING Move everything around into a semblance of a real directory structure. 4 months ago
README.md Update README. 2 days ago
TODO Remove/clean some c_str() stuff. 3 hours ago

README.md

Pence's Quake Source Hacks

I don't even want to call this a game yet; this is just a collection of hacks because I think it's fun to hack on the Quake source code, and have for, I dunno, more than a decade now.

Building

You'll need:

Libraries already bundled here:

To build, generate Makefiles for your platform with cmake.

Building with Static Analysis

To run Clang's static analysis on the code, call CMake as follows:

mkdir ../tmp
cd ../tmp
scan-build cmake -DCMAKE_CXX_COMPILER=/usr/lib/clang/c++-analyzer -DCMAKE_C_COMPILER=/usr/lib/clang/ccc-analyzer ../quake
scan-build make clean all

To run cppcheck, call:

cppcheck --project=build/compile_commands.json 2> out

Tags

I've got a few tags in this repository for various points in the development history that I might want to roll back to at some point in the future. They are:

  • v0.9: Port math library to glm.
  • v0.8: Move lots of string and array handling to std::string and std::vector.
  • v0.7: Lots of C++ cleaning, just before work started on memory management.
  • v0.6: Ported the video to SDL, the network to ENet, and the sound to SoLoud; compiling as C++.
  • v0.5: Ported the QuakeC into C, though still rather buggy and untested.
  • v0.4: Cleaned up QuakeC to a more C-like dialect.
  • v0.3: QuakeC added and compiling.
  • v0.2: Filesystem ported to PhysicsFS; QuakeC string handling fixed.
  • v0.1: Initial clean source code, building under Linux, loads without crashing, a bit of cleanup of unused platform-specific code. Code reformatted to Google style. Few other changes.

License

The original Quake source was copyright (C) 1996-1997 Id Software, Inc., and released under the terms of the GPLv2 license. The modifications here are copyright (C) 2020-2021 Charles Pence, and also released under GPLv2.