Cloned Games

D3DQuake

ArchivedPlayableWindows

Based on Quake

About

Quake is id Software's first-person shooter, whose GLQuake variant (based on the Quake 1.09 engine) this project modifies. D3DQuake is a graphics-backend port of id Software's GLQuake that replaces its roughly 50 OpenGL calls with Direct3D 7.0 equivalents, contained mostly in a single file (gl_fakegl.cpp) plus a small number of #ifdef'd changes to the main GLQuake sources. It targets Windows and requires a DirectX 7-capable video card with at least 8MB of video RAM; it was primarily tested on Windows 2000 with NVIDIA TNT2 and GeForce 256 cards.

How it differs from the original

The author reports D3DQuake generally runs slower than GLQuake — from around 36% of GLQuake's frame rate in the earliest version up to about 74-95% in later, more optimized builds — due to overhead in the OpenGL-to-Direct3D translation layer. Known bugs include incorrect lighting in fullscreen or 16-bit-per-pixel desktop modes, and it does not check hardware capability bits.

Getting started

Compile by opening the WinQuake project in Visual Studio 6.0 or later and selecting the "Win32 D3D Release" or "Win32 D3D Debug" configuration; the resulting executable is used the same way as the original GLQuake.exe, dropped into a Quake 1.06 shareware or full installation.

History

The author, who worked at WebTV (then a Microsoft subsidiary), wrote D3DQuake to learn about Quake and Direct3D, and notes it is unrelated to an earlier, unofficial 1996 Direct3D Quake port written by a Microsoft summer intern.

Known limitations

  • compatibility: Does not check capability bits; requires DirectX 7 drivers and 8 MB of video RAM.
  • graphics: When run fullscreen or with 16-bit-per-pixel desktop, some levels have bad lighting.
  • performance: Performance is approximately 50-74% of GLQuake depending on version and system.
  • platform: Voodoo3 cards experience texture corruption after running for a while; Matrox G400 has mixed reports of crashes.
Requires original assets. This is a Direct3D port of GLQuake requiring Quake game data (shareware version 1.06 was provided).

Additional notes

Trivia
The author found OpenGL's API cleaner and easier to use than Direct3D 7.0 for this project, and believed matching OpenGL's performance would require restructuring much of Quake's OpenGL-optimized data structures.
Share:

We’d like to use analytics cookies to understand how visitors use this site. See our Privacy Policy for details. Nothing else is tracked, and the site works the same either way.