Universal Enhanced AI

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.
User avatar
Josh771
Posts: 676
Joined: Wed Apr 03, 2013 11:36 am
Location: Elsewhere.

Re: Universal Enhanced AI

Post by Josh771 »

@-Ghost- :lol: Yes, well, I might have taken some inspiration from Sneaky Doom. I actually would like to bring that same light-level gimmick to this mod/mutator at some point. It shouldn't be too terribly hard to add, but I haven't attempted it yet. (And I was formerly known as SidDoyle, which is an old username I'm doing my best to drop in favor of just Josh).

@Gideon020 Oh... I didn't realize there was a level set. The Babel I have is just weapons/effects and monster AI. It's mostly vanilla, but with monsters that attack in concert, either one after another or all at once. Am I playing an old release?
Gideon020
Posts: 558
Joined: Mon Sep 28, 2015 3:23 am

Re: Universal Enhanced AI

Post by Gideon020 »

Josh771 wrote: @Gideon020 Oh... I didn't realize there was a level set. The Babel I have is just weapons/effects and monster AI. It's mostly vanilla, but with monsters that attack in concert, either one after another or all at once. Am I playing an old release?
https://babel-mod.neocities.org/

Has both a levelset with modified weapons, and a monsters-only version, so possibly you're playing an older release.
User avatar
Tesculpture
Posts: 186
Joined: Sun Feb 07, 2016 3:22 am

Re: Universal Enhanced AI

Post by Tesculpture »

Having given this a try, I've found a bug whereby enemies that attack continually (ie chaingunners and arachnotrons) will get stuck shooting at their path nodes instead of moving toward them. I have been unable to replicate this reliably; as best as I can tell, it happens if a continually-attacking monster begins its attack (ie faces/takes aim at you), but loses sight of you before it actually starts firing.
User avatar
Enjay
 
 
Posts: 26498
Joined: Tue Jul 15, 2003 4:58 pm
Location: Scotland

Re: Universal Enhanced AI

Post by Enjay »

A second possible bug (or maybe it's meant to be that way judging by point 4 in the OP): I played through episode 1 with this (I like to use ep1 as a test bed for new stuff because I know it so well, so I can spot differences more easily) and a couple of times I came across enemies just standing there waiting to be shot when I know that they would normally have been active. Perhaps they got to their path node and then just stopped searching. The first time it (with the imps in the soul sphere secret of E1M3 - one was just standing there staring at the wall) the debug output had lots of "DoomImp searching for [insert number here]" messages.

Code: Select all

DoomImp path marker reached; continuing
DoomImp path marker reached; continuing
DoomImp path marker reached; continuing
DoomImp switch to searching
DoomImp searching for 29
DoomImp searching for 29
DoomImp searching for 29
DoomImp searching for 29
DoomImp searching for 29
DoomImp searching for 29
DoomImp searching for 29
DoomImp searching for 28
DoomImp searching for 28
DoomImp searching for 28
DoomImp searching for 28
DoomImp searching for 28
DoomImp searching for 28
DoomImp searching for 28
DoomImp searching for 27
DoomImp searching for 27
DoomImp searching for 27
DoomImp searching for 27
DoomImp searching for 27
DoomImp searching for 27
DoomImp searching for 27
Picked up an armour bonus.
DoomImp searching for 26
Picked up an armour bonus.
DoomImp searching for 26
Picked up an armour bonus.
DoomImp searching for 26
DoomImp searching for 26
DoomImp searching for 26
DoomImp searching for 26
DoomImp searching for 26
DoomImp searching for 25
DoomImp searching for 25
DoomImp searching for 25
DoomImp searching for 25
DoomImp searching for 25
DoomImp searching for 25
DoomImp searching for 25
DoomImp searching for 24
DoomImp searching for 24
DoomImp searching for 24
DoomImp searching for 24
DoomImp searching for 24
DoomImp searching for 24
DoomImp searching for 24
DoomImp path marker reached; continuing
DoomImp searching for 23
DoomImp searching for 23
Picked up an armour bonus.
DoomImp searching for 23
Picked up an armour bonus.
DoomImp searching for 23
Picked up an armour bonus.
DoomImp searching for 23
DoomImp searching for 23
DoomImp searching for 23
DoomImp searching for 22
DoomImp searching for 22
DoomImp searching for 22
DoomImp searching for 22
DoomImp searching for 22
DoomImp searching for 22
DoomImp searching for 22
DoomImp path marker reached; continuing
DoomImp searching for 21
DoomImp searching for 21
DoomImp searching for 21
DoomImp searching for 21
DoomImp searching for 21
DoomImp searching for 21
DoomImp searching for 21
DoomImp searching for 20
DoomImp searching for 20
DoomImp searching for 20
DoomImp searching for 20
DoomImp searching for 20
DoomImp searching for 20
DoomImp searching for 20
DoomImp path marker reached; continuing
DoomImp searching for 19
DoomImp searching for 19
DoomImp searching for 19
Picked up a box of bullets.
DoomImp searching for 19
DoomImp searching for 19
DoomImp searching for 19
DoomImp searching for 19
DoomImp searching for 18
Picked up a stimpack.
DoomImp searching for 18
Picked up a yellow keycard.
DoomImp searching for 18
Picked up a stimpack.
DoomImp searching for 18
DoomImp searching for 18
DoomImp searching for 18
DoomImp searching for 18
DoomImp path marker reached; continuing
DoomImp searching for 17
DoomImp searching for 17
DoomImp searching for 17
DoomImp searching for 17
DoomImp searching for 17
DoomImp searching for 17
Picked up a health bonus.
DoomImp searching for 17
Picked up a health bonus.
DoomImp searching for 16
Picked up a health bonus.
DoomImp searching for 16
DoomImp searching for 16
DoomImp searching for 16
DoomImp searching for 16
Picked up a health bonus.
Picked up a health bonus.
DoomImp searching for 16
Picked up a health bonus.
DoomImp searching for 16
DoomImp path marker reached; continuing
DoomImp searching for 15
DoomImp searching for 15
DoomImp searching for 15
DoomImp searching for 15
DoomImp searching for 15
DoomImp searching for 15
DoomImp searching for 15
DoomImp searching for 14
DoomImp searching for 14
DoomImp searching for 14
DoomImp searching for 14
DoomImp searching for 14
DoomImp searching for 14
DoomImp searching for 14
DoomImp path marker reached; continuing
DoomImp searching for 13
DoomImp searching for 13
DoomImp searching for 13
DoomImp searching for 13
DoomImp searching for 13
DoomImp searching for 13
DoomImp searching for 13
DoomImp searching for 12
DoomImp searching for 12
DoomImp searching for 12
DoomImp searching for 12
DoomImp searching for 12
DoomImp searching for 12
DoomImp searching for 12
DoomImp path marker reached; continuing
DoomImp searching for 11
DoomImp searching for 11
DoomImp searching for 11
DoomImp searching for 11
DoomImp searching for 11
DoomImp searching for 11
DoomImp searching for 11
DoomImp searching for 10
DoomImp searching for 10
DoomImp searching for 10
DoomImp searching for 10
DoomImp searching for 10
DoomImp searching for 10
DoomImp searching for 10
DoomImp switch to searching
DoomImp searching for 9
DoomImp searching for 29
DoomImp searching for 9
DoomImp searching for 29
DoomImp searching for 9
DoomImp searching for 29
DoomImp searching for 9
DoomImp searching for 29
DoomImp searching for 9
DoomImp searching for 29
DoomImp searching for 9
DoomImp searching for 29
DoomImp searching for 9
DoomImp searching for 29
DoomImp searching for 8
DoomImp searching for 28
DoomImp searching for 8
DoomImp searching for 28
DoomImp searching for 8
DoomImp searching for 28
DoomImp searching for 8
DoomImp searching for 28
DoomImp searching for 8
DoomImp searching for 28
DoomImp searching for 8
DoomImp searching for 28
DoomImp searching for 8
DoomImp searching for 28
DoomImp searching for 7
DoomImp searching for 27
DoomImp searching for 7
DoomImp searching for 27
DoomImp searching for 7
DoomImp searching for 27
DoomImp searching for 7
DoomImp searching for 27
DoomImp searching for 7
DoomImp searching for 27
DoomImp searching for 7
DoomImp searching for 27
DoomImp searching for 7
DoomImp searching for 27
DoomImp searching for 6
DoomImp searching for 26
DoomImp searching for 6
DoomImp searching for 26
DoomImp searching for 6
DoomImp searching for 26
DoomImp searching for 6
DoomImp searching for 26
DoomImp searching for 6
DoomImp searching for 26
DoomImp searching for 6
DoomImp searching for 26
DoomImp searching for 6
DoomImp searching for 26
DoomImp searching for 5
DoomImp searching for 25
DoomImp searching for 5
DoomImp searching for 25
DoomImp searching for 5
DoomImp searching for 25
DoomImp searching for 5
DoomImp searching for 25
DoomImp searching for 5
DoomImp searching for 25
DoomImp searching for 5
DoomImp searching for 25
DoomImp searching for 5
DoomImp searching for 25
DoomImp searching for 4
DoomImp searching for 24
DoomImp searching for 4
DoomImp searching for 24
DoomImp searching for 4
DoomImp searching for 24
DoomImp searching for 4
DoomImp searching for 24
DoomImp searching for 4
DoomImp searching for 24
DoomImp searching for 4
DoomImp searching for 24
DoomImp searching for 4
DoomImp searching for 24
DoomImp searching for 3
DoomImp searching for 23
DoomImp searching for 3
DoomImp searching for 23
DoomImp searching for 3
DoomImp searching for 23
DoomImp searching for 3
DoomImp searching for 23
DoomImp searching for 3
DoomImp searching for 23
DoomImp searching for 3
DoomImp searching for 23
Zombieman switch to chasing
DoomImp searching for 3
DoomImp searching for 23
DoomImp searching for 2
DoomImp searching for 22
DoomImp searching for 2
DoomImp searching for 22
DoomImp searching for 2
DoomImp searching for 22
DoomImp searching for 2
DoomImp searching for 22
DoomImp searching for 2
DoomImp searching for 22
DoomImp searching for 2
DoomImp searching for 22
DoomImp searching for 2
DoomImp searching for 22
DoomImp searching for 1
DoomImp searching for 21
DoomImp searching for 1
DoomImp searching for 21
DoomImp searching for 1
DoomImp searching for 21
DoomImp searching for 1
DoomImp searching for 21
DoomImp searching for 1
DoomImp searching for 21
DoomImp searching for 1
DoomImp searching for 21
DoomImp searching for 1
DoomImp searching for 21
DoomImp searching for 0
DoomImp searching for 20
DoomImp searching for 0
DoomImp searching for 20
DoomImp searching for 0
DoomImp searching for 20
DoomImp searching for 0
DoomImp searching for 20
DoomImp searching for 0
DoomImp searching for 20
DoomImp searching for 0
DoomImp searching for 20
DoomImp searching for 0
DoomImp gave up the search
DoomImp searching for 20
DoomImp searching for 19
DoomImp searching for 19
DoomImp searching for 19
DoomImp searching for 19
DoomImp searching for 19
DoomImp searching for 19
DoomImp searching for 19
DoomImp searching for 18
DoomImp searching for 18
DoomImp searching for 18
DoomImp searching for 18
DoomImp searching for 18
DoomImp searching for 18
DoomImp searching for 18
DoomImp searching for 17
DoomImp searching for 17
DoomImp searching for 17
DoomImp searching for 17
DoomImp searching for 17
DoomImp searching for 17
DoomImp searching for 17
Picked up a health bonus.
DoomImp searching for 16
DoomImp searching for 16
DoomImp searching for 16
DoomImp searching for 16
DoomImp searching for 16
Picked up a health bonus.
DoomImp searching for 16
DoomImp searching for 16
DoomImp searching for 15
DoomImp searching for 15
DoomImp[A] found ally DoomImp[B]
...and shared intel with them!
DoomImp switch to chasing
DoomImp reacquired
Picked up a health bonus.
Picked up a health bonus.
Picked up a stimpack.
Picked up an armour bonus.
Picked up an armour bonus.
Picked up an armour bonus.
Picked up an armour bonus.
Supercharge!
I also notice that "DoomImp gave up the search" is in there. Relevant?

Also, side questions:
How will this mod sit with enemies on patrol paths?
What about enemies being given thing_hate instructions (possibly in combination with patrol paths).
Is there any way to exclude certain enemies from the improved AI (e.g. if they are supposed to not be very smart or maybe they can't/shouldn't talk to allies... or something).
User avatar
Josh771
Posts: 676
Joined: Wed Apr 03, 2013 11:36 am
Location: Elsewhere.

Re: Universal Enhanced AI

Post by Josh771 »

I have noticed rarely that a searching monster will not pick up new targets for whatever reason. I'll look over the code and try to establish why that might happen. As to your side questions:

• Enemies on patrol paths shouldn't break afaik, but maybe if their next patrol point is out of their LOS they'll start searching for it. I'm not sure.
• I'm not sure how that will play out. As long as they can see that thing, they shouldn't behave any differently than a vanilla Doom monster.
• Presently, no. If an actor has +ISMONSTER, it is force-fed the AI script item.
User avatar
Enjay
 
 
Posts: 26498
Joined: Tue Jul 15, 2003 4:58 pm
Location: Scotland

Re: Universal Enhanced AI

Post by Enjay »

Thanks for the replies.
Josh771 wrote:• I'm not sure how that will play out. As long as they can see that thing, they shouldn't behave any differently than a vanilla Doom monster.
Given that around half of the Thing_Hate parameters are something like "go after X without seeing them first", that may prove problematic. I'll have to see if I can find somewhere to test this more thoroughly.
User avatar
armymen12002003
Posts: 1413
Joined: Wed Jun 01, 2011 10:25 pm
Preferred Pronouns: He/Him
Operating System Version (Optional): Windows 10
Graphics Processor: nVidia with Vulkan support
Location: Castle Wolfenstein

Re: Universal Enhanced AI

Post by armymen12002003 »

Thanks this is great been playing this with Kriegsland really brings the challenge.

EDIT:
one thing you could do is make it where the AI deliberately targets the explosive barrels when the player is near them.
User avatar
Pixel Eater
 
 
Posts: 667
Joined: Wed Aug 02, 2017 12:31 am
Location: In between the Moon and you, between the buried and me.

Re: Universal Enhanced AI

Post by Pixel Eater »

armymen12002003 wrote:one thing you could do is make it where the AI deliberately targets the explosive barrels when the player is near them.
That would be awesome! Then inevitably someone will make a gorilla that throws more at you :mrgreen:
User avatar
Doominer441
Posts: 190
Joined: Thu Oct 24, 2013 9:04 pm

Re: Universal Enhanced AI

Post by Doominer441 »

Is there a way, when adding custom enemies, to add an exception so this won't affect them?
User avatar
Josh771
Posts: 676
Joined: Wed Apr 03, 2013 11:36 am
Location: Elsewhere.

Re: Universal Enhanced AI

Post by Josh771 »

Doominer441 wrote:Is there a way, when adding custom enemies, to add an exception so this won't affect them?
Not at present, no. I'm not even sure how I'd do that, but I'm pretty sure it's possible with ZScript. I think perhaps other mod developers have done something like this. I might investigate and see if anyone has any good ideas on how to implement something like that.
User avatar
Doominer441
Posts: 190
Joined: Thu Oct 24, 2013 9:04 pm

Re: Universal Enhanced AI

Post by Doominer441 »

Also, I've noticed this makes dormant monsters wake up when nearby non-dormant monsters are triggered to start searching.

Never mind, this was just from my own stupidity.
User avatar
Josh771
Posts: 676
Joined: Wed Apr 03, 2013 11:36 am
Location: Elsewhere.

Re: Universal Enhanced AI

Post by Josh771 »

Universal Enhanced AI v1.1.1 has been released!

Version 1.1.0 adds new, optional light-based stealth mechanics so you can try to be sneaky in almost any idTech 1 game or GZDoom mod! Special thanks to Caligari87 for the original code, especially for figuring out how to make it take dynamic lights into account (impressive stuff)! :D

EDIT: Version 1.1.1 corrects a slight bug with v1.1.0! Monsters should now have a harder time seeing you if you hide in the shadows while they search for you.
User avatar
De-M-oN
Posts: 203
Joined: Mon May 26, 2008 3:24 pm

Re: Universal Enhanced AI

Post by De-M-oN »

This could work well with the ai mod I have (had), where the monsters predict their shots.

So for example if you circle strafe a cyberdemon it tries to shoot earlier (predicts your movement). At the latest, the 3rd shot will hit you then because of his prediction of your movement. Unfortunately the mod still doesnt let the cyberdemon shoot on your feet though. ^^

Unfortunately I dont remember its name :(
User avatar
namsan
Posts: 147
Joined: Sat Mar 31, 2012 4:27 am
Preferred Pronouns: He/Him
Location: Japan

Re: Universal Enhanced AI

Post by namsan »

I found a bug.
I was playing The Adventure of Square with your latest(1.1.1) UEA mod in GZDOOM(3.6.0), and the Cannon Jerks attack other enemies for some reason.
Without this mod, Cannon jerks never target and attack other enemies, so this bug is probably caused by this mod.
I took a video of this bug.
https://streamable.com/v8eet
User avatar
Vostyok
Posts: 1666
Joined: Sat Jan 17, 2015 8:54 am
Preferred Pronouns: No Preference
Location: Discord: Vostyok#3164

Re: Universal Enhanced AI

Post by Vostyok »

This is brilliant. Tested out with patrolling monsters, scripted monsters vs monsters, friendly monsters and monsters that react only when attacked. Seems to work fine, and acts a bit more tactical nuance to certain maps. Thumbs up!

Return to “Gameplay Mods”