DirectQ!
A Direct3D 9 Quake Engine.
Project Description
DirectQ is a port of Quake to native Direct3D 9. The primary focus is on replicating the original look and feel of software Quake, but it also has significant usability and rendering improvements.
Why Direct3D
The old Quake engine was hardware accelerated using OpenGL. However, it was written in the infancy of OpenGL (at a time when even texture objects were only available as an extension), and several of the rendering methods used back then had some room for improvement. Furthermore, it is known to cause issues with some manufacturer's OpenGL drivers. Rather than hacking around at the existing codebase, I felt that a clean start was preferable, so that I could implement better and more modern practices from the outset rather than have to deal with legacy baggage.
I chose Direct3D for a number of reasons. I wanted to learn Direct3D for starters; secondly I wanted to help avoid a situation where I might have been tempted to bring any of that legacy baggage forward; and finally I wanted a version of Quake that I could run on my laptop.
Primary Target Audience
The main target audience for this engine is one person: me. However, I also believe that there are a lot of people who have business class laptops which have integrated graphics adapters on them but which can't run Quake. These people deserve better than Solitaire and Mah-Jong.
Switching to C++
As part of the port I also changed the codebase from C to C++; this was primarily to facilitate Direct3D, but it also enabled me to go down the OOP route with some parts of the engine.
Ongoing Work
DirectQ remains an active project, with releases every few months.
Other Information
Please refer to the updated Documentation pages for further information on this project.