The State of Heroes of the Storm A.I

After something like 50 “solo vs AI” matches, i can tell that there’ve been some changes, both good and bad, but unfortunately it’s still far, far away from an acceptable AI (like that from two years ago) :frowning:

Good changes: AI won’t stand at the gates doing nothing and waiting for allied minions, they’ll channel gems (Spider Queen) and dobloons (Blackheart), and they’ll even try to defend their cores.

Bad changes: allied AI won’t ever board on Triglav even if you spam ping to help or follow, and will never pick up turrets or emitters if you’re alive (even if you already carry one).

No changes:

  • some heroes AI totally useless (Vikings are simply cannon fodder, Whitemane won’t stop inquisition channeling even if near death, Malthael will follow enemy heroes up to the gates dying by the towers, and so on…)
  • AIs have still an “hard-on” for regen globes; i had an “elite” Varian AI dying under the enemy gate because he absolutely had to take one globe, even if he had only a few hp left and was subjected to the call-for-help armor penalty :sweat_smile:
  • if you ping allied AIs to follow they will just follow doing nothing unless they’re threatened (e.g. if you want to take a camp you have to put yourself in a way that pinged AIs are also attacked by the mercenaries)
  • many AI healers will almost never heal you, even if their abilities aren’t on cooldown, pretending you don’t exist on their radar; Lúcio, for example, will keep the speed boost most of the time, even if you’re poisoned and 1 hp from dying.
  • AIs seems to follow all the same rules, with no difference for their roles… so you’ll have a Morales trying to take a siege camp alone, or a Deckard pushing solo the bot lane on Infernal Shrines while you struggle on the objective on top lane :expressionless:
  • AIs will still ignores some objectives like nukes on Warhead Junction, or, at least, it seems that varying the difficulty level, they have to follow certain behaviours… at recruit level they’ll leave at least 1 nuke to enemy AI, at adept level they’ll leave 2, and so on. I noticed the same behaviour with other maps as well.
  • An increase in difficulty level will also increase a “cowardly behaviour” of allied AI; while at beginner and recruit levels they’re ok, once you go up you’ll find yourself “abandoned” most of the time you have to contest objectives, even if your allies are full hp/mana.
  • The same difference in difficulty level can be clearly seen in some maps; in Hanamura, for example, at beginner and recruit level you’ll see your full team ready as the payload spawns, then a single enemy AI will approach (and die alone), then another 2 or 3 enemies (which will die or flee). At adept+ levels, even if your team is ready at the center, as soon as a single enemy approaches your allies will flee. If you ping to help they’ll come back one at a time, dying miserably in a 5-vs-1. The same thing happens in every map.
  • Some AIs are still “broken”; for example when Hammer AI put herself between the enemy central gate and the nearest Shaman camp on Battlefield of Eternity, she will continue to enter/leave siege mode never leaving that zone until the end of the match, even if pinged to follow (and she won’t leave even if you hearthstone).
  • AIs are totally unable to evade boss attacks, both when defending from one and from trying to take one. Also, on Hanamura, allied AI will try to take the Samurai camp one at a time, taking full slashes and usually dying or retreating with a few hp, while enemy AI will do the same in a 3 or 4 group. On other maps, if i ping to take the boss, the first allied AI who reaches it will immediately start attacking without waiting for reinforcements (and usually dying, if he’s a healer).
  • To be honest, i found no noticeable variation in AI levels (with the above mentioned exceptions); playing against an E.T.C. at beginner or elite level is not really a big difference. The real problem lies in team comps. While at beginner and recruit levels you’ll always have the same heroes and somewhat balanced teams, at adept+ you’ll find the same clownfiesta of QM matches… if i play Raynor in a team with Anub, Abathur, Whitemane and Medivh against an Arthas-Xul-Rexxar-Stukov-Lunara on Braxis i’ll have one hell of a match :expressionless:
    Even worse if you try to play Coop vs AI queuing solo; your team will most probably be totally mismatched (no tanks, 4 healers and no dps, etc.), against a more balanced team on a totally incompatible map.
7 Likes

They have utterly boned this one. This is a well written critque. They need to roll everything back and try again. I’m more than willing to live with pre-patch AI and tower behavior while they work on it longer in PTR. But until they do, I’m done.

2 Likes

Been noticing the AI has been a little smarter. Last patch, they would stand right at the gate at the start of the match and eat projectiles, while also suiciding over objectives. It’s been a bit better lately, with the AI rotating away from objectives it probably can’t take to ones that can, and they’ll lane when a fight is unwinnable.

