Skip to content

v0.1.7 — Classic rendering and death camera parity

Choose a tag to compare

@Distortions81 Distortions81 released this 14 Oct 17:05
· 7 commits to main since this release

Faithful rendering now follows classic Doom's texture offsets, animation phase, fixed-point wall/floor sampling, visplane coverage, sky mapping and light-table quantization. The fixes cover scrolling and composite textures, masked boundaries, shared-sky walls, sky floors and lighting-disabled views.

Player death cameras follow the body down to the classic six-unit eye height, use corpse collision height, preserve teleport view recovery and lower the weapon immediately after fatal damage. Demo respawn preserves gamma. These fixes remove post-death movement, lighting and image differences found by independent classic/GD replay.

A repeatable visual harness compares classic, CPU and shader output across Ultimate Doom and Doom II, five resolutions and three lighting modes. Demo/death comparisons cover all 25 repository recordings plus natural-death and respawn examples. Actors and HUD are omitted from these world captures. Non-native resolutions use an explicitly resolution-adapted classic reference. Proven out-of-buffer classic texture reads remain visible in reports and are the only excluded pixel differences.

Validation: the full Go suite, both IWAD GPU framebuffer suites, 96 sky shader cases, 10 Python harness tests and 15 browser launcher tests pass. All 97 state/RNG replay checks pass (25 repository demos and a fresh 72-demo COMPET-N sample across all 68 maps and nine categories). The historical full 4,646-demo corpus was not rerun. All 324 demo/death world captures have identical CPU/shader output; 321 match classic completely and the other three pass bounded-source pixel and shared-plane-UV checks.

The optional commercial-WAD campaign test now skips correctly when its WAD is absent. Desktop packages use the standard Ebitengine renderer; the optional Raylib executable remains a separate source build.

The complete static matrix passes all 30 runs / 11,214 scenes across 68 maps, five resolutions and three lighting modes. CPU and shaders are identical in every capture. 11,140 images match classic completely; the remaining images pass the bounded-source pixel and shared-plane-UV gates.

Source: c72eaa82df88440c96121ce6bea41e12111a3fdc (clean main, tag v0.1.7).

Known validation issue: the separate vulnerability scan still reports the same ten Go 1.26.6 standard-library findings as v0.1.6, with no new finding IDs. Toolchain/dependency remediation is outside this renderer release.

All four desktop release builds and main-branch Go CI succeeded. All five ZIP archives passed integrity checks and match the release commit; SHA256SUMS includes each archive. The optional Raylib source build also compiles.

The browser and matching co-op, deathmatch and lobby services are deployed at https://m45sci.xyz/u/dist/GD-DOOM/. Public asset hashes match the release manifest. A browser smoke test reached Faithful gameplay without console errors. Live native TLS, public WebTransport/WSS, and newly created co-op/deathmatch room checks passed discovery, movement, snapshot decoding, roster updates and explicit leave.