D2X-XL Worklog
Notes on features and problems from the development of D2X-XL, newest first.
DLE-XP: OpenGL Renderer |
|
During all the time I am maintaining DLE-XP and D2X-XL, there had always been two prominent weaknesses in these programs I had always wished to overcome, but could never really treat myself to doing so: DLE-XP's slow and low quality software based renderer, and Descent's disability to handle segments with triangular sides. Recently, some Descent users started to think about triangular segment faces aloud, and this finally gave me the impulse to start pondering on how this could be implemented in DLE-XP and D2X-XL without having to rewrite the entire segment based engine. After a while I had figured how it could be done, and I started coding in DLE-XP which was the bigger construction site regarding the required changes. My work came to a screeching halt when I realized that there was no easy way to make the software renderer - still stemming from the times of DMB2 - properly deal with triangular segment sides. The result of this discovery was that I was forced to tackle the other big weakness I have mentioned above: DLE-XP's renderer. Due the OpenGL knowledge I have acquired over the years when coding D2X-XL, this was a rather simple task. It also was an opportunity to clean up some code areas and improve program structure by separating the mine view interface from the renderer code. Using some virtual (for C# users: abstract) classes helped big way here and very much simplified the code.
Adding a first person view like in D.E.V.I.L. (the other popular Descent level editor) was a breeze with OpenGL, so I did that too.
It even turned out that following a suggestion made by a DLE-XP user to render robots in full 3D was pretty easy to implement, and
as I was on it, I also made DLE-XP display the powerup images from Descent when viewing powerups close up. With OpenGL, rendering
segment sides consisting of a single triangle was a piece of cake, and adding colored lighting is the cream on top of it.
I am very pleased to present what had started as a mere by-product of one of my coding endeavours and has turned into a major improvement of DLE-XP.
Descent level authors, enjoy. ![]() ![]() ![]() |





