Specific Bug Reports

I used the map perfect world and there are 16? civs in play.

I put graphics on low settings but still it keeps crashing during this AI turn!! I'm pretty sure I'm getting my arse kicked anyway by the world's biggest backstab ever! (I was at war with Ragnar then suddenly 10 civs declared war on me including my best buddies!!!). AI picking on a human player!

That looks like an old version of Better BTS AI ... there have certainly been crash bugs in the past. If you mouse over your flag in the bottom right you can check whether you're using the current release (0.60N I think).
 
Since the new version ive re encountered the bug where, after ending your turn, the game sits on 'waiting for other civilisations to end their turns' and never finishes the turn. Anyone else seen this?

Ill try and reload from earlier (I really want to play this game) but are there any other things i can do?
Ill try and post a save later.

I have certainly seen that before, though usually while working on Revolution ... if you have a save which reliably reproduces that using just BBAI 0.60 I would be very interested. Can't think of anything recent in this mod which would cause that.

Once it happens there's nothing you can do in game ... reloading a recent save or Autosave may work if it's not a repeatable problem.
 
Ok here is the save. Its using the 40civ dll version.
 

Attachments

  • juntau AD-1398.CivBeyondSwordSave
    1.9 MB · Views: 332
@Bad Player & Top Dog
Are either of you using a modded version, I mean are there any other mods in your game other then better AI? Is this the latest SVN, or is it the last official release, 0.6n?

