Jump to content
Doppelschwert

Let's gather feedback for AI customization here

Recommended Posts

I think it makes sense to gather the relevant feedback in a single place.

 

 

So far, I can't really play around with the customization because my resolution cuts off about half of the menu, but I already saw that the lists are pretty exhaustive, and it's hard to keep track of what's there. Nevertheless, I'm pretty excited about this and think that the people behind it can be very proud about what they've accomplished so far, since the expressiveness on the conditions is quite elaborate.

 

Now to the feedback:

 

So far, you can only select learned active abilities in the AI routine, so I'd like to suggest the following additions to the available actions:

- Switch to Weapon Set X

- Activate / Deactivate Modal X

- Use Item on Quickslot X

 

I'm aware this is only the first version, but some organization of the conditionals would greatly help:

 

Separate tabs for categories ( Self / Target / Available Ressource / Other) would aready help a lot with this, as well as just hiding of unavailable conditions (right now, you can check if you have various amount of each power sources, even though you can only have at most 3).

 

 

  • Like 4

Share this post


Link to post
Share on other sites

As a clarification for those without access to the newest patch:

 

Each instruction set consists of a condition and a matrix consisting of 3 columns.

The condition that triggers the instruction is a logical expression built by using AND and NOT operations on individual conditions from an exhaustive list.

 

Column 1 uses your active class abilities with neither modals nor equipment as entries.

 

Column 2 uses target categories as entry, which is determined by the viable targets of the ability in column 1; so far, I've seen (Self / Ally / Self or Ally / Enemy)

 

Column 3 has criteria as entry which are used to determine the target for your ability if there are multiple options.

 

It's not explained what the rows of the matrix do; I take it that the first row that can be used will be executed, but I'm not sure, since the preset AI has base abilities listed above their upgrades.

 

Additionally, you can set a cooldown for the instruction and decide whether engagement is allowed to be broken to carry out the instruction.

 

Multiple Instructions form a Behaviour, and you can equip up to 2 behaviours, with some additional functionality on which behaviour is chosen for each action (Randomly, Alternatingly, the one with higher power level or the one that fits the best to the current situation).

I have no idea which instruction is chosen from a behaviour, but I'd guess that it's processed from top to bottom and takes the first applicable one.

 

 

My suggestion above would be to break down the elementary conditions into two components:

A first component defining who or what you are checking for a condition, and a second component with the actual applicable conditions for the object you've chosen in the first component.

Right now, there is stuff like "Self: Has affliction" and "Target: Has affliction". Turning these into [self / Target] [Has affliction] would help considerably with building them in an efficient way while keeping track of what's available.

Edited by Doppelschwert
  • Like 1

Share this post


Link to post
Share on other sites

Off all things, I've been playing FF12 lately, which uses a similar system and might make for good comparison.

 

I've only messed around with it a little bit so far but I honestly couldn't really figure out how to make my character keep an ability active (swift strikes and disciplined barrage) while still attacking enemies aggressively.  I suspect that the "aggressive" auto attack AI got messed up with this patch because it wasn't working very well even with no other AI settings enabled.  I'll mess around more with the AI more tonight and see if I can get things to work in order to provide some more feedback.   

Share this post


Link to post
Share on other sites

I've tinkered a bit with the AI system. It's very powerful; it lets me program in anything I would want my characters to do in battle. But that's where I take issue with it. It might be a bit too powerful. I haven't tried this yet, but I have an idea about how to set up the AI for a custom party that would let me clear the entire beta on POTD without taking any action as a player other than telling my characters where they should move. When you get too into it, it removes the game from the game. It turns POTD into story mode. 

 

If the game ships with the AI editor we have now, I'm sure there will be youtube videos soon after release of people clearing the entire game 1) on the hardest setting 2) without dieing 3) and without ever intervening in character behavior. You could probably even turn it into a Steam achievement, ropekid. 

  • Like 1

"Of all the kids in The Breakfast Club, Ally Sheedy would be the first one to sense Cthulhu's coming." -Patton Oswalt 

Share this post


Link to post
Share on other sites

We definitely have some quality of life improvements we still want to add (like categorizing conditionals as mentioned above) and bugs that still need to be addressed. That being said, keep sending your thoughts and feedback!

 

(P.S. I want to hear about people sending their Custom AI files to others!)

  • Like 6

Twitter: @robyatadero

