UQE Quake 2

Friday, August 30, 2013
From the outset of this project the idea was to ensure that the engine is as much as possible a purist build of the game. Most of the changes made to the engine were under-the-hood with a very small amount of actual visual changes. It is the perfect engine for those that are not inclined to care about having any extras like custom 32-bit texture support and other eye candy that transforms the game into something other than what was intended by the original.

Most probably it is also a pretty good candidate to be used when buying Quake 2 through digital online services like Steam since the effort required to make the jump from the original to UQE Quake 2 is extremely minimal from an upgrade perspective only requiring the original fully patched PAK files and optionally also the CIN files for cinematic playback.

The most obvious addition to the engine is the ability to set the screen resolution from 320x240 right up to more contemporary HD resolutions like 1920x1080. Functionality were also added to automatically recalculate the appropriate FOV based upon the selected screen resolution. All 2D art like the menus and other UI elements also gets scaled appropriately to remain at a consistent size.

Native OGG Vorbis support were added to allow music playback without Red Book CD Audio. The engine first try to detect an audio CD for Red Book CD Audio playback and if that fails it attempts to find and play appropriately named OGG files within base game directories.

Cinematic rendering was significantly improved with the addition of detection code to determine if the hardware supports non power of two textures. When successfully detected the engine doesn't attempt to resample (and in the process mangle) any cinematics or in-game textures which improves texture quality significantly. The cinematics themselves are being rendered according to the correct aspect ratio filling the screen as much as possible whilst keeping the ratio intact.

Functionality were added to allow the ability to filter textures from point-sampled right up to the limits of the hardware's anisotropic filtering abilities. An interesting use for setting it to point-sampled filtering is to give that typical oldschool software rendering look which shines through even better when running the engine at a resolution of around 640x480.

Back in 1997 the maximum texture size a typical high-end 3DFX Voodoo 2 could load and render was 256x256 which was hardcoded as such within the engine. UQE Quake 2 have the capability of detecting the maximum texture resolution that the hardware supports which is then used as the limits. This makes the limit more dynamic based upon every individual piece of hardware. Another interesting texture-based fix was the issue within the original engine code displaying an inability to properly animate any animated textures which was located on translucent surfaces.

There were also a bunch of tweaks and updates that won't be necessarily noticeable, but still pretty important. The most significant of these are the addition of an FPS counter that may be toggled on & off via a new console variable. The ability to configure an additional key binding right from the controls customization menu for "previous weapon" selection. Rendering of the visual weapon was added to the multiplayer menu for "player setup" to add completeness to the rotating 3D rendering of the player.