D2X-XL Worklog
Notes on features and problems from the development of D2X-XL, newest first.
The Level Editor |
|
There hasn't been an update to my worklog for quite a while, but I have finally decided to create a new one to display the advance in a so far rather neglected area: The level editor. The original official level editor DMB(2) had been written by Bryan Aamot, who had sold it to Interplay, who in turn had
published it together with the Descent 2:Vertigo expansion. When I started to really use DMB2 I stumbled over quite a few bugs
in it, and when I reported them to Bryan I still remember him replying 'I wish you had been one of my beta testers' (the problem
with many voluntary beta testers is that they often seem to be more eager to be the first to play around with the newest piece of
software than actually testing it and reporting their observations back). Since DMB2 at that time was proprietary, there was no
way I could have gotten hold of the source code and fixed it myself. How times have changed: Today I do not only have the source code,
but the official permission by Interplay to host it as open source. The main work I did during the process of turning DMB2 into DLE-XP was to rewrite the interface, which I found to be hard to handle and prone to cluttering the screen with dialogs. I haven't made friends with every former DMB2 user with that change, but you can't please everybody, can you? All I did with the core functions was to make them work with Visual C++ when porting them over from Borland C. This did it for a long time and allowed me to enhance DLE-XP with not too much trouble. Still it wasn't a really object oriented program, and rather messy on the inside. This sparked the thought in me to use C# to both give it a modern user interface and tidy the code. Soon when I started to venture into C# and port parts of DLE-XP over to it I realized that I had better stick with C++ and rewrite DLE-XP there first to allow me to change it step by step and test each change I made instead of porting everything to C# and getting myself chin-deep into bugs. It turned out that this task was much more massive than I had expected to be and took me a good three weeks. I have to admit that I decided not to make sure it was const correct since that would probably have taken another week. The result of my work however still is a way better structured, object oriented, stable program. A positive side effect of my coding effort here was that I uncovered some long standing bugs (as usual) - one of them causing that infamous 'messed up object triggers' problem - as well as significantly improving the renderer, which now directly uses RGB images, supports transparency, correctly displays transparent walls of all the various types it supports and does depth testing to render in correct Z order:
Another thing I'd like to show off here is the interface of the upcoming DLE.NET written in C#/.NET, which will not only look nicer due to the
new icons it uses, but will allow it's users to pull around all it's child windows and position them anywhere on the screen, independently of the
main window (this means that those DMB2 users who hate DLE-XP's layout will be able to clutter their screen the way they're used to.
I am quite fond of the advance made in this area, and I hope you will be too when getting your hands on DLE-XP 1.8 now or DLE.NET in a few weeks. |





)
