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.
Originally named Enhanced Nightmare, I present to you the latest in gameplay AI enhancement mods: this thing.
Have you ever found yourself thinking Man, Nightmare! is becoming a snore fest. I sure wish someone could make a mod to fix that, preferably one with an incredibly lengthy name.
No. You haven't. But now that you have, you're stuck with this. Revisiting the way the game handles enemies and updating them to the modern standards of Quake 1, Doom But It's Harder Except It's Still Realistically Beatable™ does more than just decide that giving the Cyberdemon homing missiles is peak balance. Such amazing AI improvements include but are not limited to:
Enemies no longer being blind and firing into their teammates
Enemies not firing at you when you're clearly behind an indestructible torch
Enemies no longer seeing through walls and deciding shooting at them is productive
Patented Pinky Jumping™ technology has been added (can it even be a gameplay mod without it?)
Cacodemon Strafing 2.0 has been deployed (it's the least annoying version you've seen yet!)
And so much more! I'm definitely not running out of features to talk about. For those of you who want something spicier but are too babby to play on Nightmare! difficulty, Ultra-violence has been beefed up as well. Sunlust? More like SaveScumlust.
Change log for v1.0:
Spoiler:
/// GENERAL CHANGES \\\
Enemies chasing a target will now wake up other nearby enemies that see them
Enemies will now always wake up when taking damage
Enemies with weapons now actually fire from them
Projectile/hitscan attacks now have a brief 1-2 second cool down on them
•Does not apply to melee attacks, Arch-viles, or Pain Elementals
Pain now has a brief 1-2 second cool down on it
•Does not apply to hitscan enemies (excluding Spidermasterminds), Arch-viles, and Pain Elementals
Enemies will now check for any actors (e.g. other monsters) or objects (e.g. torches) in their way when deciding to fire missiles
•All hitscan enemies, Arch-viles, and Pain Elementals will not check for objects
•All hitscan enemies (excluding the Wolfenstein SS), Cyberdemons, Arch-viles, and Pain Elementals will not check for actors
Enemies will no longer track targets behind walls and objects but will instead fire at their last seen location
•Hitscan enemies will still track their target behind objects
Refire for enemies that fire continuously now has a check for actors and objects
•Hitscan enemies will not check for objects
•Hitscan enemies (excluding the Wolfenstein SS) will not check for actors
Enemies no longer have a cool down on how often they can switch targets
Enemies that dash (e.g. Lost Souls) will no longer be blocked by non-solid actors
/// DIFFICULTIES \\\
Ultra-violence
•Fast monsters has been enabled
Nightmare!
•Cool down from projectile/hitscan attacks is turned off
•5 seconds is added to the pain cool down
•Enemies will now lead their shots when in close range
•Refire for enemies that fire continuously no longer has a chance to keep firing after target leaves view
•Blocking Lost Soul spawns from Pain Elementals will cause them to explode for 64 damage in a 32 unit radius (no damage fall-off)
•Lost Souls and Pain Elementals are immune to this damage
/// ENEMY SPECIFIC CHANGES \\\
Wolfenstein SS
•Will no longer infight with other Wolfenstein SS
Pinky/Spectre
•Added a ranged leap attack with a 2-3 second cool down (1 second on Nightmare!)
Lost Soul
•Fixed a momentum issue when being shot while flying towards their target
•Added a 1 second cool down (0.5 seconds on Nightmare!)
•Made significantly more aggressive
•Health reduced: 100 -> 60
•Now enters charging animation when being shot from a Pain Elemental
Cacodemon
•Now has a 50% chance to strafe when attacking outside of melee range with a 2.5 second cool down (1.5 seconds on Nightmare!)
•Strafe is circular in motion and will not affect Cacodemon's momentum (no slingshotting)
•Can be interrupted by pain
Pain Elemental
•Will no longer infight with Lost Souls
Revenant
•Extended hitbox to cover top of body (will not affect collision detection)
•Increased melee speed
•No longer stops firing missiles when entering close range
•Missile will now always lock on
•To compensate, missiles will no longer track targets that have partial invisibility
Arachnotron
•Increased fire rate
Arch-vile
•Fire is now transparent
•Fire now explodes at origin of target (no more blocking explosions with small pillars)
•Fire now accurately updates to the current target of the Arch-vile
•Fire now disappears when Arch-vile is put in pain or killed
•Can no longer harm itself or other Arch-viles with its fire
Cyberdemon
•Missiles are now 25% faster
•Increased fire rate
•No longer thrusted by damage
Spidermastermind
•Will no longer infight with other Spidermasterminds
•No longer thrusted by damage
Keep working on this, if you find ways to change the game, make it harder or more modular, add in a menu to customize options.
This is some really good stuff.
Beta 2 is now out! Some tweaks to make enemies less derpy and some reworking of the back end to make it better optimized. I'm using some more "experimental" features so be sure to let me know if there are any crashes or weird behaviors.
mrtaterz wrote:Keep working on this, if you find ways to change the game, make it harder or more modular, add in a menu to customize options.
This is some really good stuff.
I'll likely be skipping the customization options this time around since it feels like it'd kinda defeat the point. I'm all ears for new features and better ways to tweak enemies, though.
armymen12002003 wrote:is this compatible with other mods too? or just vanilla?
It's compatible with any mod that doesn't replace Doom's default monsters. If it does then you'll need to load this one second to make sure it gets priority on the monster spawns (this unfortunately means things like Smooth Doom's monsters won't work with it).
Beta 3 is out now. Not much new here so it's just a small update. I'm pretty happy with the set of features I have now so I've mostly just been doing optimizations where it's easy or makes sense. The Revenant got some more tweaks to its gameplay which concludes the saga of me trying to make enemies fully respect 3D when firing projectiles/dashing at you. Other than that it's just minor tweaks. Arch-vile fire and Cacodemon strafing are now a tad bit less expensive to calculate which should help out on slaughter maps, especially for the Arch-viles. The Revenant's extended hitbox, on the other hand, received a massive optimization fix that significantly lowered its cost.
If all goes well, this will likely be the build that transitions into 1.0.
You should make it so hitscan enemies like the Zombiemen move a bit faster. You should also try and see if you can make it so they turn to face you before they shoot at you because enemies will sometimes be moving left or right then magically start attacking you; see if you can make them stop and then turn to face you before attacking.
Updated current version to 1.0 with no changes. A version that doesn't include the Wolfenstein SS has also been added to keep compatibility with some older mods that use DeHackEd to replace them.
mrtaterz wrote:You should also try and see if you can make it so they turn to face you before they shoot at you because enemies will sometimes be moving left or right then magically start attacking you; see if you can make them stop and then turn to face you before attacking.
This is actually how it's done in Quake, but Quake has a massive advantage over Doom in this case: fully 3D models. In Doom the limited sprite angles make it difficult to tell which direction the enemy is truly facing most of the time. While it wouldn't be impossible to implement I think the lack of angles would make it either completely unnoticed or just really jank looking.
Boondorl wrote:Updated current version to 1.0 with no changes. A version that doesn't include the Wolfenstein SS has also been added to keep compatibility with some older mods that use DeHackEd to replace them.
mrtaterz wrote:You should also try and see if you can make it so they turn to face you before they shoot at you because enemies will sometimes be moving left or right then magically start attacking you; see if you can make them stop and then turn to face you before attacking.
This is actually how it's done in Quake, but Quake has a massive advantage over Doom in this case: fully 3D models. In Doom the limited sprite angles make it difficult to tell which direction the enemy is truly facing most of the time. While it wouldn't be impossible to implement I think the lack of angles would make it either completely unnoticed or just really jank looking.
I don't think it would hurt to experiment with it, see how it works. Maybe it wouldn't look jank? Also, loving the updates!
Also, there has to be a way to adapt this in such a way that it overrides general actor behavior.
I understand that in Object-Oriented programming, if you have defined something, you can derive from it by putting in that cute space-colon-space and get the names right, perhaps even replace them. But now, it appears as though that, in order for you to port this to other portions of the code, you have to invert the location of it and make it into a source rather than an attachment. That way, it can compile onto actor behavior universally instead of just for a few effects.
Or, to put it in a way that is amazingly and yet offensively popular and sarcastic to say in the ZDoom forums: do what Nashgore did and what Bolognese (somehow) didn't.
Right now, individual actors have their base elements changed. There's an April Fools bullshit wad that changes up enemy behavior as well (e.g. Revenants always fire guided shots) which is probably a little more understandable at the face of it.
What if there was a way to put down code that says: A_EnhancedLook/A_EnhancedChase and have them replace A_Look and A_Chase?
Wait, never mind, those are contingent on player approach (e.g. melee range).
In other words, if there was a version of this that could be adapted to existing mods instead of being standalone, that would be the tits.
DabbingSquidward wrote:Any plans to make versions for Heretic, Hexen & Strife?
Heretic I would be very much interested in, but I feel Hexen unfortunately doesn't have the enemy variety to make good use of it (a mod that adds more monsters would be a better choice). Strife I don't have enough experience with the game itself but it does seem like it'd be a perfect fit for smarter AI given the nature of the game.
As for Neophyte_Ronin's post (sorry for the late response), no, there is zero way to override Doom's base functionality without straight up replacing it. You can thank DeHackEd support for that one. I haven't used Nashgore but if there is a way to attach actual behaviors to enemies, I'll be looking into it since I'd love to make this usable on any monster set. Keep in mind that Nashgore does not modify the enemies themselves but rather uses event handlers to add gore when an enemy takes damage. Looking into it there doesn't seem to be any event thrown when a missile is fired/melee attack is done or when A_Chase/A_Look are called so unfortunately this is the best I can do for now.
Script error, "Enhanced Nightmare.pk3:actors/ai_enhancements.txt" line 448:
Argument must be a modifiable value
Script error, "Enhanced Nightmare.pk3:actors/ai_enhancements.txt" line 455:
Argument must be a modifiable value