D2X-XL Worklog

Notes on features and problems from the development of D2X-XL, newest first.

Renderer Improvements

When playing around with D2X-XL recently, I noticed that with highest render quality, flying through smoke was "jumpy": The ship would get slower, then faster, then slower again in rapid succession. I immediately had the suspicion that this was due to loading of the depth blending shader that softly blends the smoke with the geometry to avoid hard edges, which happens at highest render quality.

After having slept a night or two over it, I got the idea of completey rewriting the shader handling in D2X-XL. Until now, shaders had been created by each local function or code area that needed shaders, and book keeping of the currently loaded shader was coordinated via a global variable. This had been the result of the evolving usage of shaders in the program and was in dire need of being organized. So I wrote a shader management class that would allocate all shader programs and keep track of which shader program was currently active on the graphics card. This enabled me to conveniently look into shader switches. One effect of this was that I found that the renderer wasn't organizing the sequence it rendered textures very efficiently, causing a lot of shader switches, so it was improved (a side effect of this was that I discovered a bug here that I fixed).

Still, the smoke depth blending induced slowdowns weren't fixed. Further investigation revealed that shader switches in the hundreds were generated when both smoke and energy sparks got rendered (which is the case quite frequently in D2X-XL type levels). The reason behind this was that depending on whether to blend transparency based (smoke) or additive (sparks), a different depth blending shader was used. Uniting the two shaders in a unified one handling both cases elegantly and with very little overhead was a simple task, and the reward was that shader switches dropped to 10 percent or less of what they had been before in that case.

So D2X-XL v1.15 will bring a significant improvement of the renderer. I have to say that I am quite happy about this.


News

A new D2X-XL update fixing broken screen resolution persistence is available

There is yet another D2X-XL update is available (the new Pumo Mines broke a few things ...)

Believe it or not: There's a new D2X-XL version online!

Uploaded updated D2X-XL and library source code that compiles with Visual Studio 19

After a really long time, another new DLE version is available

A new DLE version is available (hear, hear!) :D

A new Max OS X version of D2X-XL is available!

D2X-XL now offers a cartoon style render mode!

New D2X-XL and DLE versions are available

Blarget has got his own area in the level spotlight

New D2X-XL and DLE versions are available

A couple of levels have been added to the level spotlight

Hooray! We're finally having a new Mac OS X version of D2X-XL!

D2X-XL now features an observer mode for multiplayer games

A new D2X-XL version with improved multiplayer synchronization is available

A new D2X-XL version fixing out of sync problems in multiplayer games is available

A new D2X-XL version with many multiplayer bug fixes is available

Added high quality (ogg) Descent 1 and 2 music to the downloads area

A new D2X-XL version with important bug fixes is available

D2X-XL compiles and runs on Linux again!

Descent 1 and 2 high res textures are now available as complete downloads

A new DLE version with a ton of bug fixes and improvements is online

A new D2X-XL version is online

A new D2X-XL version with a much needed bug fix is online

A new DLE version is online

Published another DLE version with more bug fixes and improvements by Sirius

Published a new D2X-XL version

Published a new DLE version with tons of bug fixes and improvements by Sirius

D2X-XL now supports Oculus Rift 3D headsets!

Updated DLE and D2X-XL to support new level features requested by Pumo

Added an article about DLE's new tunnel generator to the worklog

DLE's new tunnel generator is finished

Added a new article to the worklog

Published a new DLE version

Added a new article to the worklog

Added two new articles to the worklog

D2X-XL and DLE-XP now support triangular segment sides!

DLE-XP has an OpenGL render and 1st person view!

New DLE-XP version available

Wrote a new worklog article

Check out DarkFlameWolf's level spotlight section!

New DLE-XP and D2X-XL versions are available

A new DLE-XP version is available

Added a worklog article about the way point feature

Added way point support to DLE-XP and D2X-XL

Posted a bunch of new screenshots

Posted a bunch of new screenshots

A New version of DLE-XP is available

New OS X version of D2X-XL is available!

Added article about lightmaps to worklog.

New article and video added to worklog.