Would be surprising if you'd found a critical bug in better AI 0.6n, hasn't been one found in months (at least not from the official versions, I don't know about the SVNs). Definatly post a save game where this occurs, I'm sure Jdog would want to run it through the debugger if there are no other mods in effect and you have an instance of a reproduceable hang (SNV or latest version).

yeah it's the better AI with culturally linked spawns. Thats the latest of that mod... i just thought you guys are the ppl to ask because that mod/thread is kind of small
 
That looks like an old version of Better BTS AI ... there have certainly been crash bugs in the past. If you mouse over your flag in the bottom right you can check whether you're using the current release (0.60N I think).

It's 0.40M better AI and CLS 1.1.2

The mods came bundled - i cant upgrade to the latest betterAI can I?
 
It's 0.40M better AI and CLS 1.1.2

The mods came bundled - i cant upgrade to the latest betterAI can I?

I don't know how CLS works ... if it just uses the BBAI DLL (my guess), then you can easily upgrade by just moving the latest BBAI files over. A lot has happened since 0.4!
 
Hi jdog I copied the files (left the dll alone) and it seems to be working fine EXCEPT! I have no foreign civs on the bottom right of the screen! Pressing the scores button does nothing!
 

Attachments

  • No civs.jpg
    No civs.jpg
    200 KB · Views: 282
Sorry, didn't notice this. CLS definatly has source code. You need to merge the source into better AI's source, and build a new gamecore. That's the only way to merge.
 
I've found a critical bug: Tactical Nukes have the "explore" function in your mod. Using this will lead to a crash (well, anybody thought something different? :D).

 
Well, that does look like a bug. Hardly what I would call a "critical bug", though.

On a related note, I did notice that the auto-recon function would sometimes cause a crash with air units that have extremely long range. I think I was using stealth bombers with +2 range? It was under the 0.60 patch, so perhaps it's already been fixed in 0.70. My guess was that it was trying to explore outside the available map space.
 
Bug : "galleass escorting galleons"

(I looked for corrections in betterAI 0.70 and didn't found anything related to what I describe, but Dont hesitate to suppress my post if bug is already known/reported/corrected)
---------------------

I played recently my first game on "Legends of revolution" 8.2, which includes betterAI 0.6n

I discovered an horrible bug, which I didn't understand immediatly, and let let me ruin an enemy transport horde with... 1 ship

My ennemy has something like : several caravels, many galleons, and *1 DAMN STUPID "Galleass"*
Btw, the galleass cant go on ocean squares, and as my opponent seemed determined to land on a specific point, just behind my Ironclad, he had to go around the whole island to reach it...

When I saw all thoses ships coming, I just (naively !) put my Ironclad between the landing point and them, and attacked to sink one escort ship, but I didn't understand why the ship went back the next turn, so I sunk another one and went in my near city to "protect my ship from attackers".
But then, the way was clear, so they went back.. so I came out again with my Ironclad, and so on...

Btw, the AI could have done MANY smarter moves, which includes
-NOT escorting ocean-able units with ocean-fearzors ones, (I think it's the easiest fix to help that poor AI)
-Landing on another point... the transports were "on" the target island, and close to another city...
-Split the transports from the escort ships as they were able to land this turn if only they used their 3 moves... (instead of 2, due to that ***STUPID*** galleass they were waiting for)
-Attack my Ironclad !!! In fact, after some tests, it appears they attack it AFTER having land their units, and are able to sink it after several sacrifices, but before the landing, I guess the escort mission just doesn't allow them to attack, which is why they passively wait, losing 1 ship per turn against a superior (but lone) ship.

This bug gave me many free naval xps, saved me at least 1 city, and then, when I let them land, gave me... many free land xps, as there wasn't enough troops remaining to pass my defense :p
The worse is... I didn't intended to abuse this poor AI !!! :goodjob:

Here's their navy's graveyard :
The exact intended landing spot is the hill w/iron (yes, my only and recently acquiered iron). If I dont move my ironclad, they just go back.. no drop, despite all thoses hills w/forest and my 2 other cities.
(Note : They didn't need that iron, and it was Pacal's one)
(Other note : I didn't see UNIT_AI_ESCORT_SEA or any other mission on the galleass, but I don't understand what else would have made them act like this)
(Yet another note : I got savegames and could still do some more tests (like disbanding that stupid Galleass using debug mode))

EDIT : Yeepee !! I reported a bug :woohoo: btw, thanks for all your damn great work.
 

Attachments

  • Escort bug EDIT2.JPG
    Escort bug EDIT2.JPG
    205.3 KB · Views: 304
Cybah, Woody1:

Both are fixed, will be in 0.76.

Balmipour:

Yeah, the AI doesn't handle mixed galley/galleon fleets well at all. The problem is basically that the AI had enough money to upgrade most of its transports to galleons, but didn't manage to upgrade the last one before launching the mission (galley also needs to be idle for a turn to be able to upgrade). The AI doesn't recognize the issue yet and pop the galley out of the transport stack, I'll work on that.
 
Just a note jdog, the galleass isn't a galley, it's more like a trireme-irconclad cross, it's available in the same timeframe as galleons, it's a cheap and strong coastal only attack/defense unit.
 
While reading through this thread...

http://forums.civfanatics.com/showthread.php?t=286180&page=4

...I stumbed over some bug reports in the AI logic posted by DanF5771. I don't think all of them have been addressed or at least considered for Better AI mod yet, at least the newest ones probably not:


- Post #148:

BTW while looking at the code in AI_isFinancialTrouble() again I'm afraid I found yet another minor bug: the foreign trade deficit is actually subtracted from the inflated costs --> an AI's risk to get into financial trouble is decreased by spending a lot of /turn to buy resources.



- Post #121:

iDemandRebukedWarProb suggests that the AI will switch to a Limited War directly after rebuking a demand, but there is currently no such thing implemented in the code! Setting the values to 100 and repeatedly rejecting their empty threats had no effect at all, except the usual "-1: You refused to give us tribute!". So currently these leader values are completely irrelevant.


- Post #121 as well (regarding the mechanics of AI bribing other AIs into wars):

Then there is most certainly a bug in the code:
Stalin compares the two values and if (iTheirValue > iOurValue) he puts another tech on top of the deal!!! I'm sure it should be the other way around, Suleiman should get a second tech only if one tech is not enough to cover his costs. There are
further attempts to level the difference between iTheirValue and iOurValue by trading gold (iGiveGold, iReceiveGold) but the amounts are capped at the leader's AI_maxGoldTrade. {There is a minor bug in this calculation too. If Stalin is in financial trouble (his iGoldValuePercent=3) he asks for 50% less cash than if he is not (his iGoldValuePercent=2) due to iGold = ((iTheirValue - iOurValue) * 100) / iGoldValuePercent.}


Finally if (iTheirValue > (iOurValue * 3 / 4)) the deal is good and Suleiman will DoW the victim for 1 or 2 techs +- some gold.
This condition also indicates that giving a second tech if (iTheirValue > iOurValue) is unnecessary. Furthermore it shows that the bug prevents successful bribe deals when 1 tech is not enough and the instigator does not have the necessary cash to reach the 75% threshold. I personally think this should be fixed -- it might entail some more dogpile wars due to successful bribes.



- Post #84 (likely already adressed by BetterAI, if I have understand the changelog correctly)

There is a (minor) BUG in AI_doWar as it checks bFinancesProMaxWar for limited raids instead of bFinancesProLimitedWar



- Post #83:

The whole function is kind of weird, I also think there is a bug in the following parts for AI_STRATEGY_PEACE: Code:
int iWarMemory = GET_PLAYER((PlayerTypes)iI).AI_getMemoryAttitude(getID(), MEMORY_DECLARED_WAR);
if (iWarMemory > 0)
{
//they are a snake
iParanoia += 50 + 20 * iWarMemory;
break;
}This would increase an AI Player's iParanoia if he declared war on the other Player iI. Who is the snake here??? I think it needs to be the other way around, further down it's the same problem for Player iJ.

Another WHAT??? in AI_doWar:

Code:
int iDefensivePower = (GET_TEAM((TeamTypes)iI).getDefensivePower() * 2) / 3;So to be safe from a close Monty we actually need double his power (130%*1.5 = 195%)
 
While reading through this thread...

http://forums.civfanatics.com/showthread.php?t=286180&page=4

...I stumbed over some bug reports in the AI logic posted by DanF5771. I don't think all of them have been addressed or at least considered for Better AI mod yet, at least the newest ones probably not:


- Post #148:

Thanks for digging this up, this bug existed in 3 out of the 4 places getGoldPerTurn() was used in this way! Fixed for the next version.

- Post #121:

This one's not a bug, just a feature Firaxis removed. The AI does better when it prepares for war, so if you deny a request the AI may begin preparing for war with you but it's never in a position to gain from declaring right away.

- Post #121 as well (regarding the mechanics of AI bribing other AIs into wars):

Firaxis just fixed this in 3.19.

- Post #84 (likely already adressed by BetterAI, if I have understand the changelog correctly)

Yes, already fixed.

- Post #83:

Peace strategy does nothing anyway as Blake never finished it ...

Thanks for digging that up!
 
While merging Planetfall and 319 code, I was reminded of a probable bug:

In CvPlayerAI::AI_conquerCity it says at the end:

CvEventReporter::getInstance().cityAcquiredAndKept(GC.getGameINLINE().getActivePlayer(), pCity)

I believe that should be:

CvEventReporter::getInstance().cityAcquiredAndKept(getID(), pCity)
 
I believe that should be:

CvEventReporter::getInstance().cityAcquiredAndKept(getID(), pCity)

Agreed. Firaxis fixed this in 2 of 3 spots for a prior patch, but must have only done a local search instead of global (other two uses in CvPlayer.cpp, only this one in CvPlayerAI.cpp).

EDIT: Cross-posted in UP forum.
 
Top Bottom