D2X-XL Worklog

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

D2X - The Revolution

While my previous work log entries have rather dealt with what has happened under the hood of D2X-XL since v1.13, I will give an overview of the improvements D2X-XL v1.14 presents to its users here. Actually v1.14 turned out to become much bigger a release than I had initially planned, offering so many improvements and new features over previous versions that I believe I can rightfully call it a revolutionary step forward.

Stability

My main goal for this D2X-XL release was stability. As laid out in my previous worklog entry, a lot of the program's code has been rewritten to achieve that goal, utilizing many C++ features for this purpose. The new code has indeed enabled me to find quite a few severe flaws in the D2X-XL code, and the results from the beta test and release candidate phases show that my efforts in this area have been very fruitful. V1.14 will be the most stable D2X-XL release in the history of this project.

Improved Memory Management

All previous versions of D2X-XL requested all the memory they would need to display the biggest possible mine right at program start, no matter how much space actually was required when playing a level. The only way to decrease memory requirements was to limit the maximum size of mines D2X-XL would handle beforehand by setting it in d2x.ini. V1.14 has a different approach. It only requests as much memory as it needs for the current level, and will return this memory to the operating system when the player returns to the menu. Since most mines are rather small compared to to the limit of 6000 cubes D2X-XL imposes, this results in a significant reduction of D2X-XLs memory footprint and level load times and relieve particular players with smaller machines.

Another significant improvement in this area is the possibility to have D2X-XL unload unneeded textures from memory ("-lowmem") and to control texture preloading to reduce D2X-XL's texture memory footprint ("-preload_textures"). D2X-XL comes with healthy default settings already for those who cannot be bothered with technical stuff like that.

Full Modding Support

One benefit of the new flexible memory management is that D2X-XL can now easily handle complete overloading of all of Descent 1's and Descent 2's default data without requiring any of the original game data files to be temporarily replaced as had to be done in the past and for other Descent versions. With V1.14, you can store all modding data for a mission - be it textures, models, AI data, sounds or music - in separate folders, and that is both on a per mission and per level base. D2X-XL will find and read that data and present the mission using this data. You can even overload the original Descent 1:First Strike, Descent 2:Counterstrike and Vertigo missions that way and give them a completely new look, feel and sound. DarkFlameWolf is currently doing that for Descent 1, and the result of her efforts is truly impressive.

Painless Multiplayer

I had made great efforts to improve multiplayer connectivity in the past. While these efforts had gone in the right direction, there still remained painful problems with multiplayer games, like people endlessly waiting to connect, people constantly dropping out of multiplayer games, players spawning on top of each other, etc. etc. V1.14 finally cures all these problems. Participating in Descent 1 and 2 multiplayer game never was that easy, and the tracker support offered by D2X-XL makes it even easier. The level downloader has received an overhaul too and will now correctly load the mission to be played after having downloaded it, and will properly overwrite outdated missions with newer versions it downloads. Missions completely new to the player downloading them will be stored in a subfolder of the missions folder named "downloads" and thus can easily be identified and moved to other locations if the player sees fit.

Renderer And Multithreading

D2X-XL has also received a few optimizations of the renderer and an overhaul of the multithreading code handling effects and works smoother and in many cases faster than ever. The cockpit code has been almost completely rewritten, and the result is cockpit views that are as close to perfect as possible. An issue that had gone unnoticed for a long time has been taken care in this version: The visible part of the mine was too small due my using a wrong FOV (field of view) angle of 90 degrees instead of 105 degrees Descent is actually using. Widescreen users rejoice!

Improved UI

The UI has received a thorough overhaul that was long overdue. Many detail settings have disappeared and have been replaced by a simple control that is easy to handle, yet gives the user enough choices to find a setting that really suits him or her. The result is a clean, sleek interface that is easy to understand and to handle and satisfies both the D2X-XL expert and novice.

OS X

After a long time, there will also be a new OS X version. V1.14 cures all the problems that had surfaced here - particularly in the multiplayer area.

Screenshots

New improved automap combining textured and wireframe view
(screenshot taken from Pumo's impressive total conversion 'Pumo Mines')

DarkFlameWolf's awesome Quake-Descent mod for Descent 1



Conclusion

V1.14 has turned out to be the biggest overhaul of D2X-XL in its entire history. 60% of the code changes committed to the D2X-XL source repository are changes made for this program version. There has been a real long beta test phase allowing to iron out many severe and less severe problems and adding a lot of polish to the game. I would like to thank all beta testers here for their support and dedication: You guys have been a tremendous help for getting this D2X-XL release right. Special thanks to simx for staying up until 4 o'clock in the morning to help me debugging the OS X version. I wish you a lot of fun and good times with this release of D2X-XL. See you in the mines!

Diedel


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.