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

Status
Not open for further replies.
edit Latest SVN I have lost the ability to build Law Enforcers. I had two in the queue, updated to the SVN and now they are not showing up.

Be sure you have built the building they have as a prereq. I'll check some other possibilities in the meantime.

The problem is that the old unit is obsoleting at the same time that the building for the upgrade is becoming available. Therefore the units in the queue were not built! This would have been a problem if it had happened when I was building the 23 for sending to each city as I would not know how many I had built and still needed to build.

This is OK but not optimal, I still have the old buildings for the Enforcers but can't build them and I need to build the Town Watch to get the upgraded units.
 
The problem is that the old unit is obsoleting at the same time that the building for the upgrade is becoming available. Therefore the units in the queue were not built! This would have been a problem if it had happened when I was building the 23 for sending to each city as I would not know how many I had built and still needed to build.

This is OK but not optimal, I still have the old buildings for the Enforcers but can't build them and I need to build the Town Watch to get the upgraded units.

hmm... good point. It will take extending the forcetechobsolete tag out a tech or two to keep this from being an issue I suppose. I'll look into that soon.

Side note: I am aware that there is a condition that obsoletes a unit despite the unit not having a force tech obsolete tag. Do you by chance recall the rule on that and how that's enforced? IIRC it has something to do with the number of potential upgrades that have become available by tech right? I'd like to create an exception to this rule for some criminals and law units.
 
It's a good idea anyhow. SO's was the save I saw that was completely fubared from it but the error is certainly plaguing all games being played at the moment. I'd have the fix on the SVN already if I didn't want to make 100% sure that prop ctrl units are doing everything they were supposed to and the ordering system is working just right.

Running some tests now.


Not sure what the problem would be with the wolves so yeah, I'd like to take a look at that.

The Footpads are Ruffians and ruffians have changed to blend with barbarians. They are no longer useful in attacking barbs as barbs consider them one of their own and they consider themselves barbs under your instruction. As I'm sure you're already aware, they also capture cities for barbs.



Given how they are exhibiting this spreading out behavior, I'm beginning to think we're not talking about a problem with the stack composition issue so much as with siege units being relegated to city defense roles. This could be a tricky problem in the code BUT perhaps if we add the NotAIType tag to those units for UNITAI_CITY_DEFENSE, this may be resolvable by xml. Maybe. It's worth a try.

Since I've got a number of things I'm freaking out about over here, if you have a little time, would you be able to figure out how to do this for siege units?
@T-brdor any other Team member,

Code:
<UnitAIs>
				<UnitAI>
					<UnitAIType>UNITAI_ATTACK_CITY</UnitAIType>
					<bUnitAI>1</bUnitAI>
				</UnitAI>
		[color=red] <UnitAI>
					<UnitAIType>UNITAI_CITY_DEFENSE</UnitAIType>
					<bUnitAI>0</bUnitAI>
				</UnitAI>[/color]
			</UnitAIs>

Is adding something like this in Red with the Boolean at 0 (zero) what you had in mind? Basically telling it not for city defense. Not sure how this would affect adjacent city tiles though.

Not tested yet to see if works cause this is unfamiliar territory for me.

Edit: Or They could be given CombatModifiers for archer, melee, mounted, etc. like the ballista line has? But with low values like 20 or 25?

JosEPh
 
hmm... good point. It will take extending the forcetechobsolete tag out a tech or two to keep this from being an issue I suppose. I'll look into that soon.

Side note: I am aware that there is a condition that obsoletes a unit despite the unit not having a force tech obsolete tag. Do you by chance recall the rule on that and how that's enforced? IIRC it has something to do with the number of potential upgrades that have become available by tech right? I'd like to create an exception to this rule for some criminals and law units.

You only need to force obsolete national or limited units.

Other units "obsolete" when the city can build all their upgrades. In this case not having the force obsolete would mean that you could build the lesser LE units until you build the building for the better one.

@T-brdor any other Team member,

Code:
<UnitAIs>
				<UnitAI>
					<UnitAIType>UNITAI_ATTACK_CITY</UnitAIType>
					<bUnitAI>1</bUnitAI>
				</UnitAI>
		[color=red] <UnitAI>
					<UnitAIType>UNITAI_CITY_DEFENSE</UnitAIType>
					<bUnitAI>0</bUnitAI>
				</UnitAI>[/color]
			</UnitAIs>

