Single Player bugs and crashes v36 plus (SVN) - After the 24th of October 2015

Status
Not open for further replies.
I had a hiccup lately, try this once ingame mode, on the keyboard, hit Alt/Ctrl/delete, like 10 times, then keep pressing on the "windows" btn. that did it for me, and it went to the next turn about 3 minutes of doing this back and forth, sometimes, it works, sometimes it doesnt . . otherwise its up to TB. . .

Wouldn't it simply go to taskmanager though?
 
Wouldn't it simply go to taskmanager though?

Not when it it in the waiting mode, it will only go there AFTER the turn is ALmost complete . .but then thats what you want, right, the next turn . . . .
 
The turn updates and then the updating seems to stop. The in-game real-time clock on the upper right advances about a minute or so and then freezes. Screen indicates AI update, but that could be just the moment when it freezes. Windows task manager lists it as "not responding". All four CPUs wildly gyrate between near-max and low activity, without anything happening though.
About 12 civs and barbarian civs disabled.

Go to Assets/XML Folder inside the XML folder scroll down to A_New_Dawn_GlobalDefines.xml. Open with Notepad and scroll down till you find these lines near the botton of the file:
Code:
<Define>
		<DefineName>NUM_CITY_PIPELINE_THREADS</DefineName>
		<iDefineIntVal>4</iDefineIntVal>
	</Define>

Change the 4 to a 2 save the change and then see if you can continue your turn.

JosEPh
 
I should report strange things happening with my turn times also. I get the running man then the symbol for not responding then the running man and so on. I have only just entered Classical and this has only started in the last couple of days but can't give you an exact time frame.
 
The turn updates and then the updating seems to stop. The in-game real-time clock on the upper right advances about a minute or so and then freezes. Screen indicates AI update, but that could be just the moment when it freezes. Windows task manager lists it as "not responding". All four CPUs wildly gyrate between near-max and low activity, without anything happening though.
About 12 civs and barbarian civs disabled.

yep... sounds like an AI bug.
 
Go to Assets/XML Folder inside the XML folder scroll down to A_New_Dawn_GlobalDefines.xml. Open with Notepad and scroll down till you find these lines near the botton of the file:
Code:
<Define>
		<DefineName>NUM_CITY_PIPELINE_THREADS</DefineName>
		<iDefineIntVal>4</iDefineIntVal>
	</Define>

Change the 4 to a 2 save the change and then see if you can continue your turn.

JosEPh

Same as before, unfortunately
 
Has anyone asked if you have set Admin rights on C2C/BtS?

Just another possibility probably already covered.

Since this is the bug thread for using the SVN version have you updated the SVN and then exported a fresh copy?

JosEPh
 
@DH: I'm getting an error on the tech prereq building class. What file did you add this to and did you update the tech schema in that mod folder? I'd be more than happy to look into it but it only threw up an error from the dll and didn't point to the xml file. I cannot be 100% sure that it's not a problem in the code but I want to look at the xml to ensure it's programmed there the way the dll expects it would be. May be a little different to what it used to be since I reprogrammed the tag almost entirely.
 
Has anyone asked if you have set Admin rights on C2C/BtS?

Just another possibility probably already covered.

Since this is the bug thread for using the SVN version have you updated the SVN and then exported a fresh copy?

JosEPh

I think I have admin rights, and SVN is updated to the latest. Will check again.
 
Has anyone asked if you have set Admin rights on C2C/BtS?

Just another possibility probably already covered.

Since this is the bug thread for using the SVN version have you updated the SVN and then exported a fresh copy?

JosEPh

I checked for admin rights and SVN, everything as it should be; still not working.
 
I checked for admin rights and SVN, everything as it should be; still not working.

Don't stress brother. I'm looking into it now. This sort of thing can take hours or even days to resolve though so be a little patient.
 
@DH: I'm getting an error on the tech prereq building class. What file did you add this to and did you update the tech schema in that mod folder? I'd be more than happy to look into it but it only threw up an error from the dll and didn't point to the xml file. I cannot be 100% sure that it's not a problem in the code but I want to look at the xml to ensure it's programmed there the way the dll expects it would be. May be a little different to what it used to be since I reprogrammed the tag almost entirely.

