I hate the fact that AI knows all your troop locations

I'm nearly positive the AI gets an advantage with unit visibility, in that if a unit is visible to the AI it can see where it goes (makes chasing transports and privateers much easier for the AI as it doesn't have to guess). But on the next turn, any unit that is not visible, the AI looses in the fog. At least AI behavior seems like this is the case.

As for the AI knowing resource placement before researching the tech, this is definatly not true.
 
If you're chasing their ships, can you follow theirs quite well? I mean, with ships in the open water, if you see the direction they start to move, it's not hard to guess where they're going and chase them.

I prefer patrolling my coastline, much less futile.

My guess is that you (ie. all players) don't notice the cases where they guess wrong and go off on a completely weird direction, but when they beeline for your one unescorted unit, you definitely notice that.

Every time I have my ships as an easy target, the AI seems to just know how to hunt it down and kill it. Especially since I normally harass them at the either their or my coast line to prevent them getting into open water and being able to hunt down my small stacks of ships.

I agree. I had a game awhile back where I had an unescorted Transport convoy ferrying troops to another continent. I was constantly playing cat and mouse with the enemy Destroyers but I was almost always able to elude them. There was certainly no indication that they knew where those ships of mine were. They were able to survive for many turns until I finally was able to provide them with an suitable escort.

If it was a large enough stack of transports, the AI probably just didn't want to attack it because they feared it.
 
My understanding is that the blue circles are the locations that have the most resources in the BFC. So, the AI doesn't know what resources are where, but it does know that there are resources near by. The human has the same blue circle information available to him.
 
My understanding is that the blue circles are the locations that have the most resources in the BFC. So, the AI doesn't know what resources are where, but it does know that there are resources near by. The human has the same blue circle information available to him.

If I remember correctly, blue circles in BtS are only based off what you have seen, whereas pre-BtS the blue circles were based off all resources.
 
My understanding is that the blue circles are the locations that have the most resources in the BFC.

Not necessarily, there are a number of factors that are considered when a blue circle is presented, not just resources. Distance from the nearest city is one of them for instance.
 
If it was a large enough stack of transports, the AI probably just didn't want to attack it because they feared it.

Why would a Destroyer be afraid of a bunch of Transports? And it wasn't that large, only about 4 of them. The AI especially likes going after anything that can move troops so there's no way it would just ignore them out of fear, it would simply bring in reinforcements to help out. If the AI could actually see those ships, that area would have been bristling with Destroyers trying to hunt them down, but there was only a couple of them doing standard patrols.
 
Why would a Destroyer be afraid of a bunch of Transports? And it wasn't that large, only about 4 of them.

If it was 1 or 2 destroyers, the formulas used by the AI may have determined that it was too risky to attack.

The AI especially likes going after anything that can move troops so there's no way it would just ignore them out of fear, it would simply bring in reinforcements to help out. If the AI could actually see those ships, that area would have been bristling with Destroyers trying to hunt them down, but there was only a couple of them doing standard patrols.

That would make sense, but on land the AI effectively ignores my stacks until they reach the city walls and then it throws a couple of seige weapons at it, but that's it. Even when my stack could be destroyed by the AI's wandering, unstacked troops, if the AI stacked them, it doesn't do that. It just wanders around in it's territory.
 
If it was 1 or 2 destroyers, the formulas used by the AI may have determined that it was too risky to attack.

But it had attacked the convoy, a few times. First I lost it's Destroyer escort then I lost a Transport. On another attack it lost a Destroyer. So obviously it didn't consider the stack to be too risky to engage. In fact, if it would attack with a Destoyer as escort, it's not going to be too concerned about a bunch of Transports.

That would make sense, but on land the AI effectively ignores my stacks until they reach the city walls and then it throws a couple of seige weapons at it, but that's it. Even when my stack could be destroyed by the AI's wandering, unstacked troops, if the AI stacked them, it doesn't do that. It just wanders around in it's territory.

