Coding frustrations with AI

Published on Sunday, July 14, 2013 By Brad Wardell In Elemental Dev Journals

Since the beginning of Fallen Enchantress, people have claimed that the AI monsters will sit next to any enemy city and not attack.  They concluded that the monsters were giving AI players a pass. 

I have responded that I have looked at the code over and over and the monsters do not treat computer players any differently.

Well, tonight I’m seeing the behavior very starkly.


These ogres should be wiping out this AI city.


The code says that the ogres want to wipe out the AI city.

They are explicitly targeting it.


And yet..

The attack never happens.

As a result, the monsters are just standing there, stuck outside the city.   Now, I’ve got a few thousand hours of game time on this and this is the first time I’ve seen it where I knew it should be attacking (i.e. I’ve seen well defended cities with monsters outside).  So it’s not that common.  But based on forum feedback, it’s definitely something others have seen.

Now, I have to find out why they are being prevented from attacking.

Stay tuned..


Update 1: Seems to be path finding related. This is going to take some digging.


Update 2:

New check in.

+ AI Removed conflicting code that caused monsters to behave outside the control of the AI
+ AI Monsters more careful about leaving their lairs unguarded.
+ AI Updated the area threat evaluation to include stationed units.
+ AI champions significantly better about taking out enemy outposts and grabbing goodie huts on the way to another destination
+ AI better at building more lethal armies
+ AI much better at protecting its cities
+ AI fixed a bug where certain AI personalities had a chance of not building units when they should depending on the type of city
+ AI more aggressive about training units when it feels that city is vulnerable
+ AI no longer has a "auto patrol" system. Instead, the monster AI directly controls monsters and not the mobileobject system.
+ Fixed a pathfinding bug that caused monsters that were calculating a destination to not be able to set a destination IF the target was 1 tile away and it is a city.