Share this post


Link to post
Share on other sites

I will contribute feedback in January when I’m back from my holiday; however I wanted to echo the OP right away about adding the possibility to use items in quick slots.

 

Using the A.I. to get rid of all manual steps in my customary start-of-combat buffing routine is the one thing I look forward to the most and that includes chugging potions.

  • Like 1

"Time is not your enemy. Forever is."

— Fall-From-Grace, Planescape: Torment

"It's the questions we can't answer that teach us the most. They teach us how to think. If you give a man an answer, all he gains is a little fact. But give him a question, and he'll look for his own answers."

— Kvothe, The Wise Man's Fears

My Deadfire mods: Brilliant Mod | Faster Deadfire | Deadfire Unnerfed | Helwalker Rekke

Share this post


Link to post
Share on other sites

When using the Defend Self type of auto attack, my casters don't start casting their abilities until they've been hit in combat. In a way I suppose this makes sense, but it's pretty annoying when I want to have my casters just hide behind a shield and not go into melee, but I have to use Defensive to make them use the AI Behavior.

Share this post


Link to post
Share on other sites

I think instead of having like a hundred entries for each resource check (e.g. "At least 2 Discipline") it would be better to be able to set the number in a text box. It would greatly reduce the number of items in the conditionals list.

  • Like 6

Share this post


Link to post
Share on other sites

I've only fiddled a bit with it, but I couldn't seem to find a conditional "at the start of an encounter" or anything of the such. I'm pretty much only interested in having my party buff themselves at the beginning of an encounter, after which I like to manually control their actions. Such a conditional would be really cool (for auto frenzy, disciplined barrage and such).

 

Also, maybe put the conditionals by alphabetical order or by group ? There are quite a bit, not so easy to go through them. Apart from that, it looks really robust !

Edited by dukeisaac
  • Like 5

Share this post


Link to post
Share on other sites

I'd request some sort of sorting function so that I can find what I'm looking for easier than scrolling and reading everything.

 

I've found that setting up something like 'activate Swift Strikes all the time' needs to use the 'not' command and have it reference a dexterity inspiration. If you just tell it to activate Swift Strikes all the time it will activate it five times in a row which is stupid. If you tell it activate if not dex inspiration it will re-activate it immediately after the first one runs out. Barbarian rage can be set up in a similar manner. Could probably use something like this for Wizards and their self buffs too.

 

Torment's Reach spam is easily accomplished with a activate all the time and target closest enemy. I was concerned about any enemy besides closest might make the guy move and eat a disengagement attack. Works great with a Shattered Pillar as you want to bang these out as often as you can.

 

For my casters I've gone with a simple activate Second Wind if health less than 50%. I don't trust the computer to fire off spells but having it keep track of activating a heal is nice. Using the auto-pause on ability works well enough with spells, will have to experiment with the long cast pause instead of any ability pause.

 

I haven't found anything that lets you fire a ranged weapon and then swap to your melee and engage/buff or whatever.

  • Like 4

Share this post


Link to post
Share on other sites

Think I'm starting to get it figured out...  this is pretty beast anyways.  I couldn't find a target option to program interrupts, should be something like "Target: casting long cast time spell".

 

I'm hoping we eventually get to customize auto attack behaviours too.  Stuff like targeting enemies with the lowest deflection or armor first, or enemy mages, etc.

 

Oh also, what does action set delay do?  If I set it equal to the duration of one of these abilities would "always true" work?  Guess I'll check tomorrow.

 

 

teyAE5H.jpg

Edited by Climhazzard
  • Like 1

Share this post


Link to post
Share on other sites

Yeah I wish we can add auto attack too, sometimes when I set Sworn Enemy -> FoD nearest enemy, then my character start to attack another target because he come closer!

Edited by dunehunter

Share this post


Link to post
Share on other sites

Oh also, what does action set delay do?  If I set it equal to the duration of one of these abilities would "always true" work?  Guess I'll check tomorrow.

 

An action set delay acts like a cooldown for the action set. When the value is 0, the AI will keep trying to use that set, whenever its condition is met. For example, if you have an action set set to "Always True" and a delay of 0, the AI will use whatever ability is in that action set, until you are out of resources. However, if you set that delay to 10 seconds, it will use the ability and then skip over that action set for the next 10 seconds, even if its conditionals are met.

 

