Blood Call: making enemy groups more dangerous

Talk about the mods you'd like to see in Daggerfall Unity. Give mod creators some ideas!
Post Reply
User avatar
pango
Posts: 3358
Joined: Wed Jul 18, 2018 6:14 pm
Location: France
Contact:

Blood Call: making enemy groups more dangerous

Post by pango »

I do like how enhanced combat AI makes one-to-one combat more difficult and varied, the enemy not staying static or predictably coming in range and attacking you.
However when applied to each enemy in an attacking group, it has the drawback of delaying attacks, making the group manageable and barely more threatening than a single enemy.
I'm sure complex coordinated decisions could be implemented, but I'd like to suggest a simple modification that I've been thinking about:
  • For each character, player included, keep track of when (s)he got hurt (no matter by what; but maybe non-observable sources, say poisons, could be excluded?);
  • For each or his/her enemies, add a short period of time after that with increased probability of starting an attack.
Basically make enemies try to exploit times of weakness.

For single enemies, that may result in some kind of "combo attacks", if the period is long enough that current attack can finish and another one be immediately triggered.
But for group of enemies, it could results in (quasi-)simultaneous attacks, just because several enemies would make the same observation at the same time.

I'm not sure it that would be sufficient, or how much tweaking it would require, but I wanted to share that idea...
Mastodon: @pango@fosstodon.org
When a measure becomes a target, it ceases to be a good measure.
-- Charles Goodhart

l3lessed
Posts: 1403
Joined: Mon Aug 12, 2019 4:32 pm
Contact:

Re: Blood Call: making enemy groups more dangerous

Post by l3lessed »

I've had thoughts about this as I have worked on my mods.

Currently the enemy ai script is a amazing and cool addition. There is lots of room for expansion too.

I feel there needs to be more "combat states" to really make combat more immersive and modern feeling. I've added in a real basic parry state in my shield and ambidexterity mods. But, this could easily be expanded so enemies use it in more interactive ways, where they parry attacks actively based on player and their state. Right now, it happens as a random thing when the player and enemy just happen to be attacking.

If i can get in some form of a shield block mechanics for enemies, then things could get interesting.

Outside that, some pack AI behavior and change of enemy aggression states based on players health and stats would really add another layer.
My Daggerfall Mod Github: l3lessed DFU Mod Github

My Beth Mods: l3lessed Nexus Page

Daggerfall Unity mods: Combat Overhaul Mod

Enjoy the free work I'm doing? Consider lending your support.

User avatar
Hazelnut
Posts: 3016
Joined: Sat Aug 26, 2017 2:46 pm
Contact:

Re: Blood Call: making enemy groups more dangerous

Post by Hazelnut »

It's an interesting idea and could just be implemented in DFU since the advanced AI is already not classic compliant. Did you try it Pango?
See my mod code for examples of how to change various aspects of DFU: https://github.com/ajrb/dfunity-mods

User avatar
pango
Posts: 3358
Joined: Wed Jul 18, 2018 6:14 pm
Location: France
Contact:

Re: Blood Call: making enemy groups more dangerous

Post by pango »

No, I haven't tried implementing any of this
Mastodon: @pango@fosstodon.org
When a measure becomes a target, it ceases to be a good measure.
-- Charles Goodhart

l3lessed
Posts: 1403
Joined: Mon Aug 12, 2019 4:32 pm
Contact:

Re: Blood Call: making enemy groups more dangerous

Post by l3lessed »

This can be done one of two ways, even if it hasn't been worked on.

The quickest would be to setup the dll script injector tool and start rewriting the base enemy AI addition script to add in the features you want and keep vanilla object code in place. Compile the dll. Release, and replace the original script file on DF launch with you expanded dll version. Honestly, if I can get to this after Ambidexterity mod drops, this is the approach I think I would go with. Allows for complete control of the script without having to worry about object permissions; just have to ensure you keep it up to date with base script, if the devs make any object/code changes after mod release.

The harder would be like what I did with the FPSWeapon.cs script for ambidexterity mod. Deactivate anything you don't need in the base script that you can and build your own custom AI code that is activated and runs in tandem and off of the original enemy AI script. This ones harder, as it relies on working around the public and private objects of the original script and hoping you don't break something in the process. If I had the DLL injector when I began working on my FPSWeapon replacement mod, I probably would of gone down that road instead of doing the hybrid approach I did.

Lastly, it could be submitted into the dev branch, if devs wanted it built up and didn't want it seperated as a mod. That would be easiest of the three.

There is so much additions we can make, from creating better AI auto pathfinding using sphere casts and logic to pack behaviors to damage/combat logic to shift enemy aggression or even cause them to flee if you beat their friends down hard enough.
My Daggerfall Mod Github: l3lessed DFU Mod Github

My Beth Mods: l3lessed Nexus Page

Daggerfall Unity mods: Combat Overhaul Mod

Enjoy the free work I'm doing? Consider lending your support.

Post Reply