Page 1 of 18

Shades of Doom v2.0 - The Spice of Life (03/11/19)

PostPosted: Thu Jul 20, 2017 10:57 pm
by Cyanide
Image
Image
Cast your votes here!

This is my take on a monster randomizer (groundbreaking, I know). It works by randomly choosing a specific replacement for all of the 30 different kinds of enemies (this includes the Spectre, Stealth monsters, Wolfenstein SS and Commander Keen) at the start of every map. Every zombieman, imp, cacodemon, etc. will be changed to the exact same kind of zombieman, imp, cacodemon, etc. variant, but will be re-rolled upon entering a new level. That means, that if every monster is represented in a level (which, I know, they never are... BUT STILL!!!) the total number of monster compositions should be exactly 2.11604788697689293984e+35 (+1 for Chaos Mode), hence the name. Every monster variant behaves almost exactly like the original monster to avoid major balancing issues. Though some monsters disappear when killed, Arch-Viles can still revive them, as their corpses are still technicaly there.

Roster

There's a full list of the 306 monsters in the options menu with credits and an image for each. If you want to know what you're currently shooting and who made it, this is where you'll find out. This contains the full credits for all the sprites/sounds in the mod.

Chaos Mode

I've added the option to randomize every single enemy (except Commander Keens) on the map, because... well, why not.

Compatibility

The mod should be compatibel with weaponmods that do not change anything other than weapons. Among the ones I've tested myself are:
Spoiler:

I've made .zip with compatibility patches for a bunch of other mods:
Spoiler:

Also, here's some other add-ons / mods I usually play with:
Spoiler:

Load Order

Load order should be as follows, though you can omit any/all of the 4 addons after the main randomizer:

  1. SoD.pk3
  2. SoD_Keen.pk3
  3. SoD_SS.pk3
  4. SoD_Gore.pk3
  5. SoDStlth.pk3
  6. SoD_<patch>.pk3 (if needed)
Links

Download (filesize: 60.785 KB)
This is the main download .zip.

Patches (filesize: 352 KB)
This is a .zip containing all of the patches for weapon mods mentioned above.

Patch Base (filesize: 21 KB)
This is the template I've been using to make all the mod patches. I thought I'd release it in case someone wants to make a patch for their own mod. Replace all instances of "XXXX" with a name and all instances of "YYYY" with the Decorate for the monsters.

Screenshots @ imgur.com
Som screenshots taken while developing v2.1

Credits:
(These credits do not cover the sprite creators. See the ingame roster for that. Mentioned here are the people who helped me make this mod in some way or another.)
Spoiler:

Changelog:
Spoiler:

Have fun!
-Cyanide

Re: [WIP/BETA] 12,5 Quadrillion Shades of Doom v0.1

PostPosted: Fri Jul 21, 2017 4:47 am
by Someone64
At first I was disappointed at how this is a monster mod that doesn't add variation to monsters through gameplay by just reskinning the monsters but I've actually grown to like it. All the same type of monster every level is changed to the same skin reduces confusion on what you're fighting against and not exposing you to all the different skins each map drip feeds you all the skins so it feels fresh for longer. It's a nice change of pace kinda like playing with Smooth Doom's randomizer on that just changes how monsters look slightly. Hope to see more skins and such and (probably too astronomical of a task) maybe some random death animations for similar looking monsters and things like that.

EDIT: Would be cool if you can set it to group extremely similar looking variations together. Also, the mod breaks Dead Simple on Doom II.

Re: [WIP/BETA] 12,5 Quadrillion Shades of Doom v0.1

PostPosted: Fri Jul 21, 2017 6:11 am
by Cyanide
Someone64 wrote:At first I was disappointed at how this is a monster mod that doesn't add variation to monsters through gameplay by just reskinning the monsters but I've actually grown to like it. All the same type of monster every level is changed to the same skin reduces confusion on what you're fighting against and not exposing you to all the different skins each map drip feeds you all the skins so it feels fresh for longer. It's a nice change of pace kinda like playing with Smooth Doom's randomizer on that just changes how monsters look slightly. Hope to see more skins and such and (probably too astronomical of a task) maybe some random death animations for similar looking monsters and things like that.


