Dynamic Enemy Reinforcements v3

Projects that alter game functions but do not include new maps belong here.
Forum rules
The Projects forums are only for projects. If you are asking questions about a project, either find that project's thread, or start a thread in the General section instead.

Got a cool project idea but nothing else? Put it in the project ideas thread instead!

Projects for any Doom-based engine (especially 3DGE) are perfectly acceptable here too.

Please read the full rules for more details.
fcas3t
Posts: 43
Joined: Sun Nov 29, 2020 6:46 pm

Dynamic Enemy Reinforcements v3

Post by fcas3t »

Dynamic Enemy Reinforcements (DER) is a mod with the goal of providing intense combat experiences. It works on any Doom map, for any difficulty.

DER is a fork of AID, but they are fundamentally different: The purpose of DER is to supplement the enemy spawns of a map, whereas AID replaces them entirely. DER simply adds enemies, regardless of player health, and it never changes items.

DER has 4 pairs of CVars that control how often reinforcements are spawned, how close they are to the player, and the severity. Each pair is the minimum and maximum of the range for generating random numbers. Thus, by default, DER spawns 1 to 3 groups every 15 to 45 seconds, and each group has 2 to 4 enemies. They will teleport in, sometimes very close to the player.

The enemies hand-placed by the map designer are the starting pool for randomly spawning reinforcements. However, the roster is not created until the 3rd map tick, after other enemy mods may have altered the pool. Thus DER should work seamlessly with other enemy mods.

Disclaimer: The default settings can be intense. Reinforcements will spawn very close to you. I've had jump scares :twisted:
You do not have the required permissions to view the files attached to this post.
Last edited by fcas3t on Thu Apr 08, 2021 3:59 pm, edited 3 times in total.
fcas3t
Posts: 43
Joined: Sun Nov 29, 2020 6:46 pm

Re: Dynamic Enemy Reinforcements

Post by fcas3t »

Other notes:

