Bug in Campaign AI (step attack only for movement)?

Discussion in 'Bugs' started by PhoenixTheHunter, Jan 4, 2019.

  1. PhoenixTheHunter

    PhoenixTheHunter Lizardman Priest

    Hey guys,

    wasn't sure where to put this and if you would even consider strange (?) AI behavior a bug. But better state here than to simply ignore it. And if it isn't a bug from your point of view, it's at least a reference for other players.

    First of all, I was once told by some (at that point in time) more experienced player (can't tell anymore who it was exactly) that the AI never uses step-attack cards simply for movement (e.g. leaving terrain) and will only play them if your char is in reach. And all my own campaign sessions fully confirm this statement.

    But today, the impossible happened: I was farming the LF in Shrine of the Astral Guardians and on map two (with the three pawns and the two rooks) one of the pawns lunging striked to my chars but canceled the actual strike. I have a clipped log and will attach it tomorrow after scanning it for any sensitive data and cutting it down to the important lines (I don't want to miss the LF the second time). Anyways, the context for this action was that my two chars were both one field from the pawn so I guess playing the card was a acceptable decision by the AI, but the pawn was clumsy and from the field the pawn lunged to one of my chars was behind and the other was in front of it (but both in adjacent cells). The char in its back had less HP (same class/race) so I assume (the log doesn't show this or I'm just not seeing this detail) that the AI wanted to strike the char with less HP but because this char being behind after the lunging and the clumsiness, the AI wasn't able to strike the desired target. So Karen decided to not attack any of my chars.

    So there are two aspects, I'm not sure if they should be that way:
    1. Playing the card in the first place. Ok, even human players miss attachments so I guess it's fine for the AI to be a bit stupid, too. How often has the AI killed itself in a situation where almost every human player could have predicted the AI's loss before even playing the final card (e.g. Radiation Pulse while all chars are near each other and all are at or under 5 HP, or playing an Unholy Wellspring on a (really) low HP char). I assume the AI would even try to play a Step-2-attack while encumbered when the opponent's char is in Step-2-distance and then would have to cancel the attack, too.
    2. Canceling the attack instead of just hitting the available char if the desired target got unavailable. For every human player a step attack is a two-phase card: After selecting the card, you first do the movement and decide where to step to, after the step is executed you are given the option to select the target of the actual attack or to cancel. The problem that arose in my play probably was that the AI had made one decision that included both the step location and the attack target (not taking into account the clumsiness). Therefore I conclude, that for AI a step card is an atomic one-phase operation. Then the game evaluated the AI's decision and saw that this wasn't possible and, hence, executed the step but canceled the attack.

    Forgetting about an attachment can happen to experienced players but not hitting any (!) available char just because the original target got out of reach is something no player would do. Or has the AI finally learned how to cancel a step attack on purpose???

    Any comments on this from other players or devs?
    Last edited: Jan 4, 2019
  2. PhoenixTheHunter

    PhoenixTheHunter Lizardman Priest

    Later than I thought, but here you go. It was a two-player coop-match (with me not being the team's leader) so I removed all references to the other player's name and the corresponding character name.

    Attached Files:

  3. Scarponi

    Scarponi Moderator

    Certainly "normal" behavior for the AI. I've had this:
    happen many times. Basically it seems the AI assesses what it wants to do with the cards at it's disposal, initiates the action, and then if some game effect doesn't allow it to complete that action, it will cancel that action (which off the top of my head seems to apply only to step attacks as something which can be "half done" and then canceled). While clearly the better programming would be to look for other targets, it's a corner case that wasn't planned for, and the default: "cancel if incompletable" saves us from the much worse scenario of the AI failing to end it's turn.

    Simply put, the AI is dumb, but programming it to be smarter would require loads of code taking care of all possible corner cases. It's much easier to ramp up the difficulty of the AI when desired by just giving it better cards. Though I agree, as wish lists go, a smarter AI wouldn't hurt.
    Last edited: Jan 6, 2019
    Sir Veza likes this.
  4. PhoenixTheHunter

    PhoenixTheHunter Lizardman Priest

    I've taken some time to think about a possible solution already. And there are certainly multiple ways to solve this. Here are the two simplest I came up with:
    - The AI could get a second choice for such actions: If the AI decides to step-attack the game asks again for the targets after the movement is executed (just like for human players).
    - The AI decides to do a step-attack with a list of sets of possible targets that the game tries to apply. If one set of targets isn't available to the character after the movement it tries the next one. This would still be a single-phase-decision.

    (Although I doubt that this will be changed at this point in time being only a minor issue in some rare cases)

    The more problematic thing here is that I start to wonder how the AI does movement decisions while being encumbered. This all appears as if the AI just makes its decision and the game tries to apply them as good as possible. But what is the best application for an encumbered movement? For a human player playing a movement card while being encumbered is also in a way a two-phase-decision (you choose your destination after being informed about the encumber effect). If the AI thinks to be able to move three cells but actually is only allowed to move two cells, how does the game execute a "move three cells"-decision? Does the game just cut the last step? And what if the movement without the last step isn't unique? Or is the AI smart enough to include encumber effects into its calculation?

    Just some thoughts that came to my mind while answering you.
  5. PhoenixTheHunter

    PhoenixTheHunter Lizardman Priest

    At least in Multiplayer mode would be interesting to see the AI losing time on its clock for this reason ;)
    DARK MAGIC and Sir Veza like this.
  6. Kalin

    Kalin Begat G'zok

    The "cancel action if target unavailable" might be deliberate for things like the target using Dodge or Jump Back to get out of range.
  7. Scarponi

    Scarponi Moderator

    Iirc, if the AI plays a move card, and then the game informs the AI it can't get to it's intended square, it simply defaults to staying put. Basically it chooses the square it's already occupying.
    But one cancel is a player initiated coding (specific to how the AI handles it's play decisions) which occurs after moving, but before selecting a target, the other is a game initiated scenario where Jump Back or Dodge will terminate the attack on a selected target (assuming it removes the character from range) at the game code level (granted I'm not a coder so I grant I may have no idea what I'm talking about).
  8. PhoenixTheHunter

    PhoenixTheHunter Lizardman Priest

    So, I could exploit the AI by encumbering it enough and it won't move anymore? Pared with terrain attachments this seems to be a way too easy strategy to win. There has to be intelligence in this AI, at least some.

    More and more I would like to have any scripting ability for CH so that I could try my best to turn my chars (in Campaign mode, of course, I don't play much MP and don't want to risk anything or offend other players with this) into a better AI. Wouldn't that be great, pick your deck and a strategy script and watch the game AI battle your automated team? If a game would do this the right way, the game's AI could even adapt to the scripts of the players to further improve itself. So, two things I'd like to see in a game: scripting ability and a learning AI based on player scripts. Is there something of that type already out there? But I guess, I'm getting a bit off-topic here.
  9. Scarponi

    Scarponi Moderator

    Actually, I think I was remembering incorrectly (though I have seen the behavior described above), I definitely have seen an encumbered AI move to it's not-originally-intended-square. The best example is the rumbling mutants on one of the EttSC maps. They will set up for charge 6 (even if already encumbered), and then charge, but not be able to reach you moving only 4 squares (for most cold effects) rather than the full 6.
    Sir Veza likes this.

Share This Page