I've been building and tweaking with Doom for over 20 years. Here's some of the things I've built.
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.
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.
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.
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)
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".
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".
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.
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
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).
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).
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.
- WadC 3.0
- Game Engine Black Book: DOOM
- Third Annual UK System Research Challenges Workshop
- WadC 2.2
- The Cursed Hangar, a Doom map
- Blinkstick and Doom
- WadC 2.1
- April Fools
- WadC 2.0 released
- Sound effect pitch-shifting in Doom
- Deterministic Doom video
- Deterministic Doom
- Abrash on working for Valve
- Maintaining freedoom is a thankless task
- Secret Satan 2006, part 2
- Secret Satan, part 2
- Secret Satan 2006
- Freedoom 0.5 released
- RIP Toke
- Freedoom SVN
- chocolate-doom debian packages
- Freedoom 0.4
- mass thumbnailing
- cajun bot
- TFC DM, Fractured Universe DM
- GCSEs, second box, Fractured Universe
- new doom stuff
- New Doom DM Project