Quake 2 Graphics Mod

SourceForge.net Logo


Welcome to the Quake 2 Graphics Mod project webpage. Apologies for the lack of content at the moment. This project is new so it will take some time to get proper website content up and running. Also, I am new to administratnig SourceForge projects; I am learning as I go along about how various features work. If you are seeing this webpage then that is itself a good result! Initially this page will simply contain a link to the current release of the Quake 2 Graphics Mod. Several public forums for this project are available from the SourceForge project page, which is accessible via the link on the left.


This is a modification of Quake 2 that adds stencil shadows and GLSL bumpmapping to the game. Please bear in mind that it is at an early stage of development; it is nowhere near being mature or finished. The only things that get stencil shadow/GLSL bumpmapping treatment at the moment are dynamic lights (i.e. from explosions or gunshots) and the static world model (i.e. not enemies, player models, pick-up-able items, etc.). This was fine for the first version of the mod considering that my goals at the time were to produce an example mod showing how to implement modern graphics techniques. However, because there has been a higher level of interest in the mod than I expected, I have decided to develop it further. This will not be a quick process as I have other obligations that must take higher priority, so please bear with me. I have written some ideas for various optimisations and extensions in plan.txt.


These questions have probably arisen because the readme files are not specific enough. I hope to correct this for future releases.
  • When I attempt to compile the OpenGL renderer it fails complaining about redefinitions of 'GLcharARB' and 'GLhandleARB'. What's going on? This problem occurs when those types are defined in the glext.h header file on some systems (namely Linux). I didn't think that this header file would be included by default, but it appears that it is on those systems. To get around this problem, delete (or comment out) lines 610 and 611 of Q2GM-X.X.X/ref_gl/qgl.h (replace X's with numbers), which read
    typedef char GLcharARB
    typedef unsigned long GLhandleARB
    The OpenGL renderer should now compile. I will look into fixing this for future releases so that explicity modifying qgl.h is unnecessary.
  • I can't build DevIL using the supplied config/make files. What am I doing wrong?
    You don't need to specifically build DevIL. The Normal Map Generator program compiles the bits of DevIL it needs itself. You only need to compile stuff using files in the "Q2GM-X.X.X" and "NMG-X.X.X" directories (replace X's with numbers). DevIL itself should be build-able, but problems have recently been raised about compiling it on Linux. This issue needs more investigation, although I am not all that familiar with Linux yet. Remember though that this issue should not prevent you from compiling or running the mod or the Normal Map Generator program.
  • I can't find the "shaders" directory or the Normal Map Generator program mentioned in the readme file with the source code, where are they?
    The source code zip file should contain four directories called (replace X's with numbers) "DevIL-X.X.X", "NMG-X.X.X", "Q2GM-X.X.X" and "shaders". It is this "shaders" directory that is meant by the readme file in the "Q2GM-X.X.X" directory. The source code to the the Normal Map Generator program should be located in the "NMG-X.X.X" directory.

Update: 9 May 2005

A new minor point release (version 1.1.1) has been made available. This version fixes a couple of minor bugs that prevented the correct normal maps being used. Thanks to mysticman who pointed out that normal maps had been given an extension of ".nm.tag" when it should have been ".nm.tga". This was due to a silly typo on my behalf.


  • Q2gmAndUtils-1.1.1-Source.zip This zip file contains the complete source code to version 1.1.1 of the Quake 2 Graphics Mod and associated utilities.
  • Q2gmAndUtils-1.1.1-Win32.zip This zip file contains Win32/i686 binaries for running the mod on Windows in case you can't or don't want to compile it from source.