There is no menu to change the CVars, so use the console. (You can copy-paste the CVar names or type them into the console. Press the up key to get previous commands, so you don't have to re-type them. To change values, just type a space and new number, such as: der_min_seconds 30)

The der_chance CVar is the percent chance that reinforcements will spawn when the interval timer expires. By default, der_chance is 100, which means always spawn.

To disable DER, set der_chance to 0. The value can be changed at any time.

der_chance was added in v2, replacing the original der_enabled, which was the equivalent of 100% or 0%, i.e. all-or-nothing. I wanted the ability to reduce the overall intensity of reinforcements without having to change the other CVars. So now, a der_chance of 50 results in about half of the reinforcements compared to the default. (Of course you can still modify the other CVars to your liking.)

DER will never spawn any monster flagged as a boss or mini-boss. In v2, I added exclusions for other EVP monster types I don't want as reinforcements. For the relevant details and how to make your own exclusions, see the code and my instructions here.

The other significant change for v2 was adding the der_dilute CVar, which is explained below.
Last edited by fcas3t on Mon Apr 05, 2021 7:11 pm, edited 5 times in total.
User avatar
JohnDoe8
Posts: 20
Joined: Tue Apr 14, 2020 9:28 am

Re: Dynamic Enemy Reinforcements

Post by JohnDoe8 »

Very nice I must say, the mod gives the real feeling of a demonic invasion taking place, it's both immersive and fun imo.

the only downside is that one can never get 100% kills on maps, but that's just a minor nitpick.
JohnnyTheWolf
Posts: 1162
Joined: Mon Oct 05, 2015 8:37 am

Re: Dynamic Enemy Reinforcements

Post by JohnnyTheWolf »

This mod feels like an overhaul of the Nightmare difficulty.
fcas3t
Posts: 43
Joined: Sun Nov 29, 2020 6:46 pm

Re: Dynamic Enemy Reinforcements

Post by fcas3t »

JohnDoe8 wrote:Very nice I must say, the mod gives the real feeling of a demonic invasion taking place, it's both immersive and fun.
Thanks for the nice feedback. I strongly agree :mrgreen:
JohnnyTheWolf wrote:This mod feels like an overhaul of the Nightmare difficulty.
That's a good point. I hadn't thought about how DER compares to Nightmare. (In my personal fork of EVP, I removed it as a difficulty option.) I only seriously tried Nightmare once, about a month ago, and the "not being remotely fair" warning from 1993 still rings true. I didn't like either enemy respawning or -fast. DER is a much better alternative for serious gameplay.
fcas3t
Posts: 43
Joined: Sun Nov 29, 2020 6:46 pm

Re: Dynamic Enemy Reinforcements

Post by fcas3t »

I suggest these supplements to DER, based on my own gameplay:

Use the infighting CVar provided by the game engine. It can enhance the experience either way: Disabling infighting makes groups of diverse enemies tougher, while Full infighting not only makes things easier, it can be amusing to watch.

My cloning mod can serve a useful purpose of diluting the pool of possible reinforcements. By cloning only grunts (the weakest enemies), the overall roster of enemies is less concentrated, which can be helpful on the toughest maps.

edit for v2: The new der_dilute CVar adds grunts to the roster without any need for cloning. The default value works well for me on a variety of maps. Set der_dilute to 0 to disable it, i.e. no diluting the roster with grunts. The higher the value, the more grunts are added to the roster. See the code for more info.
Last edited by fcas3t on Mon Apr 12, 2021 9:28 am, edited 3 times in total.
Valken
Posts: 281
Joined: Mon Jun 08, 2015 7:32 am

Re: Dynamic Enemy Reinforcements

Post by Valken »

Is this mod compatible with Universal Entropy which takes monsters and create different versions of it viewtopic.php?f=43&t=66778&hilit=Universal+Entropy

I like the idea a lot but would be cool to use both on top of monster randomizers.

Edit - I did a back 2 back test of AI director and DER with UE before either mods.

DER is almost like a wave based simulator, in that it keeps spawning enemies when you backtrack.

AID just takes over the original spawners and mixes it up.

For RPG such as Brutal Heretic, Hexen and IronTusk Diablo, I really suggest DER.

It is awesome and relentlessly hard as ammo depletes very quickly but gives the player a chance to "build up" their players! SAVE OFTEN!

For running through levels just to complete the mission, stick with AID.
Last edited by Valken on Mon Feb 15, 2021 10:46 pm, edited 3 times in total.
User avatar
Captain J
 
 
Posts: 16891
Joined: Tue Oct 02, 2012 2:20 am
Location: An ancient Escape Shuttle(No longer active here anymore)

Re: Dynamic Enemy Reinforcements

Post by Captain J »

Speaking of overhaul, i hope i could customize the number or variants of the ambushing enemies. In case of people don't want their game to be Nightmarish but wants a bit of challenge. Decent addon overall!
User avatar
MsrSgtShooterPerson
Posts: 61
Joined: Thu Jan 02, 2020 1:59 am
Location: Lost in the procedural infinite hells and I'm fine with that.

Re: Dynamic Enemy Reinforcements

Post by MsrSgtShooterPerson »

This has become part of my regular play so far - mostly because I like having some activity go on in normally quiet parts of the map. :D

I do occasionally get monsters stuck on each other though (inter-colliding) or stuck on walls and sometimes on the edge of platforms - perhaps there's some solution to further nudge these specific monsters away from these spots?

I customized the script a bit for my own use actually such that the reinforcements intensify approaching 100% kills, but also shutting down at 80% (so a 100% kill rate is still somewhat guaranteed possible)

It would also be nice to perhaps have some means to compensate for the extra ammo spent - perhaps restore pickup spawning but tie it up to monster drops instead such as the new pickups aren't just littered on the floor at random (which I remember was original AID behavior) :D
fcas3t
Posts: 43
Joined: Sun Nov 29, 2020 6:46 pm

Re: Dynamic Enemy Reinforcements

Post by fcas3t »

MsrSgtShooterPerson wrote:This has become part of my regular play so far - mostly because I like having some activity go on in normally quiet parts of the map. :D
I customized the script a bit for my own use actually such that the reinforcements intensify approaching 100% kills, but also shutting down at 80% (so a 100% kill rate is still somewhat guaranteed possible)
I'm glad you're enjoying it and have modified it for your use case.
MsrSgtShooterPerson wrote: I do occasionally get monsters stuck on each other though (inter-colliding) or stuck on walls and sometimes on the edge of platforms - perhaps there's some solution to further nudge these specific monsters away from these spots?
edit: I'm pleased to update this comment to say that in Version 3, all of the clipping problems should be fixed.

And, while testing this fix, I observed several reinforcements that were stuck walking in-place on the edge of platforms. This is actually a GZDoom engine bug. The moment these enemies were perturbed (by shooting them with the pistol to not kill them) they moved around just fine, no longer stuck. The thing is, it's an edge case bug that probably only occurs when using DER, or any other mod that spawns monsters and spreads them out. (The only other way would be if a map designer decides to be wacky and hand-place an enemy on an edge like this.)
MsrSgtShooterPerson wrote: It would also be nice to perhaps have some means to compensate for the extra ammo spent - perhaps restore pickup spawning but tie it up to monster drops instead such as the new pickups aren't just littered on the floor at random (which I remember was original AID behavior) :D
That's outside the scope of DER, as stated in the first post. So you'll need a separate mod for that, or add it to your fork.
Last edited by fcas3t on Mon Apr 12, 2021 9:32 am, edited 6 times in total.
User avatar
Armaetus
Posts: 1256
Joined: Fri Mar 13, 2009 3:55 pm
Preferred Pronouns: He/Him
Operating System Version (Optional): Windows 10 Home
Graphics Processor: ATI/AMD with Vulkan/Metal Support
Location: New York State

Re: Dynamic Enemy Reinforcements

Post by Armaetus »

This will certainly make ObAddon maps a nightmare to play based on the quantity chosen, unless there's some way to replenish at least a fraction of health.
fcas3t
Posts: 43
Joined: Sun Nov 29, 2020 6:46 pm

Re: Dynamic Enemy Reinforcements v2

Post by fcas3t »

New Version release notes

I replaced the pk3 file in the first post with version 2. (For the record, the original had been downloaded 230 times when I deleted it; v2 is a new file with its own counter.)

The changes from the original version were replacing the der_enabled CVar with der_chance (explained above), adding der_dilute and exclusions (see the code), cleaning up the Vector operations a bit, and adding useful comments to the code.

I made these nice refinements weeks ago for my own DER usage, so they're well-tested.

The other CVars are the same, so the default experience of v2 is very similar to the original.
fcas3t
Posts: 43
Joined: Sun Nov 29, 2020 6:46 pm

Re: Dynamic Enemy Reinforcements v3

Post by fcas3t »

Version 3 release notes

Thanks to Player701, the lone bug I was aware of is now fixed! See this thread for more info.

So I'm pleased to release the third, and likely final, version of DER. It's bug-free and feature-complete :mrgreen:
User avatar
Gustavo6046
Posts: 138
Joined: Sat May 13, 2017 3:11 pm
Preferred Pronouns: He/Him
Operating System Version (Optional): Arch Linux
Graphics Processor: Intel with Vulkan/Metal Support
Location: Porto Alegre, Brazil

Re: Dynamic Enemy Reinforcements v3

Post by Gustavo6046 »

Oh! I like this mod so far, adds variety and ongoing life to gameplay :)

How about adding a delay between spawning enemies? Would make it look a bit more fluid (a bit less mechanic? I guess?), and also would reduce the chance for lag spikes on the ZScript VM. :D
fcas3t
Posts: 43
Joined: Sun Nov 29, 2020 6:46 pm

Re: Dynamic Enemy Reinforcements v3

Post by fcas3t »

Gustavo6046 wrote:Oh! I like this mod so far, adds variety and ongoing life to gameplay :)

How about adding a delay between spawning enemies? Would make it look a bit more fluid (a bit less mechanic? I guess?), and also would reduce the chance for lag spikes on the ZScript VM. :D
Glad you're enjoying it, but to answer your question: No, I won't be changing this. (The only change I'm interested in for DER is if someone else figures out a workaround for the GZ engine edge case bug discussed in a prior post.)

I always use DER for my gameplay (changing der_chance to accomodate the wide variety of map difficulties) and it's performed just fine on many maps, including some large ones. Reinforcement spawning has always been fluid.

In my many hours of playing with DER, I've only experienced one noticable lag spike in GZDoom, which may have been caused by something else. The most important factor for lagging is the power of your PC. Another factor is other mods you're using and the scripts they run.

Return to “Gameplay Mods”