D2X-XL Worklog

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

Wall Collision Handling

There was a problem with wall collision handling that had been haunting me well over a year. At certain locations I was able to drive the ship half into a wall when fiddling around with it a while. I could reproduce this with old program versions (very old - D2X-W32 1.6) as well as with D2X-Rebirth. I managed to fix this more or less, but recently it resurfaced unexpectedly when I was told that you could snatch powerups that should have been inaccessibly locked away behind grates or force fields. First I thought it was some problem with the powerup size, believing it got messed up when loading and using 3D powerup models, but that wasn't the case. When investigating in the matter, I soon found myself back at that dreaded wall handling problem. Arrrgh.

After careful and long experimentation I found out how to reliably reproduce the problem. All that was needed was an angle between two walls and several small segments nearby so that the ship's center remained in a different segment than the wall it hit belonged to. Due to some inherent weakness of the related code the hit at the wall with such a constellation wasn't detected. If the ship now kept moving almost parallel to the wall it had hit, rounding problems rooted in Descent 2's archaic fixed floating point format lead to the program allowing the ship to slip further into the wall. Pivotal to this behaviour was that a wall hit was only registered when it occurred first - once the ship had penetrated into the wall, the code did not react properly any more.

Here is a sketch to illustrate the problem:

To my great relief I found that a simple rearrangement of a some hit test math functions - leading to the program looking for hits in nearby segments too - solved the entire issue elegantly. One problem however remained: I could drive the ship on the edge of two walls with a very small angle between them, and it would penetrate that edge a bit, again allowing me to move the ship into one of these walls. Again, some rather extreme geometry, but that didn't make me any happier. A look into the code responsible for that revealed that a very big tolerance had been coded into detecting when the ship penetrated an edge (25% of the ship size - hey, that's a *tad* big, isn't it?). I decreased the value to 10%, and voilà: The problem was gone! Hooray!

I just hope my changes won't have any other unpleasant side effects. Hm.


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.