DoomNite 2.0.0 — per-mod removal, a cleaner card, and ctrl+wheel zoom.
Same portable Doom mod launcher as 1.0.0 (16 games, 31 launch configurations,
one folder with the engine, the IWADs and every mod, and not one absolute path
inside it). This release fixes the packaged build, adds per-mod removal, and
resolves two card rendering bugs.
No prerequisites. The installer bundles its own Python runtime, so Windows
is all you need up front.
What you get
- DoomNite for Windows (NSIS installer, per-user, can change the install path)
- DoomNite portable zip (no installer)
Per-mod removal
Each game now tracks which mods it actually installed, and you can remove a
game's mods without touching the rest of the pack. Removal lives in the
sidebar, next to the existing on-demand uninstall, and only appears when there
is something exclusive to remove.
Removal moved off the cards deliberately. A trash icon in the corner of every
tile put the most destructive action in the most repeated position on screen,
one stray click from a delete.
Cards
The card is now artwork and its name, nothing else. The IWAD/build sub-line
and the HD/PINNED/MISSING tag row are gone; that state still reaches you via
the hover title, the pin marker and the sidebar readout. A missing mod shows as
a dashed underline on the name, rather than an opacity change that reads as
"disabled" and disappears in greyscale.
Two rendering bugs are also fixed:
- Names were clipped by their own card corners. The card's notched border
cuts into the bottom corners, and the name sat flush against the edge, so its
first and last characters were sliced off. Worst on the selected card, whose
notches are deeper. - Corners looked chewed on hover. The card's children were asking for 3D
rendering inside a flattened parent, so the tilt was computed in 3D and then
flattened, while the border clip was applied afterwards in 2D. The notches
drifted out of register with the edge glow.
Zoom
Ctrl+wheel now zooms in the desktop app. It always worked in a browser but did
nothing in Electron, because clearing the application menu removed the menu the
zoom accelerators lived in. Zoom is applied as a real layout zoom, so the
interface re-flows instead of stretching, and it stays registered with the
pointer-tracked card tilt. Roughly 9% per notch.
Build fixes
The packaged build was broken and has been repaired. A staging check asserted
that the preload script existed at the wrong path, which failed every packaged
build. Behind it sat a worse problem: the build's staging step never copied the
preload script or the first-run page, so an installer would have built
successfully and then failed at startup with no native file dialog available.
Both are fixed, and the build now fails loudly rather than shipping that.
Dev server
npm run dev binds 127.0.0.1 explicitly. It was listening on IPv6 loopback
only, so the IPv4 address the rest of the project uses was refused.
First run
It fetches 3.4 GB of engine, IWADs and mods, verifying each file by sha256.
Files already present and correct are skipped, so upgrading from 1.0.0 reuses
your existing pack and re-downloads almost nothing.
DOOM2.WAD and Hexen.wad are not included -- those are commercial id Software
releases and the pack refuses them rather than hosting them.
If you keep the pack somewhere other than beside the executable, set
DOOMNITE_PACK to the folder containing serve.py.
The launcher also runs without the desktop app at all: python serve.py.
Known caveat
This build has not been smoke-tested by running the installed application,
specifically the native file dialog that the preload script provides. The build
is verified structurally; the card layout changes are also a visual judgement
call worth a look before you settle on it.