In your picture you used "Not Has Inspiration - Dexterity" to stop it from casting Lightning Strikes non-stop (since it applies a dexterity affliction), but you could have also set it up with something like "Enemies in Melee Range > 0" and put an action set delay to prevent it from repeatedly using the ability every time you are in melee with an enemy.

 

Hope that helps! :)

  • Like 4

Share this post


Link to post
Share on other sites

Mark abilities, Mark the prey and Sworn enemy should have a conditional to check if the target is already marked, otherwise AI will repeat to mark marked enemy.

 

And it seems that after Action Delay AI doesn't check conditionals, so if I set it to 5, my monk will activate Lightning Strikes every 5 second regardless if I have a Dex inspiration or not. But in my understanding, shouldn't it just be the interval of how fast the AI check the conditional?

 

djX6Nti.png

Edited by dunehunter

Share this post


Link to post
Share on other sites

I'd like to request a conditional that checks the various defenses of the target.

 

Example - Force of Anguish targets fortitude not deflection. I'd like a conditional that will use Force of Anguish only when fortitude is less than deflection.

 

 

I'd also like a conditional that would keep a character from moving and incurring a disengagement attack. As it is now I specify 'closest enemy' and 'not' if enemy health less than 25% for conditions on spamming out Force of Anguish. (The health check is to not waste it on guys about to die anyway) If I could specify target biggest threat or spellcaster, not necessarily closest but with the condition that he won't run across the screen and get massive disengagements that'd be great.

  • Like 2

Share this post


Link to post
Share on other sites

I for one am EXTREMELY impressed with the implementation of Party AI customization based on what I've seen so far.  I almost cried when I first opened up the Behavior Editor. :w00t:   It is more detailed than any AI customization I have ever seen with a GUI, better than FF12 and Dragon Age: Tactics.  The possibilities are endless, and so far it seems very powerful and, more importantly, responsive to the conditionals!   This system is a dramatic improvement on POE1, which didn't seem to follow the vague AI descriptions.

 

I believe many of the core mechanic changes were made to suit this new AI driven combat (almost all abilities and health refreshing after combat), and I am glad they did so.  Sure there are things to iron out, and it is still buggy, but I love where this is going.

 

I've tinkered a bit with the AI system. It's very powerful; it lets me program in anything I would want my characters to do in battle. But that's where I take issue with it. It might be a bit too powerful. I haven't tried this yet, but I have an idea about how to set up the AI for a custom party that would let me clear the entire beta on POTD without taking any action as a player other than telling my characters where they should move. When you get too into it, it removes the game from the game. It turns POTD into story mode. 

 

If the game ships with the AI editor we have now, I'm sure there will be youtube videos soon after release of people clearing the entire game 1) on the hardest setting 2) without dieing 3) and without ever intervening in character behavior. You could probably even turn it into a Steam achievement, ropekid. 

 

As far as it being "too powerful" so far there are no commands for movement and positioning, which is key for surviving many encounters.  A "perfect" AI script with current capabilities will only get you so far, at least on hard+ difficulties. 

 

For some like myself, modifying the AI IS the game, finding a great set of conditionals to handle most situations.  Creating scripting that reflects your personal playstyle and removes all the mundane repetitive micro.  I have been having a blast since patch release setting up AI scripts for each class, then testing them on PotD difficulty.  Running an encounter, noting failures, making tweaks to the script, and seeing improvement is what I love about this metagame.  Hell, I loved doing this back in the day even with Infinity Engine games writing / compiling class scripts.

 

I applaud Obsidian for going with a top-tier AI Customization GUI.  Hopefully it becomes standard for all future Obsidian CRPGs, and that other party-based RPG developers take note.

Edited by Noriym
  • Like 5

Share this post


Link to post
Share on other sites

I'd like to request a conditional that checks the various defenses of the target.

 

Example - Force of Anguish targets fortitude not deflection. I'd like a conditional that will use Force of Anguish only when fortitude is less than deflection.

 

 

I'd also like a conditional that would keep a character from moving and incurring a disengagement attack. As it is now I specify 'closest enemy' and 'not' if enemy health less than 25% for conditions on spamming out Force of Anguish. (The health check is to not waste it on guys about to die anyway) If I could specify target biggest threat or spellcaster, not necessarily closest but with the condition that he won't run across the screen and get massive disengagements that'd be great.

 