Thanks. :D I've been looking at alt-deaths and XDeaths for some of the monster. That's all fairly easy to add, unless the sprites haven't been made. Sadly, I'm no sprite artist.

Someone64 wrote:EDIT: Would be cool if you can set it to group extremely similar looking variations together.


The more monsters that get bunched together, the less variation there can be. I've already tied the Lost Souls to Pain Elementals and Spectres to Demon, though. :)

Someone64 wrote:Also, the mod breaks Dead Simple on Doom II.


Hmm. I'll try to recreate this. Thought I got that fixed. :?

EDIT: Seems like the only solution I can find to the Dead Simple problem, is putting in A_BossDeath at the very start of the death state with a duration of 0. This in turn triggers the map changes earlier, but doesn't break the map anymore.

Re: [WIP/BETA] 12,5 Quadrillion Shades of Doom v0.1

PostPosted: Fri Jul 21, 2017 11:19 am
by Spaceman333
I'm always excited to see a new monster randomizer mod, especially if its usable with any gameplay mod. I'm currently in the middle of a megawad playthrough, but this mod will be loaded up on the next playthrough as high priority.

Re: [WIP/BETA] 12,5 Quadrillion Shades of Doom v0.1

PostPosted: Fri Jul 21, 2017 11:32 am
by Cyanide
Spaceman333 wrote:I'm always excited to see a new monster randomizer mod, especially if its usable with any gameplay mod. I'm currently in the middle of a megawad playthrough, but this mod will be loaded up on the next playthrough as high priority.

Thanks! I've made it compatible with Argent, and tested it with a bunch of other mods. If I recall correctly it works with Trailblazer, and a bunch of weapon mods like Weapons of Saturn, Combined Arms and Doom RL Arsenal.

Compatibility with other mods is on the to-do list. I just need to figure out which ones to make it compatible with. :)

Re: [WIP/BETA] 12,5 Quadrillion Shades of Doom v0.1

PostPosted: Fri Jul 21, 2017 9:21 pm
by dljosef
Interesting take on a monster randomizer.

One thing. I wouldn't mind a patch for the megawads that replace commander keens and the SS enemies with custom monsters.

