Jump to content
Search In
  • More options...
Find results that contain...
Find results in...
MFG38

[v1.1] Vandomizer - A "vanilla" randomizer for GZDoom (Now with Heretic compatibility!)

Recommended Posts

MAP01

Ok, just some wrong enemies and... I already have all the weapons in the game. This should be easy.

MAP02

Yeah, pretty easy. Starting to run out of ammo though, might have to use some unconventional methods.

MAP03

>Out of ammo

>Gets to the end of the level

>Revents replace the top 2 pinkies.

>Hell Knight

>Other pinkies are revents too

>eternal screaming

Share this post


Link to post

I think the name is OK, another possibility is "Vandalizer" for the unspeakable things it does to people's maps.

Share this post


Link to post

Vandomizer now has (somewhat rudimentary) Ultimate Doom compatibility! It still needs tweaking - it has a chance to spawn decorations exclusive to Doom 2 (never thought Doom 2 would have exclusive decorations) - but it's there for you to play around with.

 

A v1.0 release of the mod shouldn't be too far off now!

Share this post


Link to post

Vandomizer v1.0 has been released! Download links are in the OP.

Share this post


Link to post

Oops, bumping an almost-year-old thread here...

 

Anyway, I just released a new version of Vandomizer. I implemented a minor change some time ago that I figured had been sitting in the GitHub repo long enough, so I decided to go ahead and release it as v1.0.1. Said change is one in the "Same tier spawns" and "All spawns" randomization modes that should spawn slightly less Pain Elementals in Doom 2.

 

Heretic compatibility is also in the pipeline for later this year, and I even have an idea for an additional randomization mode that I may or may not implement in the near(ish) future. Keep an eye peeled.

Share this post


Link to post
11 hours ago, eharper256 said:

Randomised Teleport destinations and switch effects for the full masochism mode?

 

Nah, that'd be too much effort to implement while making sure that the maps don't get softlocked out the wazoo.

Share this post


Link to post

Tried this on "total fucking chaos" with pistol starting the first 3 maps of doom 2 and I have to say it's a lot of fun! Having to chainsaw through a spider mastermind stuck in the hallway on map 01 is pretty funny, but when enemies aren't stuck in the walls it can actually be pretty challenging.

 

I did notice that certain things don't seem to randomize. I used IDCLEV01 a bunch and the chainsaw seems to always spawn in the first secret. And it also seemed to favor certain enemies over others - I saw a ton of hit scanners, pain elementals, and arch viles but few mancubus or revenants and no hell nobles. 

 

This is great stuff! I'll likely try to do a playthough of doom 2 with it.

Share this post


Link to post

I gave this a try because it sounded like a fun idea. I had a good time with it, but it feels like it needs some tweaks to really work well.

 

I tried a few maps on randomizer level 0/1 first, but I ran into serious issues because there aren't enough weapons. For example, I start MAP01, get a rocket launcher from the chainsaw spot, use the 2 rockets to kill the enemies in the first room, and now I have no rockets or other weapons so I have to use my pistol for the rest of the level. Many levels rely on shotgunners/chaingunners dropping weapons, and having at least a shotgun would make a huge difference. Maybe you could randomize drops for all enemies as well, so shotgunners could drop ammo, or shotguns, or even a BFG?

 

I had more fun with randomizer level 2 because you'll just find weapons all over the place, but it's a little too ridiculous to play for long. Definitely lives up to its name!

 

It also seems like there's too many chaingunners and pain elementals, on random level 1/2 at least. Looking at the script for level 1, chaingunners should be normal rarity and pain elementals should be less rare, but I've seen way more pain elementals than even cyberdemons. I tried setting the level to 2 and loading up MAP21 a few times, and almost every time there were multiple chaingunners and pain elementals in the starting room. I'm using version 1.0.1 on GZDoom 4.5.0 if that helps.

 

 

 

 

 

Edited by SCF

Share this post


Link to post
1 hour ago, myolden said:

I did notice that certain things don't seem to randomize. I used IDCLEV01 a bunch and the chainsaw seems to always spawn in the first secret.

 

Yeah, that chainsaw getting randomized is an oddly rare occurrence. I have had it turn into a rocket launcher on a few occasions on my test runs, but 98% of the time, it stays a chainsaw. There's fairly little I can do about it, though.

 

19 minutes ago, SCF said:

