Host a Doom LAN Party

Remember LAN parties? If not, let me assure you, they were great. There's nothing like lugging a thirty-pound, front-heavy CRT monitor down the dimly-lit corridors of an unfamiliar building. Assuming you didn't drop it or your PC tower, you and your compatriots could battle it out until the rivers of Mountain Dew ran dry. And all of that without monthly subscription fees, in-app purchases or lag! Nearly all Shedbuilt-supported hardware can drive an HDMI monitor and connect to an Ethernet LAN so you can let the good times roll. Here's how to get the MS-DOS classic and perennial LAN party favorite, Doom, up and running.

Installing Doom

Have shedmake install the enhanced Doom source port crispy-doom along with the many multimedia libraries it depends on. This may take quite some time so you should go get a coffee, reconnect with a distant relative or take a power nap:

sudo shedmake install crispy-doom --install-dependencies

Crispy Doom makes use accelerated video through SDL2. To ensure that SDL2 is built with support for your board's 3D capabilties verify that gles and gl are listed in the OPTIONS section of your Shedmake config file at /etc/shedmake.conf.

Now, download a copy of doom1.wad from the shareware version of Doom, and copy it to /usr/local/share/games/doom/.

wget &&
tar xf doom-wad-shareware_1.9.fixed.orig.tar.gz &&
sudo install -Dm755 doom-wad-shareware-1.9.fixed/doom1.wad /usr/local/share/games/doom/doom1.wad

You can configure the controls, as well as video and sound options by running crispy-doom-setup. To play the single-player game, just invoke crispy-doom without options.

Hosting a LAN party

For the ultimate in early-90s computer entertainment, convene a gathering a fellow Shedbuilt users and have them all draw straws. The loser has the 'honor' of running the server to host the game. The host can configure game paramters from crispy-doom-setup, which up to four other players can then use to discover and join the game.

If you have a spare headless device around you can use it to host a dedicated server using crispy-doom-server. I recommend running the server in a screen instance. You can install this useful terminal utility using:

sudo shedmake install screen

You can now launch the game server within screen:

screen crispy-doom-server

While holding the Ctrl key, tap a and then d to pop out of screen and return to console. When, inevitably, the police come to break up your raucous LAN party, you can reattach to the screen session to terminate the server by typing:

screen -r

The first player that connects to the dedicated server specifies the game type, which should be something like:

crispy-doom -autojoin -deathmatch -nomonsters

Subsequent players can jump with with just the -autojoin parameter:

crispy-doom -autojoin