Breaking Save Game Compatibility for v37

Praise where it is deserved :) I am having a blast on my current testbed game (2 civs, duel map size, settler, normal speed). I have not found any not yet reported bug yet but I am still only at the classical age. If no crashbug or gamebreaking bug arises this will end up as the first game I will finish.

I technically already won a religous victory but keep on trucking until the end of the techtree at least to finally get to see the more modern stuff.

I was thinking that besides the two screenshots there are no recent screenshots of the modern times games are some of those wanted? If so I could make some once I am in the lategame eras to baiscally give the people interested in the mod a little sneak peek of what is in store for them.
That would be cool, sure!

I haven't seen any SVN updates which break savegame compatibility in the last couple weeks, do you guys think you are finished with the savegame breaking updates?

Naw... it's just going to take me more time than ever to get anything done these days. I quite smoking and caffeine and am getting active and it's impeding modding a lot but it's been a long time coming I've been needing to do this. I know it represents an inconvenience to the modders and to the c2c community but, like DH, I've been growing a bit depressed by being so out of touch with my life by being so ONLY in touch with c2c. I've really needed to get some healthy balance back into my life. So it's just going to take more time than hoped as I chip away a few hrs a day rather than committing 80% of my free time to this project as I have been for many months now.

To clarify the development path though, each time I break saves I feel I should get the mod back to a stable state before moving on, because once I move on to more breakages, I'm denying the ability for those games started in that zone to ever get debugged so I at least want to give those games a chance to be played out. There are currently still some instabilities in this last wave that I'm trying to address. But there are also still numerous code cleanup and efficiency tasks remaining on the project list before I'd be willing to say we're done breaking compatibility. This version I'm hoping to make the one and only version that breaks compatibility like this so it's likely to take quite a bit of time before I'm done with this - which is a big reason I didn't want to get started on this until everything else had been done for this version. I'd also wanted to do the months of work on my end in the silent background until it could be implemented overnight and be, for the most part, done as soon as it began. Dinna work out that way but that's ok... we plug on!
 
I know it represents an inconvenience to the modders and to the c2c community but, like DH, I've been growing a bit depressed by being so out of touch with my life by being so ONLY in touch with c2c. I've really needed to get some healthy balance back into my life. So it's just going to take more time than hoped as I chip away a few hrs a day rather than committing 80% of my free time to this project as I have been for many months now.

It is a hobby - so your well being is more important than C2C. :king:

But even as a modder newcomer - I get the feeling, not touched C2C for a couple of days, so I should do something. Easy in winter - but come summer NO. :eek:


But there are also still numerous code cleanup and efficiency tasks remaining on the project list before I'd be willing to say we're done breaking compatibility.
I'd also wanted to do the months of work on my end in the silent background until it could be implemented overnight and be, for the most part, done as soon as it began. Dinna work out that way but that's ok... we plug on!

Well as with Neanderthals, any grunt work you want doing on XML - just ask. :) If it helps you concentrate on coding issues.

Salutes and steps back into line. :salute:
 
Thanks Harrier! You've been a huge help already. Most of the issues on my plate now are primarily programming ones. I do want to get a bead on what's wrong with those neanderthal city bars... and I have some suspicions since DH said those were all handled in the exe. It's entirely possible it's not fixable. Which is fine really so long as it doesn't crash! But there's probably more to it and I just need to get in and figure out what that is.

I've also gotta disable the original barbarian spawning so that will take some xml work on your end to compensate that. The city spawning will continue for them but unit spawns will be a matter of the spawn mechanism. If I can get the crash bugs cleared out that's really my next task.
 
I've also gotta disable the original barbarian spawning so that will take some xml work on your end to compensate that. The city spawning will continue for them but unit spawns will be a matter of the spawn mechanism. If I can get the crash bugs cleared out that's really my next task.
This will be my next task. However, I'm not disabling some of the 'side' spawns. There are protocols for spawning transports along with units onboard them, as well as workers in cities, that I don't think should be disabled because they'd be tough to replicate just right in the spawn mechanism.

Once the next dll hits the SVN tonight then what we'll need is for the normal barbarian spawning mechanism to be reprogrammed into the spawn mechanism. This is XML work I'm leaving to the rest of the team.
 
This will be my next task. However, I'm not disabling some of the 'side' spawns. There are protocols for spawning transports along with units onboard them, as well as workers in cities, that I don't think should be disabled because they'd be tough to replicate just right in the spawn mechanism.

Once the next dll hits the SVN tonight then what we'll need is for the normal barbarian spawning mechanism to be reprogrammed into the spawn mechanism. This is XML work I'm leaving to the rest of the team.

Do u have an estimate when u can take some of those "game options" out meaning, like guilds/S&D, and the older stuff we had out, that do NOT work properly? That way i know when all this game breaking will end?month/year/decade(lol)? Just askin'
 
The game options are out. What is left is to go through and reprogram a number of tags so that they are faster and less memory consuming. That's going to take an I have no idea amount of time.
 
