D2X-XL Worklog

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

Cartoon Style

D2X-XL has had a cartoon style renderer for quite a while, and Descent lends itself very well to that look, with its simple textures and its simple geometry. For 2.0 I have reworked it.

The Look

Light falls in flat steps instead of smooth gradients, and texture colors are reduced to a few levels as well, so surfaces look painted rather than lit. Wall and model textures are smoothed into flat, painted patches when a level loads. Hostages, powerups and other sprites get a dark outline.

The Outlines

The black outlines are what makes or breaks a cartoon look, and they took the longest.

The old renderer drew a black line wherever a wall or a robot ended against something behind it, and a line on the edges inside the picture. To keep this from looking like a technical drawing, an edge between two walls meeting at a shallow angle only got half a line, which now and then was broken into two short pieces. There were exactly two line widths, and the lines were the plain lines the graphics card draws, with little dots on their ends to round them.

The first steps were technical. The outlines of robots and then those of the level became ribbons facing the viewer, which gave them exact widths and smooth, round ends. Then the outlines of the level got their own builder: all edges of a mine are analyzed once, the result is kept in a cache, and a shader bends every stroke along the wall it belongs to, relief included.

After that the strokes stopped being full or half. Every edge now has a strength that grows with the angle between its two walls, and both the width and the length of its stroke follow that strength. Inner corners are drawn thinner than outer ones, and distant lines thinner than close ones.

Where several edges met in one corner, the corner used to turn into a black star. So the edges meeting there are now compared with each other: the dominant ones keep their line, the weak ones fade or disappear.

The last round of tuning added the hand drawn touch. Strokes start at corners picked at random, a weak edge that would vanish may keep a short stub as a hint, the length of the strokes varies a little, and a long edge may get a stroke from each end with a gap in between.

All of this is procedural. Nothing is painted or stored by hand; the game derives every stroke from the geometry of the level and of the models. It rolls the dice once per level and keeps the result, so a mine looks the same every time you enter it.

Cartoon style is switched on in the render options. It can only be changed while no game is running.


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.