It's only been a few weeks since id Software released the Doom 3 source-code
(id Tech 4 engine) and the ioDoom 3 project was established
, but there's already some interesting work going on for this newly opened GPL game engine.
The ioDoom 3 project was quickly created after id Software published the game's source-code. This project is backed by the same developers responsible for the ioquake3 engine, as the successful open-source community project built around the Quake 3 (id Tech 3) release. Ryan "Icculus" Gordon -- whom already has experience with id Tech 4 after having ported Prey and other titles to Linux -- and others are helping out with ioDoom 3. This will likely be the de facto open-source version of id Tech 4 moving forward.
Some of the work going on right now within the ioDoom3 world is listed below.
- Ryan Gordon is personally working on porting Doom 3 to use SDL. More recent titles from id Software have used Simple DirectMedia Layer, but the Doom 3 client did not use this cross-platform open-source library. (See this mailing list message
- FreeBSD support for Doom 3. The Doom 3 game can already run under Linux when using the FreeBSD Linux binary compatibility later
, but an effort is already under-way to provide native FreeBSD support for Doom 3 / id Tech 4. (There's patches on the BugZilla
- CMake build support. Ryan Gordon is also working on making ioDoom3 use cmake as its build system. (He has it currently in a Git repository
- Proper 64-bit support.
- Proper installers for ioDoom3 on at least Linux, Mac OS X, and Windows.
- Wide-screen resolution support. Doom 3 uses a static lists of resolutions, but with the move to SDL and other changes, it should be dynamically built based upon your driver/monitor/GPU.
- Various bug and warning fixes. See the BugZilla patch list
While it doesn't fall directly within the ioDoom3 project right now, there's also been work on improving the Doom 3 shaders. See this blog posting
for the interesting work taking place. "
So, pretty much everything that was in the vertex shader has now moved over to the fragment shader, normalization is done using math instead of the cubemap, some internal 0..1 clamping has been removed, the specular exponent has moved to math too, and the normal map has been renormalized after doing the texture lookup. The end result is quite surprising, and looks somewhat different to the way the original game looked."
While reworking the Doom 3 shaders offers up some noticeable visual improvements, the graphics rendering requirements are also obviously raised. "So the end result? The quality improvement is nothing short of astonishing. The original looked pretty grungy in places, but everything just smooths out now and looks really clean and solid. The bump mapping is particularly appealing, but specular highlights also tighten up and gain clarity and definition."
There's an issue though and that's the Doom 3 interaction shaders being considered game content, which id Software didn't put out under the GNU GPL. Here's some screenshots
showing the new shader improvements.
More information on the open-source Doom 3 efforts can be found at ioDoom3.org
. There's also a recent article covering the Linux graphics driver and hardware requirements of Doom 3