Yeah I mentioned something similar in Bug subforum, my unbroken would chase one escaping enemy and lose all his engagement to all surrounded enemies even if I have disabled Keep movement on disengage, which pretty much mess my plan up.

Share this post


Link to post
Share on other sites

I was finally able to access the UI customization by downsampling (please make the AI editor scale with resolution in the next patch!).

The framework really is amazing; given my laziness with regards to micro management, writing even a simple AI has increased my combat performance considerably. That being said, I hope the devs can turn the system even more expressive over the next patches / expansions.

 

I'll echo that it would be great if chosing a new target for autoattacks could be implemented as action for the AI, since the targeting could then be completely controlled by the criteria in the last column.

 

Either way, it would be great if the AI could finally ignore dominated allies; having the party members fight back against their former allies instead of fighting the enemies responsible for the domination was rather annoying in Pillars 1 and is still the case.

Even if it does'nt end up as part of the normal AI routine, we would be able to write a script around it if choosing new targets was available.

 

Out of curiousity, a question for the devs: Can you reuse the implementation of the AI system to help you with building the enemy AI?

  • Like 1

Share this post


Link to post
Share on other sites

I'll echo the feedback that even just having it for self-buffing makes an enormous difference from a quality of life standpoint.

 

Just being able to tell my Shadowdancer to automatically use Swift Strikes when it's down makes me like the character about twice as much. I despise having to micro short-duration self buffs.

  • Like 3

Share this post


Link to post
Share on other sites

Overall this is brilliant and the best new feature so far in Deadfire.

 

Needed:

 

1) Autoattack as a listed function you can control with the scripting

 

2) switch weapon sets

 

3) activate weapon modals

 

4) target casting enemies (for use with interrupts).

Edited by Dr. Hieronymous Alloy
  • Like 4

Share this post


Link to post
Share on other sites

Not sure if it's been mentioned, but I would really like to be able to add abilities that I don't currently have (at least from the class(es) of my character), since I don't want to modify the script every time I level up and select new abilities. AI package creation will only be used by advanced players, who know in advance what abilities they'll pick for their characters, anyway.

  • Like 4

Share this post


Link to post
Share on other sites

Is there an "import/export" option ? 

That could be a good idea to exchange settings etc. (or just to keep them through different games).


★ ★ ★ ★ ★ ★ ★ ★ ★ I ' M ★  ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ B L A C K S T A R   ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ 

Share this post


Link to post
Share on other sites

Is there an "import/export" option ? 

That could be a good idea to exchange settings etc. (or just to keep them through different games).

 

By default, all AI sets you make are saved to disk as separate files that are not linked to specific play-throughs. They can be found in the Save Game folder under "CustomAIBehaviors". You can copy those and send to friends or drop in ones you have received into there and they should show up in game.

  • Like 4

Twitter: @robyatadero

Share this post


Link to post
Share on other sites

I loved this enough to start posting here! My thoughts after a playthrough of the beta:

 

-"Action set timer" (or whatever it's called) could use a tooltip. I wasn't sure what it was until I read this thread.

 

-I would really appreciate the ability to script weapon changes. Here are four examples of what I'd love to do:

  1. A Rogue opens combat with a blunderbuss, then switches to melee and enters the fight, switching back once combat ends. (I really love the idea of 'opening fire' this way, and I think it adds flavor to the setting, but I never bother to do it because it adds micro to the beginning of every fight.)
  2. A Ranger opens fire with two pistols, switches to a weapon slot containing two more pistols, fires THOSE pistols, then switches to a third weapon slot and proceeds as normal, switching back to the first slot after combat ends.
  3. A Fighter defaults to a sword and shield, but switches to a warhammer and shield if they're not penetrating their current target.
  4. A Rogue has their Sabre modal activated, but doesn't need it to penetrate, so they deactivate the modal.

It'd be nice (but not necessary) to be able to script positioning and targeting relative to other party members. I.E:

  1. If not engaged, flank the Fighter's target.
  2. If engaged, and the Fighter's target is in range, attack the Fighter's target. (this might already be possible)

It'd be fantastic if I could choose any ability (even ones I don't have yet) when scripting- I don't think anything's lost with this since the ability tree is shown in character creation.

 

Already this is fantastic! Combined with the change to 5 party members I'm having way more fun with the beta than I did in Pillars 1.

  • Like 4

Share this post


Link to post
Share on other sites

×
×
  • Create New...