Is adding something like this in Red with the Boolean at 0 (zero) what you had in mind? Basically telling it not for city defense. Not sure how this would affect adjacent city tiles though.

Not tested yet to see if works cause this is unfamiliar territory for me.

Edit: Or They could be given CombatModifiers for archer, melee, mounted, etc. like the ballista line has? But with low values like 20 or 25?

JosEPh

There are other tags for don't use this AI on this unit. They would be better. NotUnitAIs is the group tag and it has a similar structure to UnitAIs. So the correct way of saying never use it for city defense would be
Code:
<NotUnitAIs>
	[color=red] <NotUnitAI>
			<UnitAIType>UNITAI_CITY_DEFENSE</UnitAIType>
			<bUnitAI>1</bUnitAI>
	</NotUnitAI>[/color]
</NotUnitAIs>
 
You only need to force obsolete national or limited units.

Other units "obsolete" when the city can build all their upgrades. In this case not having the force obsolete would mean that you could build the lesser LE units until you build the building for the better one.
Ouch... I thought that might be the rule. It's a rule I want to be able to break. Is there already an ability to setup an exception to this so that even though upgrades are trainable, you can still train a lesser unit? Or must this be developed still?



There are other tags for don't use this AI on this unit. They would be better. NotUnitAIs is the group tag and it has a similar structure to UnitAIs. So the correct way of saying never use it for city defense would be
Code:
<NotUnitAIs>
	[color=red] <NotUnitAI>
			<UnitAIType>UNITAI_CITY_DEFENSE</UnitAIType>
			<bUnitAI>1</bUnitAI>
	</NotUnitAI>[/color]
</NotUnitAIs>
@Joe: DH answered this exactly as I would've. The tag he illuminates is the one we need to use. However, it is still possible that there's a portion of code that doesn't check this when it should but I have an idea where that may be so as long as we get this established for them in the xml, if we find they still are getting assigned as city defenders then I can fairly quickly repair the problem then in the code.

If you want to confirm that they ARE being set as city defenders, this is an interesting trick too:

1) Set the cheat code line in the beyond the sword ini file to 'chipotle'.
2) Load the game with the debug dll.
3) hold down shift as you hover over the unit (or its flag... one of the two) and it should show what UNITAI it is currently set to. If it's a large stack the unit you're looking for can easily get drowned out but this should be useful for ensuring that the diagnosis is correct in this case.

There's a bit of code in the attack AI that is intended to shed off unnecessary units in the stack to city defense needs, which is kinda good kinda not and needs rethinking but I think it's in there that these units are being relegated to defending the city and when this happens, it changes the unit AI to City Defense at that time. This is how we can get siege weapons as city defenders when they don't have city defense AI established as one of their available AIs. (Those mostly control their ability to answer to the call to train a new unit AI type and what they are assigned when this call is answered.)
 
Different CTD latest SVN brand NEW game . .

I tried clicking on the prophet for the religion Shamanism and POOF CTD . . . mini and save in zip

You just can't keep it to one problem at a time can you? lol. This is good. Housecleaning. I start another new job tomorrow so maybe I can get the house clean before then.

EDIT: Hey... curious about how this ended up being a problem in the first place... Did you by chance set Religious Disabling option to true initially then change it in-game?

I've found an old compatibility coding bit that was no longer necessary and eliminated it (which fixed the problem) but I'm not sure how it could've become a problem in the first place if the game hadn't had the option on at some point.
 
Okay added the


Code:
<NotUnitAIs>
	 <NotUnitAI>
			<UnitAIType>UNITAI_CITY_DEFENSE</UnitAIType>
			<bUnitAI>1</bUnitAI>
	</NotUnitAI>
</NotUnitAIs>

to Hand Ram, Battering Ram, Siege Ram, and Siege Tower.

2. Don't have a clue as to how to load the game with debug dll. (over my :old: head)

So I'll test it the old fashion way, Play a few turns.

JosEPh
 
Okay added the


Code:
<NotUnitAIs>
	 <NotUnitAI>
			<UnitAIType>UNITAI_CITY_DEFENSE</UnitAIType>
			<bUnitAI>1</bUnitAI>
	</NotUnitAI>
</NotUnitAIs>

to Hand Ram, Battering Ram, Siege Ram, and Siege Tower.

2. Don't have a clue as to how to load the game with debug dll. (over my :old: head)

So I'll test it the old fashion way, Play a few turns.