Still a few catches…
-The AI is disproportionally terrified of certain abilities. Deathwing demonstrates this the most, as they will happily walk through the fire breath, but will avoid the magma puddle even if it means taking longer to go around or letting a team mate die. Also, they are utterly terrified of Brightwing’s Arcane Flare.
-They don’t seem to understand when a target is Unstoppable. Most pronounced when using Deathwing, but had AI Stitches try to hook Jo a few times.
-Lower awareness when swapping lanes. Sometimes you’ll bump into an AI swapping lanes and, even if the fight is favorable, will ignore you.
-Doesn’t chase. The AI has a tendency of letting low health targets live as long as they are far enough in the rear. Granted, the AI has gotten better at saving kill shots like Qhira’s ult for when it matters, and Genji is spot on, but I’ve had Kharazims not chase an easy kill.

Much better than when it would sit around at the start and let Gul’Dan spam Felfire at it.

1 Like

The AI doesn’t dismount almost all game, just runs circles around me and literally bodyblocks me to death in teamfights. Until it doesn’t take damage it remains passive, even I ping attack x enemy in its melee range. It does the same thing against minions and camps. I literally outsiege a Fenix bot as Tyrande. It is so useless it’s better to leave it on the base, because its value is zero and at least it can’t feed that way.

1 Like

Espero que cumplan, que se realicen los cambios y no dejen esta AI sin hacer nada (si antes medio servía en lìnea ahora no…). Va año y medio con dos ùnicos mapas de Brawl( y hay varios mapas de brawl, tambièn los de eventos… y aquì seguimos), y seguimos asì. Hasta qué punto les debemos creer? mapa en vertical y horizontal, y son el mismo… decepciòn.

Exitos en los cambios que realicen, pero asì sean pocos finalicenlos. TY.

1 Like

Hi Teo!

Thanks for your notes! I can give you some insight into some of your points.

The reason why AI ignore Deathwing fire breath is because we made a conscious decision for them to ignore it. Otherwise, AI agents would be constantly running away from Deathwing. This is due to our pathing system. It isn’t sophisticated enough to navigate around dangerous areas like how a human player would. Unfortunately, “fixing” pathfinding is not a trivial task as it would require substantial engineering efforts.

The AI think tree can check target states like unstoppable. It might be the case that Stitches isn’t checking that his intended hook target cannot actually be hooked. I will note this for investigation.

This was also a conscious decision we made so that agents prioritize their activities near objectives instead of engaging enemies while traveling to those objectives. It’s to prevent them from becoming too distracted. But maybe it’s too passive?

Yes, this is definitely something I am watching closely. It’s a tricky issue to solve because chasing can very easily get the agents killed. I think it’s best to be on the side of caution for now, though I am not opposed to pushing agents to be a little bit more aggressive in the future.

6 Likes

Some little issue i found: Alextra Bot use her heal but dont stay in it. She always try to walk in and out

2 Likes

Btw i like how much love you spend on the AI. I currently working on the Legendary Custom Bots in Overwatch and i know how hard AI design is :slight_smile:

3 Likes

I had a brawl the other day each team had 4 AI. Every time we wiped the enemy team they instantly went back to take our turret camp and then the enemy torrent camp.

Needless to say my 800 stacked butcher didn’t mind them prolonging the game.

Hey BlizzKGu,

Cheers for your work on the AI, I’ll agree with the others and say they are no replacement to a human player, but sometimes they can be amazing. A Greymane pinged to a Butcher player can lead to some devastating burst.

What I wanted to ask,
-Is there a way to get the AI to take shortcuts? Like having an Imperius or ETC jump/Slide a wall, or a Johanna to Falling Sword to enter or exit a fight over terrain? Especially on Braxis, but useful on others maps too.
-Could ability control somehow be handed the player who has pinged the AI? even if it’s just the level 10/20 talents? That might go some way to giving
coordination back to the team down a player.

2 Likes

Who cares about ai lol out of all the things to do to fix the game you work on ai. Guess your goal is to make every one who wants to play good leave, ban every one who types, let feeders run free. I mean you got a guy just tanking matches to see how long it takes for you to ban him. What are you making a single player moba pve hahaha

Happy to see the AI tweaks introduced in patch 50.1! I swear someone trolled us with their Deathwing pick -> AFK 5 minutes in. I couldn’t understand why Deathwing was in the air for so long!

I appreciate the recent Leaver AI change where the AI goes back to base and stays there until called by a player. Is it possible to do a party vote to park the AI back in base if things don’t work out?

Hey, thanks for the comment.

Good question, I can provide some insight into how an agent would approach each situation.

The way AI travels to a Goal (like a map objective) is the same as a move command. It’s the same as if you right clicked a tribute and just let the game take you there. This is our pathfinding at work and it’s what our agents use for traveling to Goals. While it will get you where you clicked by taking the shortest route, it does not consider other possibilities like flanks or shortcuts. Those types of decisions are simple for human minds to make, but would require a much more sophisticated pathfinding system for AI to replicate.