Once the next dll hits the SVN tonight then what we'll need is for the normal barbarian spawning mechanism to be reprogrammed into the spawn mechanism. This is XML work I'm leaving to the rest of the team.

Toffer90 - I await your advice on this. Will help anyway I can.
 
Toffer90 - I await your advice on this. Will help anyway I can.

I wouldn't know exactly what we need; but perhaps something like this:
Spoiler :
Code:
		<SpawnInfo>
			<Type>SPAWN_BARB_PREH_GROUP_1</Type>
			<UnitType>UNIT_CLUBMAN</UnitType>
			<PlayerType>40</PlayerType>
			<iGlobalTurns>300</iGlobalTurns>
			<iMaxLocalDensity>49</iMaxLocalDensity>
			<iEndDate>-10000</iEndDate>
			<rateOverrideDefineName>BANDIT_SPAWN_MODIFIER</rateOverrideDefineName>
			<FeatureTypes>
				<FeatureType>FEATURE_FOREST</FeatureType>
				<FeatureType>FEATURE_FOREST_BURNT</FeatureType>
				<FeatureType>FEATURE_FOREST_NEW</FeatureType>
				<FeatureType>FEATURE_FOREST_OLD</FeatureType>
			</FeatureTypes>
			<TerrainTypes>
				<TerrainType>TERRAIN_HILL</TerrainType>
			</TerrainTypes>
			<SpawnGroup>
				<UnitType>UNIT_BRUTE</UnitType>
				<UnitType>UNIT_BRUTE</UnitType>
				<UnitType>UNIT_STONE_THROWER</UnitType>
				<UnitType>UNIT_STONE_THROWER</UnitType>
			</SpawnGroup>
		</SpawnInfo>
		<SpawnInfo>
			<Type>SPAWN_BARB_PREH_BRUTE</Type>
			<UnitType>UNIT_BRUTE</UnitType>
			<PlayerType>40</PlayerType>
			<iGlobalTurns>600</iGlobalTurns>
			<iMaxLocalDensity>1</iMaxLocalDensity>
			<iEndDate>-25000</iEndDate>
			<rateOverrideDefineName>BANDIT_SPAWN_MODIFIER</rateOverrideDefineName>
			<FeatureTypes>
				<FeatureType>FEATURE_FOREST</FeatureType>
				<FeatureType>FEATURE_FOREST_BURNT</FeatureType>
				<FeatureType>FEATURE_FOREST_NEW</FeatureType>
				<FeatureType>FEATURE_FOREST_OLD</FeatureType>
			</FeatureTypes>
			<TerrainTypes>
				<TerrainType>TERRAIN_HILL</TerrainType>
			</TerrainTypes>
		</SpawnInfo>
etc.

We will just have to try something out and then adjust spawn frequency depending on the result.

It will be a challenge to adjust start and stop dates in such a way that we don't get too advanced barbs too early and vice versa.

Would TerrainNative tag in unitinfo be better suited for this; not sure how this really works...? Does TerrainNative only spawn barbs (team 40) and is it restricted by barbarian tech level? Does it only stop spawning the unit when it is "Force Obsoleted" by a tech?

I think we need some more discussion on this matter.
 
TerrainNative on the unit was used for spawning barbarian animals which was the old mechanism for them. You can still get them to spawn by giving them Terrain or Feature Natives but that mechanism works with the normal barbarian spawning mechanism which means animals spawn less and less and barbarians more and more.

I am not sure it works for only bAnimal=1 units of not. However using it is probably not a good idea in the long run.

These tags could probably be removed from C2C to ensure the old spawn methods are not used.
 
I wouldn't know exactly what we need; but perhaps something like this:

We will just have to try something out and then adjust spawn frequency depending on the result.

It will be a challenge to adjust start and stop dates in such a way that we don't get too advanced barbs too early and vice versa.

I think we need some more discussion on this matter.

Well when you work it out, I do not mind doing the updates. To free you and others for more new work .
 
TerrainNative on the unit was used for spawning barbarian animals which was the old mechanism for them. You can still get them to spawn by giving them Terrain or Feature Natives but that mechanism works with the normal barbarian spawning mechanism which means animals spawn less and less and barbarians more and more.

I am not sure it works for only bAnimal=1 units of not. However using it is probably not a good idea in the long run.

These tags could probably be removed from C2C to ensure the old spawn methods are not used.

We can look at that although isn't there still a use for them in defining where the animal can and can't move to or was that another tag? The old spawn methods are entirely disabled now(with a few exceptions for barbs).

I think you're on the right track, Toffer! (and wb btw!)
 
We can look at that although isn't there still a use for them in defining where the animal can and can't move to or was that another tag? The old spawn methods are entirely disabled now(with a few exceptions for barbs).
That is a different tag entirely.

I think you're on the right track, Toffer! (and wb btw!)
Good to be back. ^^
 
