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!
Now, delving into the source code, I'm greeted with some interesting stuff, like this:
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)