D2X-XL Worklog

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

Memory Requirements

After having had contact with a few people having problems with the memory requirements of D2X-XL, I have taken some time to do a few measurements of D2X-XL's memory consumption. For the menu system, I have turned on the new menu style and fast menus, and for in-game tests I have been using Descent 2:Counterstrike Level 1. Here are the results:

  • Main menu (900 segments): 50 MB
  • Main menu (6000 segments): 100 MB
  • In-game (900 segments): 65 MB
  • In-game (6000 segments): 115 MB
  • Hires models (128x128): +15 MB
  • Hires models (256x256): +42 MB
  • Hires models (512x512): +170 MB
  • Hires textures (128x128): +30 MB
  • Hires textures (256x256): +130 MB
  • Hires textures (512x512): +510 MB

  • Custom menu backgrounds, shadow proof models and shadow rendering were disabled
    Memory consumption of hires models may grow as new models become available

Most interesting is the small increase from medium to high texture quality. I found hires textures still looking very good with high texture quality (256x256), and the measurement confirms that the decrease in memory consumption when using medium texture quality (128x128) isn't worth the loss in visual quality. Highest texture quality on the other hand is not so much better that it would justify the massively increased memory requirements.

Memory consumption of hires models proved to be pretty hefty, so I introduced a new command line switch '-model_quality [0..3]' with the possible values of 0 - 3 corresponding to the texture sizes given above (0: 64x64). Again, decreasing model texture size to 256x256 results in a massive decrease of memory consumption at the cost of a hardly (if at all) noteable loss of visual quality.

D2X-XL will reduce texture sizes on the fly when loading a level, which will increase the already significant longer load times. If you utilize the new texture cache feature (command line switch: '-cache_textures 0|1'), D2X-XL will store the reduced size hires textures in your textures and models folders, increasing loading speed significantly for these textures and quality settings in the future. Using high texture quality for hires textures and models therefore seems like the best tradeoff between visual quality, memory consumption and loading speed.

Improving the texture management of D2X-XL brought another 25% decrease of memory consumption. Examining the texture handling of D2X revealed that all textures were treated as having an alpha channel (transparency), even if they didn't (the corresponding OpenGL texture format is GL_RGBA). This wasn't much of a problem in the original D2X, as it was only using the basic 64x64 Descent 2 textures, but with hires textures it really hurt. Simply removing the alpha channel from these textures (OpenGL: GL_RGB) brought this tremendous effect.

Adding a switch that allows to decrease the maximum level size ('-max_segments <size>') D2X-XL will handle helped to halve the static memory requirements of D2X-XL.

Another small optimization - mostly helping load times - was to remove the alpha channels from all hires textures that didn't need one (there were quite a few).


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.