Building DOOM

Doom being uttlery iconic is an understatement. And on and off I try to get some insight on how it was built. I don't use c in a professional way (and probably never will), but Doom is an interesting enough project that can override pure practicallity.

I chose chocolatte doom[1] as the flavor of choice, because it doesn't add too much bells and whistles, but it modernizes it enough so i don't need to jump through hoops in order to get it running.

For the wads I chose freedoom[2] because, well, it's free. So whatever I do it's pretty reproducible.

I'm using ubuntu. And in just following the tutorial[3], I stumbled into two problems (silly me):

# ❌ First Pains:

I didn't have the tools installed to run the autogen.sh script. Solved by installing:

sudo apt install autoconf automake libtool

I had the runtime SDL2 libraries (e.g. libsdl2-2.0-0), but not the development versions (e.g. libsdl2-dev, libsdl2-mixer-dev) required to build from source.

sudo apt install libsdl2-dev libsdl2-mixer-dev libsdl2-net-dev libsdl2-image-dev

After that, it was a matter to only run the command with my chosen wad:

./chocolate-doom -iwad /<path_to_wad>/freedoom1.wad 

And DONE!

TA DAAA

Now, delving into the source code, I'm greeted with some interesting stuff, like this:

WTF

No source code is perfect and every codebase I've read (and wrote) has it's shortcommings, so I'm not throwing shade. I am pointing out that this is going to be fun!

# References

[1] chocolate doom (opens new window)

[2] freedoom (opens new window)

[2] build tutorial (opens new window)