Ok, I'll have to investigate in the code to see if there's now use for terrain natives at all. If it can be removed it's a nicely data expensive tag so it would be good to be rid of it.
 
I am wondering if there may be a "simple" (but probably wrong:mischief:) solution to fix the problem with animals with the option "Peace Among NPCs". If it is on reduce the animal spawn rate by a third and if it is off increase the prey animal spawn rate by 3.

At the moment I am no longer enjoying the Prehistoric era because of the wild shift in the number of animals this option causes.
 
I am wondering if there may be a "simple" (but probably wrong:mischief:) solution to fix the problem with animals with the option "Peace Among NPCs". If it is on reduce the animal spawn rate by a third and if it is off increase the prey animal spawn rate by 3.

At the moment I am no longer enjoying the Prehistoric era because of the wild shift in the number of animals this option causes.

The rough spawn adjustments in use now:
Spoiler :
Code:
		<CivilizationInfo>
			<Type>CIVILIZATION_ANIMAL_PREDATOR</Type>
			<iSpawnRateModifier>0</iSpawnRateModifier>
			<iSpawnRateNPCPeaceModifier>100</iSpawnRateNPCPeaceModifier>
		</CivilizationInfo>
		<CivilizationInfo>
			<Type>CIVILIZATION_ANIMAL_PREY</Type>
			<iSpawnRateModifier>100</iSpawnRateModifier>
			<iSpawnRateNPCPeaceModifier>0</iSpawnRateNPCPeaceModifier>
		</CivilizationInfo>
		<CivilizationInfo>
			<Type>CIVILIZATION_ANIMAL_BEAST</Type>
			<iSpawnRateModifier>0</iSpawnRateModifier>
			<iSpawnRateNPCPeaceModifier>100</iSpawnRateNPCPeaceModifier>
		</CivilizationInfo>
Perhaps it should be more like this:
Spoiler :
Code:
		<CivilizationInfo>
			<Type>CIVILIZATION_ANIMAL_PREDATOR</Type>
			<iSpawnRateModifier>0</iSpawnRateModifier>
			<iSpawnRateNPCPeaceModifier>50</iSpawnRateNPCPeaceModifier>
		</CivilizationInfo>
		<CivilizationInfo>
			<Type>CIVILIZATION_ANIMAL_PREY</Type>
			<iSpawnRateModifier>100</iSpawnRateModifier>
			<iSpawnRateNPCPeaceModifier>-50</iSpawnRateNPCPeaceModifier>
		</CivilizationInfo>
		<CivilizationInfo>
			<Type>CIVILIZATION_ANIMAL_BEAST</Type>
			<iSpawnRateModifier>0</iSpawnRateModifier>
			<iSpawnRateNPCPeaceModifier>50</iSpawnRateNPCPeaceModifier>
		</CivilizationInfo>
Feel free to adjust it however you like though; I only adjusted it to work well without the option (Peace Among NPC's), you probably have a clearer idea of how it should be with the option ;).
 
I have not played fr a month so I could be way out of date. The last time I did there were so many animals you could not move withe the "Peace" option on and so few with it off that you did not get the Myths.

Edit the numbers are not as extreme with the "Peace" option on, just tested it.
 
I have asked the question here - as this is where most spawn changes have taken place, recently. Some by me.

<bLatitudeAbs>1</bLatitudeAbs> !

What value does this mean ?

If:
<iMinLatitude>10</iMinLatitude>
<iMaxLatitude>30</iMaxLatitude>

Does it mean only: Latitude +10 to +30.

Or does it mean:

Latitude +10 to +30.
and Latitude -10 to -30.

Either 1 or 0 to <bLatitudeAbs> - gives one of these settings.

I ask this question as in my own spawn file: I set Black Bears to only spawn in Asia (two latitude plus values) but they also spawn in Australia (minus latitude values).

So, if I only want them to spawn in one part of the map (not twice ), what setting should I use:

<bLatitudeAbs>x</bLatitudeAbs>, 0 or 1.

I originally used "1", then deleted all entries as that was the original default. (to save memory).

Has this changed? I thought it worked all right before.
 
=1 means only those values =0 means both hemispheres

(I had typed a detailed explanation but it disappeared into the aether)

@DH: Really; I was sure it was the other way around!

1 means that it takes the absolute value of the latitude before it checks if it is within the latitude range defined.
So:
<bLatitudeAbs>1</bLatitudeAbs>
<iMinLatitude>10</iMinLatitude>
<iMaxLatitude>30</iMaxLatitude>
means that the animal can spawn in -10 &#8594; -30 & 10 &#8594; 30 latitudes.


@Harrier: the tag defaults to 1 if removed.

-----------------------------------------
This:
<bLatitudeAbs>0</bLatitudeAbs>
<iMinLatitude>-25</iMinLatitude>
<iMaxLatitude>25</iMaxLatitude>
-----------------------------------------
equals:
<iMaxLatitude>25</iMaxLatitude>
-----------------------------------------
 
Back
Top Bottom