Version 0.60 Discussion Thread

I did run into a strange bug I want to track down -- two tiles of "blockade" floating in the middle of a coastline with no hostile units nearby.

I saw that in both 0.50F and 0.60 games. Not sure if it's because of BetterAI, or a combination of BuG 3.5.1 as a mod with BetterAI merged in.

Look 2 tiles SE of Istanbul (my capital). It's outside the BFC (both times that I saw it in this game, it was outside the BFC of any cities).
 

Attachments

  • Mehmed XV AD-0515 War.zip
    350.9 KB · Views: 77
Just finished my 1st game with 0.60 (Huge, Marathon, Tectonics, 60% Water, No Tech Brokering). I won, but it was a long slog (35 hours instead of ~24 hours). I didn't really pull ahead until about 1920 and it took me until 2015 to win the space race. But the game was pretty much in the bag from about 1950 onwards.

Not sure whether it was the map that made this game more difficult then 0.50F or not, but it sure felt a bit harder.

Only odd things I saw were that Monty had a city with (3) GGs settled (+6 XP) and Justinian has settled (5) GGs (+10 XP) in a single city. Which feels a bit excessive. One is good, two is better, but three or more settled GGs for XP might be overkill.

Enemy attack stacks don't seem to be large enough for the map size in late-game. That's just a general observation of the AI's war plan in the modern age.
 
As a follow up, the one time I saw the floating blockade tiles, it was within a city's BFC and the only mod I have installed is BetterAI.
 
Note that blockades cover a huge area and that a blockade from the other side of a narrow continent can spill over to the side that is visible to you. This could be an explanation of these occurences. Of course, it could also be an entirely seperate issue.
 
Note that blockades cover a huge area and that a blockade from the other side of a narrow continent can spill over to the side that is visible to you. This could be an explanation of these occurences. Of course, it could also be an entirely seperate issue.
First, a blockade by someone who cannot cross the ocean ... shouldn't cross the ocean.

Second, I think in my case it was topologically impossible -- blockades are squares right? I am not certain.

I cannot remember if there was an island off of that coast that could be hiding a barbarian boat. I should load a save and check.
 
CarterEarth(32BtS) plus Better BTS AI 0.60
i managed to combine them and i wanted to share the best earth map with all the improvements and fixes from better ai.
 

Attachments

  • Carter32+BetterAI.zip
    1.9 MB · Views: 78
First, a blockade by someone who cannot cross the ocean ... shouldn't cross the ocean.

Second, I think in my case it was topologically impossible -- blockades are squares right? I am not certain.

I cannot remember if there was an island off of that coast that could be hiding a barbarian boat. I should load a save and check.

Yes, I believe the area is a 7 times 7 square.

I just offered the information because I once answered a question from someone who didn't understand where certain blockaded tiles came from and the earlier mentioned reasoning was the explanation for the weird occurence.
 
In the case of my game it was definitely a lone blockaded tile with no currently blockading source. But it's true that sometimes some of that blockade shading sneaks up on you!
 
I just wanted to note that I also came across a single, blockaded, coastal tile within an old game I played. Unfortunately, I don't have the save files anymore.

I'm almost certain that it was a bug. As there was no other ships in sight during the early ages.
 
I did make some changes to how blockades work several versions ago, they no longer spill over isthmuses as only tiles the ship can reach within 3 moves are blockaded. I'm guessing there's some kind of change in what squares the ship can reach between when the blockade is set and when it's lifted. I'll see what I can figure out.

EDIT: To be clear, I use the map "step" path finder, not the unit path finder ... only areas matter, plot ownership is irrelevant.
 
I did make some changes to how blockades work several versions ago, they no longer spill over isthmuses as only tiles the ship can reach within 3 moves are blockaded. I'm guessing there's some kind of change in what squares the ship can reach between when the blockade is set and when it's lifted. I'll see what I can figure out.

EDIT: To be clear, I use the map "step" path finder, but the unit path finder ... only areas matter, plot ownership is irrelevant.
The unit path finder is blocked by hostile units, I believe?

So take a unit that is confined to coasts.

Start a blockade along a coast.

Move a unit hostile to it so it cuts part of the blockade off.

Stop the blockade.

If I'm right, it will leak blockade tiles.
 
I have a save where an enemy galley is blockading uMgungundlovu, and on the next turn it stops its blockade but a single square remains blocked. It's always the same square, and it's particularly infuriating since it's my Statues city.

