Quote:1. AI units never try to break a wall [ILSe].
Probably we can improve that.
Quote:2. AI does not effectively chase a unit down.
Also can be improved right now, see point 15.
Quote:3. AI uses earth to mud and spell lock [FrancoK] where and when it's useless.
We can converge to point 4, below.
Quote:4. AI spell selection is suboptimal.
AFAIK AI as a list of spell and how likely is it casts it.
We can change the likeliness of a spell to be cast (easy, if you know where the value is stored), the fact some spells are mandatory or forbidden in certain cases (requires AI rewrite, IMHO) and combinations of spell/units/situation that are desiderable (AI rewrite as well).
Examples:
Guardian Wind on a unit with Missiles imuunity is wasted, like regeneration on a War Troll.
If a lone Slinger faces 4 bowman, Guardian Wind is the best defensive spell, if 4 spearmen face a slinger Warp Wood is the best defense (even if it is an offense spell).
Quote:5. AI enemy target selection is poor.
Examples?
Quote:6. AI wastes too much mana in battle for no reason: losing battles, winning battles, node battles (AI's spells are dispelled).
Looks like point 4 for me. Differences to that point?
Quote:7. AI fights out losing battles, which wastes units (in addition to mana).
Do you mean a single spearman attacking a deadly stack? Isn't it to be considered in the general AI?
Or perhaps you mean a single spearman attacked by 4 warlocks? Should he retreat?
Quote:8. City wall gate can be defended with 3 units and AI does not act if path to preferred target is blocked.
Not sure. Do you mean when there are 3 attacking units outside the door, the other foot units stop moving forward?
Quote:9. In some cases, AI unit speed is lower than human unit speed due to the 0.5Movement Point calculations, tree and elevation obstacles. [NOT AI bug, but general game problem which should be fixed by Kyrub].
I think the routine is the same that calculates the external path, fixing one should fix both.
One quick fix is to tell the routine to calculate the path of a unit with a single movement left as if it was flying. This should remove the terrain bonus/malus calculation and straight the path.
Quote:10. AI does not protect its heroes, ranged units, and low HP units.
Except for recall hero, if AI sees it is in danger or fleeing (and losing heroes and units).
Suggestions?
Quote:11. AI spell casting is too predictable and repetitive.
This works the opposite way of point 4. The more a choice is random, the less is predictable and good, the more a choice is "the best possible", the more is predictable and the less is random.
I preferer the MoM way: Always a chance for the unexpected, but mainly predictable.
Quote:12. AI range attacks are inefficient.
You mean the point 14? Or there are other examples?
Quote:13. AI does not consider its own available mana reserve and may drain it, which is suicidal in some cases.
Agree.
Quote:14. AI does not use the move and shoot tactics.
And it should.
Quote:15. AI does not use the 50 turn draw tactics, which humans heavily exploit. [Not an AI bug, but a human exploit, which Kyrub should fix].
The 50 move = draw is not an exploit is a rule.

The bug is that the AI units are not chasing a running unit effectively.
The fact two spearmen cannot beat a cavalry if the latter is running is not a bug or an exploit, it's a tactic and the AI should use it.
The fact a swordman cannot corner a running spearman in a closed (by boundaries) but empty field is an AI bug.
This can be quickly fixed this way:
Right now the attacker check the XY difference from the target, then moves to decrease the longest difference.
So if DeltaX is 10 and DeltaY is 6 it moves forward the target to make DeltaY = 9 and DeltaX = 6.
When the are the same, then decrease both.
So when DeltaX is 6 and DeltaY is 6 it moves forward the target to make DeltaY = 5 and DeltaX = 5.
Instead it should always move to decrease both.
So if DeltaX is 10 and DeltaY is 6 it should move forward the target to make DeltaY = 9 and DeltaX = 5.
This should fix the chasing problem, but introduce a new dilemma: if there is an obstacle in the closest path, should I move around left or right?
It not a silly question (there can be more than 1 obstacle) and we can discuss it later in detail.
Right now we can solve it using a random move.
Of course ther are more complex tactics ( I.E. walk in a line 2 step from the closest friendly unit to the single enemy, if each of our unit can kill it), but we can implement it later.
Quote:16. AI does not use knowledge about its enemy's mana and skill in battle.
And it shouldn't.
As we do not know AI skills (left) and mana (left) so AI should not know or use it.
Quote:17. AI does not estimate the importance of the battle to be fought and fights them all with equal (maximum) effort.
Not a bug, unless you think the AI should flee more often, but should avoid fleeing from important cities or its wizard tower.
Quote:18. AI does not exploit or capitalize on its own spells, such as call lightning.
What do you mean?
Merlin is always casting C.L. on my units very soon.
Quote:19. AI does not run away from or counter enemy exploits, such as wrack, call lightning, repeated shots from fliers and no means to counterattack.
While I agree it do not move flying shooter close to maximize damage, this fall in the other categories (point 14).
AI should not rely on exploits, IMHO.
Quote:20. AI does not learn.
And that correct, unless you want to employ
Josua.
Quote:21. AI does not estimate the enemy's capabilities.
And it should, but falls in other categories (spell choice, targets, etc.)
Quote:22. AI does go out of map on the South. When they are outside, then they can't be attacked, but they can still attack human player. [NOT an AI bug, but an interface bug].
As point 19:
AI should not rely on exploits, IMHO.
And there are other places where AI can't go.
I'll add:
23. The AI should make more difference between when it attacks or defends. IMO the attacker should try to kill all enemies, and stop (stand) only if the attack is nearly impossible (IE both wizards have cast all the spells and the defender still has an unwounded paladin, while the attacker has 4 sprites, AI should stop attacking).
Conversely the defender should avoid being killed as the primary target, trying to wipe the enemy only to avoid beng it by them.
Example1: 4 warlocks are attacked by 3 magicians and 3 horsebowmen. they should attack the magicians first, then the horsebowmen, unless the hbm are so close they can attack.
Example2: 1 flying draconian spearmen is on the door of a walled city and also there are 7 gnoll spearmen, they are attacked by 4 hammerhands and 4 paladins. The draconian should avoid attacking the enemies even if they are close to him.
The example2 sometimes happens (I also saw it on a youtube video), sometimes the AI attacks anyway.