Maybe you could randomize drops for all enemies as well, so shotgunners could drop ammo, or shotguns, or even a BFG?

 

I specifically wanted the zombies to not drop quite literally anything upon dying, so some changes had to be done. My attempts at preventing their weapon drops from being randomized resulted in some weapon switching issues that caused them to break completely at worst. Ammo pickups getting randomized was easier and less bug-prone to fix, so I ended up implementing the "no weapon drops" workaround and making them just drop ammo instead. Unfortunately, I can't promise that'll change, but if I do find a way to stop the dropped weapons from randomizing that doesn't completely break them on the player's part, I'll definitely implement that fix.

 

37 minutes ago, SCF said:

It also seems like there's too many chaingunners and pain elementals, on random level 1/2 at least.

 

That does admittedly need further tweaking. Luckily it's easy enough to do so.

Share this post


Link to post

@MFG38: I got curious about why it was behaving this way so I took a look at how exactly the replacement scripting works. It's still not fully clear to me, but the documentation for GetReplacement() says:
 

Quote

Gets the actor class which replaces the specified actor class. The class the function gets is the last class in the replacement chain, not the direct replacement. For instance, if cls is being replaced by DoomImp, and DoomImp itself is being replaced by Revenant, then it is Revenant which serves as the replacement, and thus what the function gets.

 

 

Which suggests there can be chains of replacements. So I made a map with 3 enemies and nothing else, and when I log each replacement to the console, I sometimes get more than 3 replacements. What I imagine happens is that if you first replace an imp with a shotgunner, and then replace a zombieman with an imp, it will see that imps should be replaced with shotgunners and ultimately turn the zombieman into a shotgunner as well. That way, I can see how you'd get a lot of the same enemy types in a map, but it doesn't explain why it's always specific enemies like Chaingunners/Pain Elementals.

 

But I did find in the documentation for events that ReplaceEvent has a property IsFinal:

 

Quote

IsFinal determines whether or not the engine should go through the rest of the replacement chain for this class, with the chain being: event -> skill -> replaces-keyword. Note that other events can still override this.

 

And if I just add "e.IsFinal = true;" at the top of the replacement function it seems to work the way it should, and it's actually random.

 

I'm sure someone with more zscript experience could explain this better, but at least it looks like a solution

 

You can see an example of the before and after here:

 

Spoiler

wNYYMiA.png

ku198Dx.png

 

Share this post


Link to post
28 minutes ago, SCF said:

if I just add "e.IsFinal = true;" at the top of the replacement function it seems to work the way it should, and it's actually random.

 

Okay, so I did as you suggested and also conducted a little experiment out of curiosity. I wanted to see if I could simply make the zombies drop their normal weapons and fix my prior issues with that. Interestingly, what happened was that Shotgunners and Chaingunners were consistently dropping their respective weapons in Total Fucking Chaos mode but not the other modes - they were still getting turned into other weapons on those modes upon spawning. And apparently even that is because the weapons don't actually get randomized in Total Fucking Chaos mode...

 

I swear, the things you notice way too late. *headdesk*

Share this post


Link to post

Released v1.0.2. This version fixes an oversight where weapon pickups weren't getting randomized in Total Fucking Chaos mode, as well as a potential softlock in Doom 2 MAP07 in the same mode. Also, Shotgunners and Chaingunners now drop their weapons without them getting turned into other weapons (or more monsters).

Share this post


Link to post

Greetings, this looks like a pretty fun little mod, ran into a little bit of an issue though with TFC mode replacing quite a few entities with blocking obstacles such as hanging bodies, pillars etc - quite a few of the exits are impossible to reach due to these impassable obstacles/decorations replacing the health or monsters that would usually reside in the exit room. Is this intended?

Share this post


Link to post
25 minutes ago, Jark said:

ran into a little bit of an issue though with TFC mode replacing quite a few entities with blocking obstacles such as hanging bodies, pillars etc - quite a few of the exits are impossible to reach due to these impassable obstacles/decorations replacing the health or monsters that would usually reside in the exit room. Is this intended?

 

Yes and no. I'm aware that such softlocks are possible, but then again, it does state in the description for TFC mode that "beatability is not guaranteed", partly for that reason. With the way the script handles the replacements, it's literally down to luck whether an obstacle spawns in a spot where it completely halts any further progression or not, since there isn't any "space" checking involved. That said, I do want to implement some sort of "anti-softlock" mechanism into the mod in case of such occurrences - I'm thinking a special key you could press to re-randomize a thing that's blocking your way into something else. It'd need some sort of cooldown to prevent abuse, though.