Also, speaking of the SS, a lot of the replacement monsters still play the normal SS sounds. (Wouldn't mind more variety, such as the SS sounds from Spear Ressurection.)

Re: [WIP/BETA] 12,5 Quadrillion Shades of Doom v0.1

PostPosted: Fri Jul 21, 2017 9:31 pm
by Somagu
Maybe with some ACS/ZScript wizardry, there could be a menu that allows for enabling and disabling specific types of monsters being replaced?

Re: [WIP/BETA] 12,5 Quadrillion Shades of Doom v0.1

PostPosted: Sat Jul 22, 2017 1:56 pm
by Cyanide
dljosef wrote:One thing. I wouldn't mind a patch for the megawads that replace commander keens and the SS enemies with custom monsters.


I'll try to do that. Thanks for the feedback! :)

Re: [WIP/BETA] 12,5 Quadrillion Shades of Doom v0.1

PostPosted: Tue Jul 25, 2017 12:09 pm
by Spaceman333
I just finished a 32-map oblige playthrough with this mod on and I really like it. Coming across all sorts of wonders and horrors felt spooky and surprising. The selection of monster replacements all feel consistent, so I didn't feel any of them were off-putting or bad, even though some of them really differ a lot in style and origin.

Image

Whatever minor stat adjustment they may have were practically unnoticable, so I can trust to play with this mod to work almost the same as vanilla, keeping the balance intact, as was intended. Part of me craves for more randomization in between each monster's stats, as whenever I look at them, they all seem so different, kicking up my imagination to think "hmm I wonder if this monster has something up its sleeve that the normal one doesnt", so I could have more surprise and have them be more distinct, but I do appreciate the approach this mod took nontheless.

Image

I also liked the funny messages at the start of levels, announcing a common/dominant theme for this levels monsters (atleast thats what I assume it was), giving a sense of occasional cohesion for monsters to join their similar brethren for this next map.

Overall, this is definitely a keeper. I'm certainly going to play many more playthroughs with it and enjoy whatever crazy shades it will throw at me next.
Its a well made, quality mod. Thank you for making and sharing it. :D


P.S.
I don't have any sort of feedback towards the mod itself, because I think its great as is and so far I didn't run into any bugs at all, but I do have a wish that is outside the scope of this mod:
*An external programmatic addon that randomizes the stats of a monster by changing certain values (scale, health, speed, painchance, mass, etc) within a certain range and turning certain actor flags on or off(hurtspecies,canusewalls, nogravity, pushable etc.). Per level or per playthrough.
*An external programmatic addon that adds generic gibs based on the size/class of the monster, with more gibs if the monster is bigger. Plus an option to make every monster to XDeath always.

Re: [WIP/BETA] 12,5 Quadrillion Shades of Doom v0.1

PostPosted: Tue Jul 25, 2017 1:47 pm
by Gez
Cyanide wrote:
Someone64 wrote:Also, the mod breaks Dead Simple on Doom II.


Hmm. I'll try to recreate this. Thought I got that fixed. :?

EDIT: Seems like the only solution I can find to the Dead Simple problem, is putting in A_BossDeath at the very start of the death state with a duration of 0. This in turn triggers the map changes earlier, but doesn't break the map anymore.


Use this as the base on which you build you replacement spawners.

Re: [WIP/BETA] 12,5 Quadrillion Shades of Doom v0.1

PostPosted: Tue Jul 25, 2017 5:46 pm
by Cyanide
Spaceman333 wrote:Lots o' love!

Thanks for the kind words! I'll have to look into those stat-randomizing things you mention at the bottom of your post.
Gez wrote:Use this as the base on which you build you replacement spawners.

Thanks. It seems I'll have to give Zscript a whirl. :)

Re: [WIP/BETA] 12,5 Quadrillion Shades of Doom v0.1

PostPosted: Tue Jul 25, 2017 6:17 pm
by wildweasel
This is good fun! It did make me realize I should rename one of the actors in my existing mod, but hey, my fault, not yours. DRLA has me conditioned to wet myself when I see the Hungry, though, heheh.

Re: [WIP/BETA] 12,5 Quadrillion Shades of Doom v0.1

PostPosted: Wed Jul 26, 2017 5:33 am
by Doctrine Gamer
Gez wrote:
Cyanide wrote:
Someone64 wrote:Also, the mod breaks Dead Simple on Doom II.


Hmm. I'll try to recreate this. Thought I got that fixed. :?

EDIT: Seems like the only solution I can find to the Dead Simple problem, is putting in A_BossDeath at the very start of the death state with a duration of 0. This in turn triggers the map changes earlier, but doesn't break the map anymore.


Use this as the base on which you build you replacement spawners.


Scripted spawner it work with any custom monsters mod?
I recently experienced this in the Brutal Doom and Terminator Mods.
The monsters were dying and unable to pass on the levels that depend on the monsters dying to exit.
Quadrillion Shades of Doom is very good, variety skins of monsters without modifying their behavior. Nice.

Re: [WIP/BETA] 12,5 Quadrillion Shades of Doom v0.1

PostPosted: Wed Jul 26, 2017 7:15 am
by Gez
Doctrine Gamer wrote:Scripted spawner it work with any custom monsters mod?

Here's a short technical explanation of what happens.

Some levels have hardcoded effects when all monsters of a given type (baron in E1M8, mancubus and arachnos in MAP07, etc.) die. The monsters that can do this call a function called A_BossDeath when they die. So when A_BossDeath is called, what happens is that this function looks if there are any surviving monsters of the appropriate type present, and if not, it does whatever the level is supposed to do, like open a door or lower a floor, or just go to the victory screen.

So we have two factors that are important here:
  1. Monster type
  2. Calling A_BossDeath when dying

Now what happens when you replace monsters. Let's say you replace the mancubus by the baron of hell. You get to MAP07 and there are barons on the platforms. When the last baron is killed, A_BossDeath sees that the level wants to have dead mancubuses, sees that the mancubuses are replaced by barons, and that all the barons are dead. Cool, it works!

Now let's say that you replace the mancs by imps. Imps don't call A_BossDeath. So when you kill the last imp on MAP07, nothing happens. The level is broken. That's because we failed point #2.

What if you replace the mancs by a spawner that will in turn spawn a baron and then disappear. When you kill the last baron, A_BossDeath sees that the level wants dead mancs, that the mancs are replaced by spawners, and that there are no dead spawners around. The level is broken. That's because we failed point #1.

Certain classes like the built-in RandomSpawner and the resource ScriptedSpawner that I have linked to are smarter than that. They spawn the actor, but they linger around, invisible, and they monitor the health of the actor they spawned. If you use one of these special spawners to replace mancs and spawn imps, what happens is that they will see that the actor they replace (mancs) can call A_BossDeath, so they will wait until the actor they spawned (so, an imp in our example) dies, and when that imp dies they call A_BossDeath themselves, before disappearing. The result is that the level works, because A_BossDeath is called by a dead actor of the type that replaces the desired type.

Mods like Brutal Doom that create their own spawners don't go to the same lengths to make sure that things work correctly, so they break levels. It's just one of the many problems they have as far as coding is concerned, honestly. Other common issues that come from not using RandomSpawner or ScriptedSpawner and instead rolling your own approximation is that they don't transfer flags (like ambush) or TID or various other things that you can set in the map editor.

Re: [WIP/BETA] 12,5 Quadrillion Shades of Doom v0.1

PostPosted: Wed Jul 26, 2017 10:44 am
by Doctrine Gamer
Gez wrote:
Doctrine Gamer wrote:Scripted spawner it work with any custom monsters mod?

Here's a short technical explanation of what happens.

Some levels have hardcoded effects when all monsters of a given type (baron in E1M8, mancubus and arachnos in MAP07, etc.) die. The monsters that can do this call a function called A_BossDeath when they die. So when A_BossDeath is called, what happens is that this function looks if there are any surviving monsters of the appropriate type present, and if not, it does whatever the level is supposed to do, like open a door or lower a floor, or just go to the victory screen.

So we have two factors that are important here:
  1. Monster type
  2. Calling A_BossDeath when dying

Now what happens when you replace monsters. Let's say you replace the mancubus by the baron of hell. You get to MAP07 and there are barons on the platforms. When the last baron is killed, A_BossDeath sees that the level wants to have dead mancubuses, sees that the mancubuses are replaced by barons, and that all the barons are dead. Cool, it works!

Now let's say that you replace the mancs by imps. Imps don't call A_BossDeath. So when you kill the last imp on MAP07, nothing happens. The level is broken. That's because we failed point #2.

What if you replace the mancs by a spawner that will in turn spawn a baron and then disappear. When you kill the last baron, A_BossDeath sees that the level wants dead mancs, that the mancs are replaced by spawners, and that there are no dead spawners around. The level is broken. That's because we failed point #1.

Certain classes like the built-in RandomSpawner and the resource ScriptedSpawner that I have linked to are smarter than that. They spawn the actor, but they linger around, invisible, and they monitor the health of the actor they spawned. If you use one of these special spawners to replace mancs and spawn imps, what happens is that they will see that the actor they replace (mancs) can call A_BossDeath, so they will wait until the actor they spawned (so, an imp in our example) dies, and when that imp dies they call A_BossDeath themselves, before disappearing. The result is that the level works, because A_BossDeath is called by a dead actor of the type that replaces the desired type.

Mods like Brutal Doom that create their own spawners don't go to the same lengths to make sure that things work correctly, so they break levels. It's just one of the many problems they have as far as coding is concerned, honestly. Other common issues that come from not using RandomSpawner or ScriptedSpawner and instead rolling your own approximation is that they don't transfer flags (like ambush) or TID or various other things that you can set in the map editor.



Excellent explanation and very well detailed. Thank you. :thumb: :-)