Once agents get within a certain range of their goal they will then begin using Tactical fight logic (using abilities). Imagine a bubble around each objective where they say “OK, I’m nearby, lets fight!”. All targeted hero abilities require a point to use. The point is found by nodes in the AI tree if the appropriate conditions are met (things like target must be below this % of health, or find the centroid of a group 3 or more of units who are X distance from each other). It’s entirely possible for a Johanna to Falling Sword onto the enemy across terrain, or ETC to slide across walls to stun someone, if the right conditions are met.

“Escaping” really just means that the Goal system has determined that there is another Healing fountain/Healing altar/objective/lane/camp on the map that is more valuable to be at than where we are right now. Because this is determined by the Goal system it will use the pathfinding system, which as I have said earlier is not sophisticated enough to find alternate paths such as sliding across a wall. Now, is it possible to “program” this behavior into the Tactical tree? Yes, it’s possible, but it isn’t straightforward or easy, and can bloat the Tactical tree and make it harder to navigate. It would also undermine our separation between the Goal system (agent movement) and Tactical system (ability usage).

TL;DR - we would need a more sophisticated pathfinding system in order for AI to attempt alternate paths to their Goals.

It’s an interesting idea, I think I’ve seen it suggested before. I can imagine maybe putting in a new ping to direct agents who are following a human to only use their heroic abilities on the pinged target. I’ll add as possible future improvement, thanks!

8 Likes

Had a Whitemain AI that I swear never cast Desperation Plea. Total MVP material.

1 Like

Thanks a ton for this explanation. Love the interaction with the community.

2 Likes

It’s great to see the feedback!

How does is affect the AI. difficulty? Are you working on all difficulties or are you working on the hardest AI. Could the AI in ranked be the most difficult one? That would help a lot when people disconnect.

There’s something i really don’t understand about the “Goal System”: why does it change with the variation in difficulty levels?

As i mentioned in a post above, when i play a “solo vs AI” game, the ally AI (which, i suppose, is the same AI that replaces a disconnected player in a QM or SL game) usually prioritizes the objectives of the map when they spawn (curse, nukes, payload, etc.) at beginner or recruit level, while at adept+ levels it seems even to “forget” what or where the objective is, prioritizing other things like camps or lanes.

As a side note, is there any chance to differentiate AIs behaviours based on roles? I find almost comical that an AI Morales or Deckard tries to take a siege camp or push a lane alone while the rest of the team dies at an objective.

4 Likes

It’s good to see that you are working on A.I. but really, when are you just going to add a surrender option?

I just played a game where our Hanzo left and we had to play with A.I… Not only do I now have to control my own character, I also have to micromanage an A.I. that just stands in the cleave of bosses, thus losing 30% of its HP. It’s just awful. Let me surrender vote is somebody is gone for more than 5 minutes or let me leave without punishment.

The developers already said it many times, there will never be a surrender option for HotS because “many reasons”. However, with the current AI, the game experience is really far less enjoyable.

Before the current patch, many players lamented that AI was terrible because it was lacking in the “macro section” and was a feeding machine (for example, if a player was trying to reconnect the AI just “freezed” wherever it was, even in the middle of a fight).

Now the AI must be pinged to follow, but the “follow option” is severely lacking; first of all, i noticed that the AI will do nothing unless it is directly threatened, that is, the hero who pinged the AI will have to put itself in a dangerous position just to have the AI “do something”. Even then, what follows strictly depend on the hero AI; some are really good, especially ranged ones (i’ve never seen a “real” Chromie or Ana with such a perfect aim), some not so (the damn Lucio with the active speed boost when the entire team is dying).

Also, it’s a complete mystery why the AI won’t follow the other command pings anymore; i remember the “good times” when i pinged the AIs to deliver the gems or to take a nuke and they followed the orders obediently.

BTW, one of the good things about the “solo vs AI” game is that there’s alread a “surrender option”, you can simply leave the game and start over, sometimes it is really necessary for your sanity; i just had a game as Imperius (a solo laner) in Tomb where my AI team (adept level, i just needed to relax :stuck_out_tongue:) was just feeding the enemy team… in the first 3 minutes my team had 10 deaths (5 Malf, 3 Cassia, 2 Kerrigan) and only 2 kills (mine as Imp), “we” were almost 3 levels down and the top and mid keeps almost gone, and i was desperately defending bot lane from the siege giants and 3 enemies while pinging - without success - my “allies” to help me (they were trying to take, as a full 4-men team, our bruiser camp :roll_eyes:)
If that is the AI that should replace a missing player… well, there’s something really, really wrong :expressionless:

1 Like