How complicated would it be to give the AI some kind of help for cheating. What I'm thinking of is to add some hints for the AI into the map itself. Important directions to expand or areas that should be handled as independent economies for example.
It would be very complicated and not desirable. Reason is that if we implement a special cheat or even a bunch of them per map the AI on the map would be predictable and this would mean you only need to find out what the Ai will do to develop a counter strategy in an instant. Furthermore these "cheats" would differ from tribe to tribe. This is against the concept of having a map and tribe agnostic AI which works sufficiently (although far from perfect) on every map with every tribe in any circumstance.
not necessarily. Some of those things could be implemented without much hassle and without being a problem. For example, major areas that should be linked by highways. Marking that would simply ensure that the AI tries to keep a straight road without long segments between two such areas. Doesn't make it any more predictable, and the AI can work without that anyway.
But I agree it's probably not worth it.
Perhaps we could have the program count the total amount of buildable space in the map and divide it by the number of players, giving a measure of how much land every player can expect. The higher this number, the more the AI will try to avoid 3 steps roads; the smaller the number, the more the AI will try to salvage as many building sites as possible.
counting them might be possible as we just need to go over the map once and count the buildcaps without taking immovables into account. I implemented this interface lately to count the reachable land for territory win conditions. This might indded be a measure for 3 steps road allowance.
But if AI starts on small island and remote spaces does not matter at all and it has to save as many buildable spots as possible?
that's just a very rare situation. of course we can't make AI fit for each one of those. a human would have trouble adapting to some without knowing the map in advance.
If the algorithm is coded to save build spaces, and it's not a big hassle to estimate the amount of buildable space on the map, then changing the algorithm so that it adapts the rreciprocal value of straighter roads against conserviing build spaces depending on map size would be a good idea.
Only problem I can think with that is that such a value would need to be codifed for the map. I recall the AI does not save any kind of information, and it would greatly slow the game if the AI had to recalculate the factor every time it makes a road. So the AI should be able to calculate the factor once, store it and keep using it for later.