The AI responds differently to ships at sea that it knows could be carrying troops. It likes to make pre-emptive stikes in those situations in order to take them out before they can land. It's a totaly different response from a moving stack on land since the units in the Galleon/Transport are essentially helpless and can't fight back. All it has to concern itself with are the weaker ships that are carrying them. Galley/Galleon/Transport convoys are prime targets for the AI at sea.
 
OK, sorry to keep you guys waiting. Here's my screenies. Now I want somebody explain to me what is happening.

As I said before, we are at war with the dutch. Here, I open the WB and place a transport in the middle of the ocean. It's directly north of my landmass, far away from dutch land. No units in sight here, the battle takes place between mine and dutch islands.

I also place a dutch destroyer, exactly 8 squares away from my transport (the movement range of the destroyer)



I exit WB and hit next turn.



And BANG ! There goes my transport.



(sorry about other messages, a lot of stuff happening in other locations of the map.)

Now somebody explain to me how did that destroyer now there was a transport directly west of it's location ? The area is not scouted, no airships around, nothing. He shouldn't know.

When I place the transport 9 squares away, the destroyer simply heads for the dutch mainland. (even if the transport is loaded)

As for my other assumption, (the AI's ability to distinguish between loaded and unloaded transports) I couldn't reproduce my results with my tests. But I'm sure something fishy is going on in that department too.

Willem, sorry but I'm kicking Willem's ass pretty bad in this game. I hope it doesn't hurt :lol::nuke:
 
Nice example CoZe! Can you reproduce it with 2 Dutch Destroyers and 2 Transports of yours in opposite directions? Where would the Dutch Destroyer end its turn if you hadn't placed your Transport West of it?
 
If there was no transport, or a transport out of range, it heads back east, towards the Dutch mainland.

It seems like AI has a fog, but it's range is not the visibility range of the unit but the movement range.

Now, for two transports, I have to DoW willem first.


two transports, two dutch destroyers, placed 8 squares away from transports, east and west.



hit end turn



both of them gone ...




Now let's make things interesting ... four transports, located four primary directions, four destroyers



(you don't see the north transport here, didn't fit in, didn't want to zoom out)



all four gone ...

 
Thanks, CoZe, this is very convincing...
I can only guess that all units' missions are calculated only once at the beginning of their turn (and not updated while moving) which requires to know the whereabouts of all enemies within their movement range. Otherwise it would probably be too chaotic in the late game with its many fast moving units. So the human can adapt -- the AI needs precognition...
 
To poke through the code for verification, I recreated CoZe's test. Same setup: An empty transport 8 tiles west of a healthy AI destroyer (running UNITAI_RESERVE_SEA which was the WB default) in the middle of the Ocean.

During the AI turn, the destroyer runs CvUnitAI::AI_anyAttack() to look for victims. It first calls CvUnitAI::AI_searchRange() which sets its "searchRange" to its movement, in this case 8. It then checks all the plots in that range for either a "visible" enemy unit or a potential enemy city. However this "visible" check is only checking that the target is, for example, not a spy; it ignores the fog of war.

So, essentially, the AI destroyer can see every tile within its movement range and so it will then do some further checks to evaluate attacking the transport and will do so if it likes the odds and has no better targets. This is why CoZe saw the Destroyer attack his unit when it was 8-tiles away but ignore it when it was 9. Note that from what I saw there is no differentiation between an empty transport and a full transport; hey both look the same to the Destroyer.
 
In other words, AI fog = move range. I'm guessing this applies on land as well, and explains why that knight came out of nowhere to snipe a unit that wouldn't be revealed to it without it sacrificing itself.

This seems to cut both ways though - the units don't consider targets outside their range, even if revealed fog-wise then? There must be something coded for "threatened city" such that the AI funnels units there at least since I see a ton of that.
 
So AI Explorers can see Goody Huts through the forests, AI Destroyers can see Fishing Boats which they can pillage, AI Airships scout my land because they are bored. (?)
 
So AI Explorers can see Goody Huts through the forests, AI Destroyers can see Fishing Boats which they can pillage, AI Airships scout my land because they are bored. (?)

To be facile, anyone see the South Park Election skit? And more importantly, I'd heard this before, but spent all day learning it (try this guy, I don't do Youtube atm, but he aint bad, my piano rings a bit more than his)...but bliss, and for friks sake guys stop arguing, who cares, if it cheats it does, we still win, ...if it doesnt, its ahit and we should still win, ahhhh....mellow yellow... http://www.youtube.com/watch?v=sKIs-1IoaZQ&feature=related
 
Thanks Coze for settling this disputed matter! Now we have removed yet an advantage the AI possess so that we can win even easier :p

I'll be sure to escort my ships better in the future or check there are never workers within enemy units' movement range!

Technically we could do the exact same thing without cheating by moving our units with save/load, of course no won would bother to check every possible movement direction. I'm betting quite a few players would load if moving a full unescorted transport if it moved right into sight of an enemy destroyer etc.... Not that it is very sporty!
 
In other words, AI fog = move range. I'm guessing this applies on land as well, and explains why that knight came out of nowhere to snipe a unit that wouldn't be revealed to it without it sacrificing itself.
Land units look a little further, probably to compensate for roads.
Spoiler :
Code:
int CvUnitAI::AI_searchRange(int iRange)
{
	if (iRange == 0)
	{
		return 0;
	}

	if (flatMovementCost() || (getDomainType() == DOMAIN_SEA))
	{
		return (iRange * baseMoves());
	}
	else
	{
		return ((iRange + 1) * (baseMoves() + 1));
	}
}
So, for example, a Swordsman running a 1-range search would consider everything within 4 tiles (1+1)*(1+1) and a Knight would look within 6 tiles.

continued... said:
This seems to cut both ways though - the units don't consider targets outside their range, even if revealed fog-wise then? There must be something coded for "threatened city" such that the AI funnels units there at least since I see a ton of that.
Oh no, there are a ton of possible considerations including those where they will look beyond their movement range... but the mission selection is always first-come, first-serve and that initial attack choice is looking within movement range.

For a RESERVE_SEA unit like the tested Destroyer:
  • its first priority is actually resource-guarding. It looks to see if there are any resources it owns that need protection and will go do that if it finds one.
  • Then it looks to see if it is badly damaged and needs to heal.
  • Then it looks to do the within-movement-range attack noted earlier.
  • Then it checks if it can bombard something nearby (6 tiles in this case, hardcoded).
  • The next move is "protection" which is actually what gets tripped in the 9-tile-away case on my test. It looked pretty damn well all over the map (I didn't notice a restriction but I wasn't going to sit through each an every water tile being checked) and found a Galleon of mine in its territory that it could easily kill and so it moved towards that Galleon.
  • And there are a bunch of other choices to fall back on if it hadn't found a protection mission to do.

So I'd say that the AI probably can see all over the map in some circumstances, but the most common mission choices are only looking within one movement range and so the biggest threat comes from there. You could come up with a thousand different situations to test and still not cover everything. For example, would it go after the transport if I didn't have any other naval units at sea? The AI decision-making is really complicated and not something I've spent much time with since there have been plenty of simpler bugs to occupy me. ;)

Of course, in the end, it probably needs to look everywhere. Can you imagine how bad it would fight if it respected the fog of war? :p
 
I know the load message. There's no fog for the AI. What I'm saying is that it's not fair and it doesn't make sense. And that GG never died cause I'll be continuing from my autosave and his transport will cruise in the safe waters this time.

Actually there is a fog, but unlike player, AI can use gold or something to buy it off. It's not free for them anyway. Read this from some Soren's interview.
 
I think part of this may be to compensate for our human ability to "remember." I mean, I know if I see a transport snake through my destroyer in the open, even if it ends its turn outside my fog of war, I know it's there. If the AI only considered its fog of war, then it would probably just keep running in circles in the middle of the ocean. I guess you could give it a limited memory as well, but that just adds more elaborate coding.

I mean, knowing this, you can trick it. Say you're fine trading a transport for a destroyer. Part a transport 8 squares away from them, and a battleship right next to it. They'll see the transport, but not the battleship, take you out, then be a sitting duck.
 
Top Bottom