Jimmy’s Jukebox!



Source Port: ZDoom
Gameplay: None – it’s a playlist generator!
Status: Complete but in need of a rethink
Download: Version 0.9



If Jenesis is my magnum opus in terms of classic Doom-style map design, then “Jukebox” is my most ambitious venture into ZDoom modding yet. This project has been ongoing since – and I still can’t believe it – March 2011. It started out as such a small, unintimidating idea. Now it’s evolved into some kind of ravenous and insatiable monster needing constant updating and tweaking to satisfy its growing number of features and quirks. To this day I’m still working on it. I’m pretty sure that this project is the number 1 reason I still don’t have a girlfriend.

And yet, how simple it sounds in theory. When you load up ZDoom with this mod, you get the option of warping to a special map that allows you to randomly generate (and customize), from a massive pool of music, a playlist of MIDI tracks that is organised in the same way a regular Doom soundtrack is – one track per level. You can mix Doom and Doom II tracks together. You can have Heretic, Rise of the Triad and Descent music playing in the same game session. My ever-expanding catalogue of MIDIs is also included in its entirety within this mod (this is mainly where the periodic updates have to occur).

Jukebox offers an incredibly wide variety of music, with a pool of 800+ MIDI tracks to choose from across a range of sources, and options with which to customise the order in which the music plays, with settings like “Shuffle” and “No Repeats” and an in-game playlist editor allowing you to tailor the playlist to your exact liking. I have certainly found it to be an essential tool in adding a bit of spice to your average gameplay experience (if for instance you’re playing a mapset that contains no music at all), and the speed of the random generation of the playlist, not to mention the extent of its customisability, is incredibly satisfying.

I can assure you that creating this mod was not without its headaches. At times I felt like slamming my fist into my own face to dull the pain that its multitude of completely unpredictable problems induced. There were so many bugs introduced by my shoddily-written code that I had to recruit a scripting genius from the community to basically rewrite the entire system for me.

Right off the bat, this project was a living nightmare. At the moment, however, the new system is working reasonably well, and has not yet presented me with a bug or quirk that has filled me with the urge to punch a kitten in the throat. I think I have good reason to believe, however, that it’s simply biding its time, and that next time I want to make any sort of meaningful update or add some kind of new, experimental feature, it will throw itself into a demonic tantrum that could only be matched by the rages of Hell itself. At that point, I think I’ll probably just change the status of it on this page to “On Hiatus”, and seek immediate psychiatric help.