JosEPh

Easy peasy.

1) rename the CvGameCoreDLL.dll file in the assets folder to CvGameCoreDLL.dll.core

2) rename the CvGameCoreDLL.dll.debug file to CvGameCoreDLL.dll

3) run the game.

4) make sure to reverse these changes when you're done using the debug dll.

5) This is really a mandatory step to run the game under the debug dll before committing any xml changes so it's probably important you figure out how to rename a file ;).
 
Is there already an ability to setup an exception to this so that even though upgrades are trainable, you can still train a lesser unit? Or must this be developed still?

Couldn't you just set a very advanced unit as a possible upgrade?
 
Couldn't you just set a very advanced unit as a possible upgrade?

Well... I suppose I have set it up properly already. Maybe that would be enough. I'll look over it and see if I really need to manipulate things or if it's actually right where I need it to be, which it might be. Might be able to eliminate all the usage of force obsoletions at all actually. I just need to get some focus to think it through in light of DH's helpful info.
 
From the latest SVN post:
I said:
The Property Control AI is not rigged for speed at the moment but should be much more accurate to its intentions now. A 'next step' will be to cache some of the calls being made there so as to speed it up a bit. Bear with me on this. At the moment I'm just wanting to be 10000% sure that it's working entirely as intended before trying to streamline it. According to my testing, it is now.

SVN 8999 had serious issues that would lead the AI to make very very bad decisions (exactly the opposite of what they were supposed to be doing with property control units) that could have had a very detrimental effect on games. If you have played on revisions between 8999 and now, it would be beneficial to go back to an earlier save before this point if you can. It's not 100% necessary to do this but it would improve the AI's game a LOT if you do.

I'll try to include a warning to back up saves before any major AI updates like these. Live and learn right? My apologies for all inconveniences this problem has caused.

Watch the AI closely here... there's a number of things I'd like to have verified by in-play observations:
1) Property Control units are being trained when needed.
2) Property Control units are going to cities that need them. And that they aren't all going en masse to a city in need... there should be some reluctances built in so that as units are responding to need, others will hold off since the need is being responded to.
3) Property Control units are using property control promos and buildups, the latter at least being used when the city they are in does need some control.

Note that many LE units are considered to be city defenders so won't act in the above manner. But shouldn't necessarily be ALL of them, at least not as games progress from here.
 
Latest SVN still crashes

mini and save in zip

I'm downloading now but... is this the prophets crash or the first one?

As stated earlier, the first one is unresolvable.

EDIT: yeah, this game cannot be fixed. However, if you can get a save from before SVN 8999 you could pick up from there and it would be a lot less likely to run into the problem anywhere near this point.

In a nutshell, the problem is one of the AI has too many units. This limit cannot be exceeded and if I understand the master programmers here, once hit, there's absolutely nothing that can be done about it. (including removing some from play - its the limit of how many could ever be assigned to the player in total throughout the whole game.)
 
I'm downloading now but... is this the prophets crash or the first one?

As stated earlier, the first one is unresolvable.

Its the same saved game but with the NEWEST SVN, but NOT the Prophet one, its the other one, and what do u mean by "unresolveable"? So i cant play that game any longer?
 
I posted a much longer review above but I mean unresolvable to mean that this save is irrevocably broken. Nothing can be done to fix this game. Period. Hit a brick wall. Finito.

However, I HAVE taken measures to keep it from happening again if you have an earlier save you can back up to.
 
I posted a much longer review above but I mean unresolvable to mean that this save is irrevocably broken. Nothing can be done to fix this game. Period. Hit a brick wall. Finito.

However, I HAVE taken measures to keep it from happening again if you have an earlier save you can back up to.

I have a savedgame here back on 6 Jan think that might work??
 
It should, yes. As long as it was before SVN 8999 was updated. I believe that's far enough back, maybe farther than needbe even.

However, bear in mind this limit will probably be hit eventually anyhow. But I think the AI you're taking on there now might be the culprit so if you can smash him out of the game before he hits the unit limit you may be able to get the game to go much further.
 
As I was too lazy to go back to an old save and play everything over again so I went into world builder and deleted all those bard etc. units from the other nations (I anyway have no plans to attack them) and the game runs really fast again!

The adjustments from last night's SVN should speed things up considerably. And yeah, having so many unnecessary units would've slowed things down a lot as well.
 
Status
Not open for further replies.
Back
Top Bottom