This release fixes the most obnoxious and persistent class of bugs I've had with the renderer - anomalous map geometry, enemies, and items that shouldn't be there/can't be interacted with. For geometry, it caused dark shadows that didn't seem to have any physical motivation. For enemies, it was common to get an enemy on screen either walking somewhere or frozen that neither pursued you, nor could be killed. For items, it was floating items that couldn't be collected.
Build engine connoisseurs will have heard about room over room technology, portals, and the like. Maps in Build are authored in 2d, although they do get z-levels and slopes applied to them. Runtime magic made it possible to stack them over one another when drawn on-screen, to great effect. The projector room in E1L1 that's over top the hallways is one such example. In reality? It's kind of a mess.
How to install/run:
- Purchase and install Duke Nukem 3D: 20th Anniversary World Tour (or otherwise have it installed on your computer - you need a commercial version of Duke 3D to use with the Duke-RT engine fork)
- Download the .zip file in the assets section from this release
- Unzip Duke-RT to your computer
- Run launch-duke-rt.cmd in that folder
- Give it the path to your Duke 3D install (if it doesn't find it automatically)
- Let it grab the normal maps from Duke World Tour (if that's your Duke version, will still work without them)
- Let it open your browser to grab the voxels
- Download the voxels from that site
- Go back to the Duke-RT console window and hit enter
- Let it unpack the voxels into its own directory for you
- Proceed into the game
- Always run via launch-duke-rt.cmd in the future
New stuff:
- Fixed overlapping Build geometry that caused indirect ray occlusion (anomalous shadows)
- Can still see them briefly during disocclusions
- Mostly fixes E5L1 non-euclidean circular area!
- Fixed issue where actors from overlapping but separate localities would render as non-interactive apparitions
- Fixed stale actors being left behind as unmoving ghosts when passing out of view in some specific cases (E1L1 lizard troopers in the theater that would leave ghosts behind at hall doors)
- Made voxel actors calculate normals at the whole voxel level based on neighbor occupancy for more pixel art visual effect
- Smoke tweaks
- Updated physics sim to get better curling/vorticity effects
- Added artistic smoke rendering styles, including illustrative bands, painterly shading, ink-like contours, and radiance-driven color effects
- Introduced pulsed emission envelopes for distinct, chunky smoke billows
- Tuned fire-driven smoke into a pinched, wavering column with more varied billows
- Improved blending to eliminate visible froxel-grid aliasing in illustrative and painterly styles
- Attempted a fix for black screen on transition to maps
- Fixed issue where voxel actors would flicker out of existence for a single frame while a voxel variant loaded (really evident on switches)
- Lighting pass
- Brightened up E1L2 opening
- Brightened up parts of E1L3 and added a light to the chapel
- Made E2L3 elevator foyer brighter
- Smokestravaganza
- Smoke now has different quality profiles that map to amount of work done per frame
- Gunshot muzzle smoke and impact smoke generate analytic carriers that get simplified lighting and don't exhaust world smoke grid volume
- World smoke gets compacted on look-away to avoid permanent work scaling
- Added cool looking smoke all over E1L1
- Removed REBLUR from denoiser options, as there might be some issue with the inputs I'm feeding it, resulting in extreme graininess
- Now building map chunk identity more directly from engine for better caching and reuse
- Stripped material payload CPU waits for new voxel variants out of the hot path
- Added a whole smoke system with grid-based densitites, temperatures, buoyancy, albedo, etc.
- Smoke includes a very simplistic fluid sim that will cause smoke to migrate based on heat and density over time
- World-space radiance pooling that lets smoke take light from all sources
- Temporal accumulation for radiance affecting smoke
- Added a bunch of rules for smoke triggered by things like fire, rocket projectiles, explosions, etc
- Added a map smoke editing system, so I could start adding atmospheric smoke emitters to maps
What's coming next:
- More smoke and lighting tweaks across the three main episodes
- Water and other fluids