I'd like to continue with the game, so can anyone tell me how I can remove the blockade?
 

Attachments

  • MePoorStatues.CivBeyondSwordSave
    248.1 KB · Views: 68
Correct me if I'm wrong (which is highly likely):

in CvPlayerAI::AI_doTurnUnitsPost(), there is code

Code:
case 2:
				/********************************************************************************/
				/**		BETTER_BTS_AI_MOD						9/15/08			jdog5000		*/
				/**																				*/
				/**		Gold AI																	*/
				/********************************************************************************/
				/* original BTS code
				if (pLoopUnit->cargoSpace() > 0)
				{
					bValid = true;
				}
				*/
				[B]bUnderBudget = (iStartingGold - getGold()) < iUpgradeBudget;[/B]

				// Only normal transports
				if ( (pLoopUnit->cargoSpace() > 0) && (pLoopUnit->specialCargo() == NO_SPECIALUNIT) )
				{
					bValid = (bAnyWar || bUnderBudget);
				}
				// Also upgrade escort ships
				if ( pLoopUnit->AI_getUnitAIType() == UNITAI_ESCORT_SEA )
				{
					bValid = (bAnyWar || bUnderBudget);
				}
				/********************************************************************************/
				/**		BETTER_BTS_AI_MOD						END								*/
				/********************************************************************************/

That bold line there, isn't iStartingGold always equal to getGold()?
 
The Gold AI is broken, take a look at the screenshot, my AI leader is producing gold instead of switching to science even with gold reserves of 29000 and a research rate of 100%.

 
@Stmartin
You have got a point so long as we can be sure that getGold() doesn't change on it's second call. However even if it doesn't, I don't think it break's the code because iValid is always true now which it was before the better gold AI changes anyway. Will add it to the "to do list" of things to check out next time the debugger is fired up.
@Cybah
Do you still think it is broken? your example looks like an extreme case where it doesn't matter what the AI did.
Cheers.
 
A research rate of 100% can be increased by "producing" :science: in the cities. that would have been muuuuuuuuuuuch better for the AI.
 
@Stmartin
You have got a point so long as we can be sure that getGold() doesn't change on it's second call. However even if it doesn't, I don't think it break's the code because iValid is always true now which it was before the better gold AI changes anyway. Will add it to the "to do list" of things to check out next time the debugger is fired up.

iStartingGold is set before the loop, during the loop the player is spending gold on upgrades so the value returned by getGold() is changing. No problem there, but thanks for checking stmartin.
 
The unit path finder is blocked by hostile units, I believe?

So take a unit that is confined to coasts.

Start a blockade along a coast.

Move a unit hostile to it so it cuts part of the blockade off.

Stop the blockade.

If I'm right, it will leak blockade tiles.

I mistyped the edit which was supposed to clarify that I was not using the unit path finder ... as you point out, there would definitely be problems with the unit path finder. So that's not the problem.

There are other problems with blockades you only see when running in debug mode. If the AI sets a blockade next to enemy city A and then captures A on the same turn, then there are assert popups saying basically that the blockade was cleared without every actually being set.
 
jdog500,

Given that one of the implicit goals of Better AI is to knock players down a difficulty level :)mischief:), and given that a popular player strategy is the Liberalism beeline, could it be worth teaching the AIs when it could be valuable to beeline Liberalism? At the moment I assume AIs know a bit about the value of the Liberalism race but maybe it could be emphasised a little bit more, perhaps by giving each AI a relatively small chance each game to try the more direct beeline.

At the moment, good players are able to take advantage of the way AIs tend to avoid techs like Education, by teching it themselves and trading it to most of the AIs.

In my last Better AI game I got the impression Pacal was kind of beelining Liberalism and then onto Communism, which made me wonder whether you've already allowed the AIs to use this strategy...

I suppose more generally I'd like to know how AIs prioritise their techs exactly. If I understand correctly they'll value religion-foudning techs, military techs etc., but do they consider techs a few down the tree? Or is this too complex for an AI in your opinion? I think a little bit more unpredictability in the way AIs tech could be a good thing, but it would have to be well thought out as it could just as easily cripple the AIs further.
 
I like the idea of giving a small chance for an AI(depending of each AI's personality) to start to beeline to Liberalism. It has to be made very well though, with a lot of care about their personality, goals and means.
 
Top Bottom