Q2PRO

Q2PRO is an enhanced Quake 2 client and server for Windows and Linux. Supported features include:

Downloads

Q2PRO doesn’t have releases. It is always recommended to use the latest nightly build linked below. These builds are regenerated automatically once a commit is made into the git repository.

Windows installation: extract downloaded archives into your Quake 2 directory.

Linux binaries are not provided. Users are advised to build from source. See INSTALL file inside the source tarball for instructions.

Re-release support

Q2PRO supports Quake 2 re-release single player maps. Download 64-bit Windows client bundled with modified re-release game DLL from the link below.

Windows installation: extract downloaded archive into new directory, then create shortcut to q2pro.exe with the following command line:

q2pro.exe +set basedir "<path to re-release dir>" +set homedir "."

It is not currently recommended to use re-release game DLL for hosting multiplayer servers.

Source code for modified re-release game DLL is available here.

Archived builds

For testing purposes, some older builds are available here.

Development

Latest development source code can be obtained from Q2PRO github.com page. You can also report issues you have with the latest code there. This site also hosts a local mirror of the git repository.

Building

For building Q2PRO please consult the INSTALL file.

FAQ

Check your gl_modulate setting. Q2PRO defaults this to 1, while other clients may have different default values.

Q2PRO is very well suited for playing with vertical sync on. In fact, it is recommended to enable vertical sync for smooth, tearing-less rendering. Assuming you have cl_async enabled, it is important to set r_maxfps correctly. It should be set equal or slightly lower than the vertical refresh frequency of your monitor (typically 60 Hz for LCD monitors). You can check your current movement FPS by executing echo $cl_mps command. When configured properly, it should be equal to your cl_maxfps setting.

This is a harmless effect caused by protocol 36 attempting to reduce outbound traffic and sending packets with frequency limited by cl_maxpackets, instead of cl_maxfps used by other protocols. Since default value of cl_maxpackets is 30 (lower than typical cl_maxfps value), server miscalculates your ping to be slightly higher. This does not affect your gameplay experience in any way: events like pressing +attack are instantly pushed to the server. Ideally, server should be configured to use improved ping calculation method that uses minimal network latency instead of average latency to avoid possible confusion. (This is now the default in latest Q2PRO server).

Those who used OpenAL sound system with R1Q2 client may find that Q2PRO sound is different in OpenAL mode. This is expected, because R1Q2 and Q2PRO use different OpenAL sound attenuation models. Q2PRO tries to mimic original Quake 2 software sound as close as possible, whereas R1Q2 uses custom model that makes sounds from plats and doors hearable at greater distances than normal. Q2PRO will not support this sound model because it contradicts its goal to have the same look and feel as original Quake 2.

Yes. Even though Q2PRO is multiplayer oriented, single player is supported, too. Latest Q2PRO version even supports cinematics and Ogg Vorbis music. To play in single player mode, you must use game library that supports enhanced savegames. Baseq2 game library that comes with Q2PRO supports enhanced savegames. For mission packs, you should use game libraries from Yamagi Q2 project (you may need to rename them, e.g. game.dll to gamex86.dll). Map fixes from Yamagi Q2 are also supported, copy them to maps/ directory and set map_override_path cvar to maps/ to enable them.