UQE Quake 2 - Updated

Friday, September 30, 2016
Most of the changes for this release were under-the-hood fixes to various issues. The FMOD sound system used by UQE Quake to perform music playback were ported to UQE Quake 2, updated to the latest build and the playback code has been tweaked to conform to Quake 2 music playback rules.

The list of video mode slots have been freed-up to allow the possibility to run at 4K screen resolution. The libraries exposing OpenGL 4.5 extensions were updated. There were various tiny NPOW2 flaws with model skin texturing that has been fixed.

The infamous "ReadLevel: function pointers have moved" bug has been fixed. It occasionally occurs while loading a saved game when running either one of the official mission packs. The code attempts to make sure that the saved game being loaded is the same version as the gamex86.dll that created it initially. It appears to have been an unnecessary paranoia-check since the compilation date of the gamex86.dll should be sufficient as verification.

The ability to render the world in wireframe mode were added. It gives an interesting perspective on how the world is rendered on a more technical level by showing how geometry move, rotate and gets culled by the renderer based on the position and direction the camera is facing.

Functionality have also been added to enable the engine to load inflated versions of the original 8-bit low resolution textures to double their original size which in turn doubles the amount of texels on any given surface. This reduces the blurriness of textures to a comfortable midway point between the pixelated look of the original software renderer and the excessively blurred look of the hardware renderer. This produces a much smoother and sharper view of the world. This functionality have also been extended for video playback to allow for a much more crisp and closer to the original playback quality of cinematics.

The lighting calculation on models were updated to smooth changes in lighting with regards to model rotations. Originally the lighting on models only updated every 16 degrees when rotating as one of many optimizations that have been implemented to compensate for the limited processing power that were available at the time of the original release. The updated calculation interpolates between each 16 degree rotation change to produce a smoother result.

Some engine tweaks to ensure it properly runs on Windows 10 as well as removing the ancient assembler code from the engine and rather use standard C code instead. The assembler code was required on very old hardware to improve performance, which with today's hardware is unnecessary engine bloat.

The engine were compiled using Visual Studio 2015 Update 3 and should run great for old-school gamers running on modern hardware.