jmtd → Doom
I've been building and tweaking with Doom for over 20 years. Here's some of the things I've built.
Programming
Liquorice is a Haskell embedded domain-specific language (eDSL) for the algorithmic construction of Doom maps.
Simple UNIX-philosophy-style command-line utilities for Doom hacking. See hwadtools for more information.
I started contributing code to Chocolate Doom in 2015, completing a long-held ambition of mine to hack on Doom. I wrote a re-implementation of pitch-shifting for chocolate-doom which is also used in Doomretro and crispy doom. Here are my extended notes.
Ink Foundry is
a re-implementation of the DOS MIXMAPS
tool originally distributed with
Ink Works.
WadC is a vaguely-functional programming language for the construction of Doom levels. I took over maintenance of the project from the original author in 2009.
Some hacks made with WadC have been released individually. "2countrv" is a 2-bit binary ripple counter (based on a design by Fraggle) with a surprise when the counter overflows. Implemented entirely in WadC.
- 2countrv.zip (12K) or at /idgames
I proof-read Fabien Sanglard's excellent book Game Engine Black Book: DOOM prior to its release. You can now get the book on a pay-what-you-want deal, and contribute suggested edits directly to its GitHub project.
Maps, mods, etc.
A Deathmatch level that I took 20 years to make. Dedicated to Adam Emerson (alias NeoStoic). Inspired by the "Lost Village" series of DM maps for Half Life. Started in 1999 or 2000. Custom textures. Requires a limit-removing port. Designed for Doom 2.
- neostoic.zip (454K), neostoic.txt
- or at /idgames
A short arena-style map for Vanilla Doom, illustrating a newly discovered mapping trick. This map works in the original DOS Doom 2, Chocolate Doom, Crispy Doom and PrBoom+ at complevel 2. It does not work in GZDoom and likely won't in any other advanced port that makes significant changes to the engine. Animated GIF courtesy of Linguica (4.7M)
- brexit.zip v1.0 (28K), brexit.txt
- or at /idgames
An arena-style slaughter map for Heretic, developed entirely with WadC for the Heretic Upstart Mappers Project. Requires a Heretic engine that raises the original game's static limits, such as Eternity, ZDoom, etc. Grab the whole project from that link or see just this map at the WadC examples site.
Freedoom is an open source game which can be played with a modern Doom engine. I was an early contributor to the Freedoom project and co-managed it from around 2001 until around 2008. I've submitted all sorts of stuff but my best contribution was E1M1/MAP01, which was eventually replaced in Freedoom's 0.11 release. I later released a "director's cut" version standalone, entitled "The Cursed Hangar".
- The Cursed Hangar at /idgames (294KB)
- download Freedoom
Someone else had a go at converting a bunch of Freedoom maps to be compatible with the original Doom, including my map: Invasion of the Damned
I submitted this map to Doomworld's 10 sectors competition in 2000, and got into the top 30. Review-bites: "A very different and original map"; "Some boring rooms (quite a bit)"; "reasonably diverse in its textures, height, and light levels".
- 10sector.wad at /idgames
- map14.wad on its own, from Freedoom
This is just a silly little palette hack, turning all but the red-range into grayscale. It makes the game take on a sort-of film noir feel, and the contrast with the red makes things look gorier.
I originally knocked this together in 1999 or thereabouts, but I was only spurred to releasing it with the film "Sin City", which employed a similar effect.
There's some notes about colormap hacking available.
Map author Aluqah has made a couple of maps with this palette, Oniria and Epicus Furor.
A Quake-inspired mod from 1998-1999. When you gib monsters, chunks of meat fly out.
The ZIP also includes GREEN.WAD
, a palette hack which swaps the red and green ranges.
I created this at the time by accident, but it looks quite good combined with "Gib".
- gib.zip at /idgames
Abandoned, Unreleased, Unfinished
I have some things hanging around that I have never finished or properly released.
Coloured lighting hacks in Vanilla Doom. (colormap)
Unfinished DM map inspired by the "Jailbreak" mod for Quake 2 (which I've never played).
- jbreak.zip (19K), jbreak.txt
An effects demo for an old version of Doom Legacy, including transparent rays of light; 3D floors, a two-layer lift/elevator. None of the effects work with modern versions of Doom Legacy (at least 1.46.2).
- smallfun.zip (41K), smallfun.txt
Miscellaneous
I'm an admin and occasional contributor to the Doom Wiki. There's a biography of me there.
I've written some miscellaneous bits of code for reading and interpreting doom WAD files. lswad is a program that lists the contents of a WAD file (including any wasted space). wadfs is a filesystem interface for WAD files using the excellent fuse library. wad.c and wad.h are the shared bits of code for interpreting WAD files used by these two programs.
Grab the code files individually from code.
I once drafted an article about parsing WAD files in a portable manner in C: wad.
Once upon a time I started (but never finished) working on a scheme for checksumming some of the game state during demo playback to use for regression testing: checksum.
More writing about Doom
Blog posts:
- WadC 3.1, posted on
- using Template Haskell to generate boilerplate, posted on
- WadC 3.0, posted on
- ZDBSP, posted on
- Game Engine Black Book: DOOM, posted on
- glBSP, posted on
- Third Annual UK System Research Challenges Workshop, posted on
- WadC 2.2, posted on
- yakking, posted on
- The Cursed Hangar, a Doom map, posted on
- Blinkstick and Doom, posted on
- WadC 2.1, posted on
- April Fools, posted on
- WadC 2.0 released, posted on
- Sound effect pitch-shifting in Doom, posted on
- Deterministic Doom video, posted on
- Deterministic Doom, posted on
- Archiving, posted on
- Abrash on working for Valve, posted on
- wadc, posted on
- Maintaining freedoom is a thankless task, posted on
- Secret Satan 2006, part 2, posted on
- Secret Satan, part 2, posted on
- Secret Satan 2006, posted on
- Freedoom 0.5 released, posted on
- RIP Toke, posted on
- Freedoom SVN, posted on
- Fuse, posted on
- chocolate-doom debian packages, posted on
- Freedoom 0.4, posted on
- omgifol, posted on
- doom-data, posted on
- 18, posted on
- mass thumbnailing, posted on
- 11, posted on
- 10, posted on
- 08, posted on
- cajun bot, posted on
- Doombot, posted on
- TFC DM, Fractured Universe DM, posted on
- GCSEs, second box, Fractured Universe, posted on
- new doom stuff, posted on
- WadAuthor, posted on
- New Doom DM Project, posted on