Yep, I forgot to update the schema files:blush:. Will do so now.
 
MIGHT not be it though... I'd still like to look at the xml... what is the folder named? Just want to check since this is the first attempt to use the newly reprogrammed tags.
 
@Alberts2:
I've been looking into dummy1929's save and his problem all day here.

I've run up against a spot that's beyond my ability to read. It looks like he may not have an actual infinite loop but it may be so heavy with so many units that it's as good as an infinite loop.

Checking deeply, I'm not finding the problem to exist in the new movement rules so much as I'm finding this function:
CvUnit* CvPlot::getBestDefender(PlayerTypes eOwner, PlayerTypes eAttackingPlayer, const CvUnit* pAttacker, bool bTestAtWar, bool bTestPotentialEnemy, bool bTestCanMove) const

It's taking a very long time to process, which would make sense since there's a lot of units being checked here. There's supposed to be a form of caching there but I'm a little confused looking at it. If I'm not mistaken, the caching should make it so after the first check there this shouldn't repeatedly be a delay problem. However, it seems to be delaying severely each and every time its called and of course, it's called a lot.

Can you do a logic check for me on that function and see if you can spot the 'flaw'? I suspect the caching is a little overengineered and isn't really working to speed things up at all.

I've done a few things to speed up the processing in the function that calls canMoveInto which calls getBestDefender numerous times through this line:
Code:
			if (bAttack && !bFailWithAttack)
			{
				CvUnit* pDefender = pPlot->getBestDefender(NO_PLAYER, getOwnerINLINE(), this, true);

There may still be a repeating loop here somehow but I'm really not sure how. I'll be letting it play through to see if it can clear up. Might be this is one of those big delay points you were finding earlier and it may also not be completely predicated on the movement rule changes as would've been easily surmised.


Ultimately, the spot this game is getting stuck is here:
int CvSelectionGroupAI::AI_sumStrength

It seems to never get past the loop therein.

EDIT: I figured out how to make an easier way through this BUT it still may have a further problem once it goes to actually evaluate the best attacker. ugh. Should cut the delay nearly in half though. Hoping this will be enough to get through these kinds of situations.

EDIT2: I've managed to streamline this pretty well but now we're hitting yet another wall. How often does this code need to check for the best defender for cryin' out loud!


Took lots of digging and research and patience and ingenuity but I've got this sorted out. I'd still like it to be faster but it won't give the impression of stalling out at least.
 
I checked for admin rights and SVN, everything as it should be; still not working.

This one took a LOT of effort to resolve to some semblance of a satisfactory situation. I don't think it was an infinite loop but I think it was that the turn would've taken a very very very long time to resolve and may be causing a timeout somewhere in the operating system. Still takes a LONG time but not nearly as long. I advise turning on the ability to at least watch the battle as you wait. And give it some minutes to process when it gets to thinking through the odds of the battle being victorious.

I may well have fixed a lot here thanks to this, including a bug that may have kept a lot of rational attacks on cities from taking place due to the need to simply tear through a sufficient amount of the stack to get it done.

The battle, by the way, is absolutely EPIC! I would almost suggest posting this save in a hall of fame somewhere so that anyone can open it up and watch how this plays out. Over 600 units attacking over 100 units in the city. I won't tell you how it pans out but it's a pretty close call and a few decisions made before hitting end-turn would mean the random seed would be altered and that could change the whole outcome.

Amazing. What's more amazing is that the system can now get through the turn and hasn't sacrificed all that much in numeric evaluatory accuracy to do so. There's a few shortcuts like this but for the most part, a few huge volumes of redundant heavy processing checks were able to be eliminated and that did the trick.

There may well have been an infinite loop in there but it would be impossible to say since one loop alone would take hours to get through on the debug dll.

This turn takes about an hour to process on a normal dll as it is but I think it's worth the wait considering the epic clash it represents and that's the reason for the great turn time. It may process quicker if you don't watch the fight - but not nearly as entertaining ;)

Update the SVN and do a recalc first then you are good to go.

Thanks for the challenge!
 
Currently im little busy, will be done when im done with my current project.
As for microbiology, I need correct quote.

Just click on the mp3, that one is the best one i believe.
 
Status
Not open for further replies.
Back
Top Bottom