Single Player bugs and crashes v39 plus (SVN) - After the 20th of July 2019

You are in Industrial era, when you should be in Ancient era, nice.
You should play with upscaled research cost next time.

Also this research process needs to be strongly devalued.

You need to stop worrying about tech pace. I use chipotle to build buildings as available and tech normally from there. I play for crash finding and maybe reaching later than modern eras before the save dies. Seriously, I play on the recommend game speeds and random crashes stop me from getting to the later parts, and when those are found and fixed, then I'll play without cheating. You can insert any memes you like, but that's how I play C2C.
 
What makes you think that????:eek:

Python code can have errors which trigger all kinds of asserts and even lead to crashes.
Python modders wouldn't normally know what the dll asserts mean. If there's a python error those show up even on final release dll, even if the error is in the dll as python will report it as an unknown c++ error.
If python sets values in the dll to something illlegal, and this triggers asserts later, not while the python code is waiting for an answer from the dll, e.g a negative number or an integer overflow number asa dll function parameter, then a python modder wouldn't know the assert is related to python code, and wouldn't be the person to debug it either.

I've never seen an assert that I suspected could be related to python code, and I used the debug.dll a lot while developing PPIO. Not because I was checking PPIO though, I used the debug dll to test MToS, my xml modmod, and I almost always had PPIO installed at the same time. I frequently discovered xml mistakes in MToS with the debug dll, but I never once saw an assert that I thought could be connected to python code.

The dll is a library in the eyes of the python modder, the dll library should be robust enough to not accept negative values as parameters provided by python if negative values are not the kind of number that would work in the given function call. It is then in my opinion a dll explicit bug described as a lack of sanity checks on the input parameters for the python to dll entrypoint function.
I can't think of a single way to actually cause a dll assert through python code, one would have to do something extremely weird to get asserts from using any of the python's API for the dll library.
Something extremely weird done in python would probably manifest in noticeable bugs or crashes that the python modder could use as a cue to not commit the modification in question to the repository before the issue is solved, the python modder could try the assert dll to see if there's any asserts that may explain why the python code is not working as it should, but I seriously doubt that would be an efficient way to debug the issue in 99% of cases like that.

If python code can easily cause the dll to break down without the python modder becoming aware of that fact without getting asserts, then there's a 100% chance that my PPIO modmod, which is in core C2C now, is causing dozens, if not hundreds, of different asserts.
I say that as I pretty much rewrote 50% of all the python code in C2C without ever seeing a single assert I thought was caused by my modifications even though I used the debug dll frequently in its development.

I'm ok with having the assert dll as the default dll once I get to experience that it is consistently possible to not get three assert the first 15 minutes of game-play.
 
Last edited:
a python modder wouldn't know the assert is related to python code, and wouldn't be the person to debug it either.
We need to get to a point where if the changes to python / xml trigger any asserts the modder knows that their changes caused them, and that it means they did something wrong. They may not understand how their changes relate to the assert, but they are responsible for fixing the python or xml so the assert is fixed. That might require consultation with a dll modder to work out what the assert means in that context.
It definitely cannot be the policy that dll modders have to be in charge (de facto or de jure) of QAing other modders changes, that obviously isn't fair!
However at the moment we (or at least I) do not have confidence to say that an assert is caused by new changes, so we need to work out how to get to that point first before worrying about how to fix them.
 
In my games, in the city pop-up screen, it only shows recommended buildings/units and it doesn't show anything else. Overall it shows maybe nine things at a time. How would I go about fixing this?
This is intended! It is listing the AIs best recommendations only now. It is a performance tweak mostly, as displaying all the buildings made the popups slow, such that on some games end turn would still mean 2 minutes of waiting for these popups to finish popping up.
My contention is that nothing of value is lost here, were you previously scrolling through a 100 building list to find what you wanted to build? Instead you should just click view city and select there were the UI is much better designed for handling how many buildings there are.
 
@JosEPh_II I fixed the end turn time issue, it was the new unit ai that had been submitted, I guess whoever wrote it didn't test it? This should not happen in future I hope, it is easy to test code before submit!
Just run fetch/pull and run DevSetup.bat again and you will get the changes.
 
@JosEPh_II I fixed the end turn time issue, it was the new unit ai that had been submitted, I guess whoever wrote it didn't test it? This should not happen in future I hope, it is easy to test code before submit!
Just run fetch/pull and run DevSetup.bat again and you will get the changes.
Thank you billw2015. :) You saved an important game for me and I really do appreciate that.
 
Was this just to reduce Mod size? Or was it for EoT speed up? Either way it detracts from the mod's visual impression, at least imo. Can I live with it? Sure I can. But do we want players constantly reporting this as a bug? I would think not. again imo.

For lots of wonders and other things no such movie even existed. Most of the movies C2C had where only static Images and a static image doesn't need to be turned into a movie. Static images in the dds format would be easier to create.

I take a look on how to fix that empty screen.
 
For lots of wonders and other things no such movie even existed. Most of the movies C2C had where only static Images and a static image doesn't need to be turned into a movie. Static images in the dds format would be easier to create.

I take a look on how to fix that empty screen.
Empty screen is displayed, when movie tag is used, but no movie exists, so every wonder has that now.

So you should adjust code to not display screen at all, if wonder/religion has no movie.

I simply turned off movies in BTS graphical settings.
 
Last edited:
Empty screen is displayed, when movie tag is used, but no movie exists, so every wonder has that now.

I removed all movie tags from the xml to avoid that screen beeing displayed. Are those movie tags back in the xml at the Moment?
 
I removed all movie tags from the xml to avoid that screen beeing displayed. Are those movie tags back in the xml at the Moment?
There is 339 instances of <MovieDefineTag> in all building infos.

It seems like you never removed movies from xml, at least not in main branch.

EDIT: Deleted movie tags for you.
 
Last edited:
@billw2015 ,

Just an FYI follow up. I have been keeping track of Re-Calc times and EoT wait times too. I missed the Re-Calc time after this latest fix (Wife needed help). But I do have the turn times for the 4 turns after Re-Calc. Previously the EoT wait was ~2:38.
1st turn after Re-Calc time, 4:16
2nd 5:00
3rd 4:07
4th 3:59, I'm hoping this downward tendency continues from the peak of 5 minutes.

I have noticed over the years that we have had Re-Calc that the Next turn is usually long because koshling said base values are reset and all the "modifiers" will start to kick back in over the next 2-4 turns. His appraisal has been spot on for a long time. And is the reason I tell Players that comment on the changes after a Re-Calc that it takes up to 3-5 turns for the game modifiers to get fully re-applied.

Again Thank you for the Fix. :D
 
For lots of wonders and other things no such movie even existed. Most of the movies C2C had where only static Images and a static image doesn't need to be turned into a movie. Static images in the dds format would be easier to create.

I take a look on how to fix that empty screen.
Thank you alberts2. :)
 
@ssmage + whoever might know about this.
The bug here is that a UNIT_AI_BARBCRIMINAL is spawning directly on a city, and this city is then captured *during* the unit creation. This appears to be breaking some constraints in how a city life cycle is meant to work that causes the city kill command to throw up loads of asserts and then later in the turn it crashes when trying to update that broken city.
Spoiler :

upload_2019-8-31_15-20-38.png

 
Last edited:
Top Bottom