Share this post


Link to post

I've played through half of Eviternity so far with v1.0.2 and spawn mode 0. It's a fun way to revisit old wads and get a whole new experience, and so far the levels have been surprisingly beatable. Having enemies drop their weapons has made it a lot better since now you usually have a basic gun to fall back on and you're less likely to get stuck without ammo.

 

I did make a few modifications in my local version, as I was trying to tweak the gameplay to work best for me (and to add the Eviternity monsters to the rotation). I'll list my changes here as feedback, but of course they're just my preferences. It's up to you whether or not you want to use these ideas.

  • I removed randomization of obstacles. As mentioned by others it can make some maps impossible to beat, even on mode 0. Maybe you could put passable and impassable obstacles in different randomizer categories? Or just don't change them outside TFC mode.
  • I removed radiation suits from the randomization, also to make maps more consistently beatable. On some maps they're pretty much required. It doesn't feel right to have one item remain the same, but it improves playability (plus, there's already enough useless items for powerups to turn into).
  • I changed the radius of the spider mastermind to be the same as the cyberdemon. She's so big she almost always gets stuck when replacing a cyberdemon. It's not a great solution because it can look a little weird and makes her harder to hit, but it's also not much fun if she never fights back.
  • Hordes of imps or zombiemen can easily turn into instant-death chaingunner swarms, so I separated them such that for zombiemen/shotgunners/imps the chance of turning into a chaingunner is halved, and for existing chaingunners it's doubled. Chaingunners are just significantly stronger than other enemies in the same tier.

 

 

 

Share this post


Link to post

There's an old DOS frontend for Doom that can do something similar Vandomizer's "Total Fucking Chaos" mode.

It's called D!Zone and it's a pretty nice frontend, too.

You can randomize much more than monsters and items, though.

D!Zone can randomize items, monsters, decorations, lights, flats, and sector types.

Share this post


Link to post

I played some maps in Vandomizer 1.0.4 and i had fun with your mod.

 

- Same tier enemy and ammo spawns: IMO this is the best so far vanilla experience for a solid randomizer experience.

 

- All enemy and ammo spawns: This mode kind of rubs me the wrong way, Don't get me wrong, I love having end game monsters in my doom experience, but i feel this is horribly balanced, the spawn rate for end level monsters is way to high, i see too many cyber demons, and too many masterminds, when i just start a map with a pistol. I wish this game mode was balanced better, More challenging then "Same tier enemy and ammo spawns" but not impossible to beat like "TOTAL FUCKING CHAOS" right not it feels like the latter.

 

- TOTAL FUCKING CHAOS = I tried that, its not for me i didn't enjoy that at all.

 

I think you should reduce the spawn rate of end game monsters, not too crazy, but enough to balanced it better, Always try to balanced end game item drop rates vs end game monsters that could spawn.

I love having any monster can lurk around any corner but at the same time, Spawning in a tight room behind a cyberdemon with nothing but a pistol that's not ideal.

 

So far you did a wonderful job with your mod, and im enjoying your work, Kudos for you man, Thank You for making this.

Share this post


Link to post

@Lifeform Thanks for the feedback! Sadly, I don't know if I'm gonna do further tweaks to the spawning balance at this point - I spent enough time trying to nail it back when I developed the first version. I know it doesn't always result in fair encounters, but then again, that's half of the fun, if I do say so myself. But your thoughts are appreciated at any rate.

Share this post


Link to post

It's taken an eternity and a half - as more or less anything I work on does - but v1.1 of Vandomizer is now released, bringing Heretic compatibility to the mod! I also added an option to disable the randomization, making it spawnmode 0 and reorganizing the existing spawnmodes accordingly. See OP for download links.

 

Changelog is in the spoiler below.

 

Spoiler
  • Implemented Heretic compatibility.
  • Added a mode that disables randomization entirely (spawnmode 0).
  • Reorganized existing spawnmodes (mode 0 is now mode 1 etc.).
  • Reduced chance of spawning boss monsters in Doom and Doom 2 in spawnmode 2.

 

Share this post


Link to post

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now

×