The Dark Mod 2.08 is HERE!!!
A new baseline
In With the NEW…
The Doom 3 engine has served TDM well even long after the source code was released but over the years there has been a steady desire to move past it’s 2004 era limitations. (Really more like 2001 era due to it being targeted for the original Xbox.) Many mods or Doom 3 projects have extended the capabilities of the engine but few have tackled a fundamental overhaul of the core rendering features. Re-plumbing any fundamental part of the renderer is risky and can lead to protracted bug hunts and end-less beta testing. Even the somewhat minor “soft particle” update in 2.03 caused some alarming visual breakage in unexpected places. In spite of these concerns, the TDM team challenged themselves to make some bold moves to replace obsolete rendering code with more modern equivalents. We suffered many bugs during development but the resultant cleanup has the project in a much better place!
One of the most impressive feats of this development cycle was the COMPLETE replacement of all ARB Assembly shaders with GLSL. Sgtatilov did something that the Doom 3 community had wished for many years ago at places like doom3world, he created a script to automaticaly convert ARB Assembly to GLSL!!! (Of course, there is no generic way to use this across all games since these shaders point to parameters in the engine but this feat could be used to develop other similar converter scripts for other engines.) Anywhoo… Thanks to this conversion script, all of the custom ARB shaders in TDM have been preserved with little to no visual differences (as compared to redesigning the shaders from scratch).
OpenGL 3.3 Core Context
TDM 2.06 and 2.07 had hybrid shader standards that ranged from 2.x to 4.x. Graphic drivers, especially on Linux do not like it when such mixed shader standards are used in the same scene so we encountered many folks who could not get TDM 2.07 to render without reverting to the legacy ARB 2.0 mode (no soft shadows 🙁 ). Now all of TDM’s GLSL is OpenGL 3.3 core based so there is no mixing of different versions and the graphics drivers are (mostly) happy.
GLSL for Surface Materials
Starting with TDM 2.06 the work to replace ARB shaders with GLSL has one major hurdle that seems to have stumped most similar Doom 3 projects: “surface shaders in GLSL”.
Duzenko solved this issue and worked with the community to test the feature.
The new GLSL for surfaces is “at least” as flexible as the legacy ARB surface shaders were.
For example, one of our forum members “HeresJonny” used the 2.08 beta to implement “Interior Mapping”:
Uniform Transform, Persistence Mapping, preparing for AZDO
The new mantra in graphic engine design is “reduce draw calls” and the TDM team has worked hard this release to find as many opportunities to accomplish this. This has provided a nice performance bump and has set the stage for future work to get closer to Vulkan levels of CPU usage.
Cabalistic and Stgatilov worked to cleanup the remaining issues with the current multi-core mode of TDM. The Vertex Buffer has been updated to be even more like the one used by Doom 3 BFG.
Uncapped FPS Fixes:
Swinging ropes and other physics bugs that happen when “uncapped FPS” is enabled while the FPS is below 60 have now been cured. Uncapped FPS is now deemed stable.
The curse of moving from older MSVC versions to 2013+ where accessing 80-bit precision stung us one last time in 2.07 and caused some major issues with map compiling. As a workaround, mappers could DMAP with older TDM versions but now 2.08 has addressed this.
EYE CANDY — EYE CANDY!!!
AMBIENT OBSCURANCE SSAO
Late in the 2.08 development cycle, Cabalistic threw a “Hail Mary” and implemented the long requested Screen Space Ambient Occlusion feature.
(Note: these were taken with non-standard ssao settings but the effect should be comparable with the default menu options.)
Banding artifacts are substantially reduced in Fog and Soft-Particles thanks to this new color mode which was originally added to better support Bloom
The HDR-Lite Bloom from 1.03 has been fully replaced with a proper Bloom implementation that is native to the engine and can utilize 64-bit color resolve and emissive color sampling.
Parallax Corrected Cubemaps
While this will be a little cumbersome to setup without the planned inclusion of cubemap probes, mappers can now create beautiful high-performance reflections. Thanks Cabalistic!
MD3 Water Simulation
Now water surfaces can have real geometric warping rather than just normal map based effects.
RAIN PARTICLE OVERHAUL
In addition to the water fix above Sgtatilov also created a whole new particle framework for Rain so that it can detect roofs and obstructions. It will be much easier to create realistic looking rainfall now!
SO MUCH MORE!!!
Fog can now paint over water surfaces and other transparent surfaces thanks to the fogAlpha keyword. Soft Particles can paint over water using “sort last”. New “easy to use” parallel light for sky based lighting. More options to make use of the Spectrum keyword. X-Ray Render System now has functional features!
Grayman has fixed one of the most immersion breaking bugs in TDM. In 2.08, AI no longer sit or sleep above the ground in random positions nearby chairs and beds.
Grayman also improved the way that AI behave when they lose sight of the player during a chase
Finally, he implemented a feature that makes it easy for mappers to instruct AI to stop patrolling due to some event.
Werebeast and Beastmen AI
The long in development “standalone” Werebeast replacement is now available for mappers to use. It is considered mostly complete. The TDM team decided to release the current version with the hope that contributors will tinker with it and offer improvements.
Kingsal’s excellent custom Beastmen AI have been incorporated into TDM.
New Zombie Characters
Springheel has created some nice variants of the Zombie AI for mappers to use
Mantling physics with running and jumping have been further refined. Players can perform actions that resemble parkour.
There is now an animation for Shouldering AI
Swimming now has an undulating animation
Rope and Ladder sliding is now safer for the player. No longer a damage risk.
More article updates soon…