Breaking Save Game Compatibility for v37

Which I think, in all seriousness, should be converted to an actual rabbit. I think we've needed the creature for a while now since all other resource based animals, with the exception of the guinea pig (which we need as well imo) have been included in the game and certain things we might wish to do in the future regarding herds and resource conversions may be better off if we have the animals that represent those bonuses as units in the game.

The Bonus Guinea Pig is already in the game. Though it does not spawn.

However, I would ask y'all to come up with a more concise definition for the third team. We have Beasts and Creatures. What's the third? Implementing the third would be very easily done.

How about Defensive. Is a passive animal that does not usually attack. But will aggressively defend its territory or young.
 
The Bonus Guinea Pig is already in the game. Though it does not spawn.
That's my point... this is why the Guinea Pig needs to also be a unit!



How about Defensive. Is a passive animal that does not usually attack. But will aggressively defend its territory or young.
While I do think we need a tag for animal behavior for this, behavior in itself isn't necessarily the basis for team assignments so much as 'food chain' would be. Which is why the Alpha/Beast/Creature arrangement gives us a capability of establishing that food chain sufficiently.
 
My experience so far with the new animals

1) Recon units can't get exp because nothing attacks them

2) Recon units can explore the world very early on because nothing gets in their way

3) Hunter units have a hard time killing animals. Animals don't attack hunters either.

4) The paleolithic explosion does not happen because you don't capture enough animals to get the Myths that are there for just this purpose.

5) I have noticed a few barbarian stone throwers being spawned. They should not be until later in the tech tree.​
 
My experience:

After 181 turns (eternity) there were about 10 animals on my giant map.
In contrast there were close to a 100 barbarian brutes and stone throwers.
This was after I halved the iTurns for every animal in the SpawnInfo file, and adjusted iBarbPercent from 2000 to 4000 in GamespeedInfo.
Animals need to spawn far more frequently.

Also, barbarians (any AI I guess) are unable to use the ambush mission; they always move away to prepare an attack for the next turn when sharing a tile with a unit they only see because of same tile visibility.
 
If recons got a same-tile-attack, could they still enter foreign territory without open borders / DoW?
 
If recons got a same-tile-attack, could they still enter foreign territory without open borders / DoW?

It's fully possible for any unit to be made eligible for right of passage if we want them to be, no matter if they can attack, ambush, assassinate or whatelse.
 
Then perhaps that could solve the problem: Give recons a same-tile-attack, so that they can coexist with other units, but also have the option of attacking them. That way they could attack animals as well.
 
My experience so far with the new animals
Are you using any of the 3 new game options or is this just core functionality?

DH said:
1) Recon units can't get exp because nothing attacks them

2) Recon units can explore the world very early on because nothing gets in their way
You would probably prefer the reckless animals option then. I don't feel scouts should be proxy hunters that soak up animal attacks to hunt. However, it's also possible that some of the animal aggression settings are simply too low and/or we're not getting enough spawning animals in general.

Currently, too, there has been a bug in the Peace Among NPCs option that has accidentally meant that there is no war between NPC nations and any other nation at all, therefore animals and people were in perma-peace rather than the state of natural conflict they should be in.


DH said:
3) Hunter units have a hard time killing animals. Animals don't attack hunters either.
Combat's not been changed but animals of very low aggression will currently try to run away from visible threats. I'm looking at a new tag to get many animals to ignore visible threats.


DH said:
5) I have noticed a few barbarian stone throwers being spawned. They should not be until later in the tech tree.[/INDENT]
I'm not sure what changed here that's allowing barbs to spawn earlier than they used to but I'm really liking it. I don't think there are many barbs in the spawn infos so it must have something to do with some code changes in the dll based coding method. Out of curiosity, why would it be a bad thing that we're finally getting some human barbarians a little earlier?

My experience:

After 181 turns (eternity) there were about 10 animals on my giant map.
In contrast there were close to a 100 barbarian brutes and stone throwers.
This was after I halved the iTurns for every animal in the SpawnInfo file, and adjusted iBarbPercent from 2000 to 4000 in GamespeedInfo.
Animals need to spawn far more frequently.
I agree we need a lot more animals spawning - this wasn't an issue until the last few commits... I just ran a test here that took about 10 rounds to finally see any spawns at all.

Also, barbarians are unable to use the ambush mission; they always move away to prepare an attack for the next turn when sharing a tile with a unit they only see because of same tile visibility.
hmm... I can take a look at that but it'll depend a lot on the AI they are using and I'll have to identify that first.
It's fully possible for any unit to be made eligible for right of passage if we want them to be, no matter if they can attack, ambush, assassinate or whatelse.
Then perhaps that could solve the problem: Give recons a same-tile-attack, so that they can coexist with other units, but also have the option of attacking them. That way they could attack animals as well.
Perhaps it would be nice to be able to make a unit capable of ambush but not other attacks. I believe that's possible with Assassinate already so they could be given the ability to assassinate animals like hunters can if that would be sufficient.
 
hmm... I can take a look at that but it'll depend a lot on the AI they are using and I'll have to identify that first.
UNITAI_ATTACK, at least that's the default AI for the units I experienced this with; and I experienced it so much that I felt it was completely safe to move into the same plot as barbarians as long as he didn't have a friend in an adjacent plot that would attack.
 
There is one more set of changes that need doing that break saves. However they should not be breaking saves and I haven't proven to myself that they aren't broken for new games either yet.

If you have a module with units and their missions in it moving the XML to core means the units loose their missions. (I am not sure if it is just existing units or new units in a save game either.)

This happened the last time I tried to move the Story Teller and Merchant lines of units out of my area and into core.
 
UNITAI_ATTACK, at least that's the default AI for the units I experienced this with; and I experienced it so much that I felt it was completely safe to move into the same plot as barbarians as long as he didn't have a friend in an adjacent plot that would attack.

Ok... I'll look into it.

BTW, I suppose you're probably wondering why animals set to spawn inside borders aren't doing so even when not playing the Animals Stay Out option (ASO option).

I probably forgot to mention that I have implemented a few things in the code for this. First of all, I changed bAnimalIgnoresBorders and bAnimalIgnoresBordersChange tags to iAnimalIgnoresBorders and iAnimalIgnoresBordersChange tags. From a boolean to an integer.

The way it currently works is that if the ASO option is off, and the spawn is 0 on bNeutralOnly, then there's a third check to validate an animal spawning within borders.

This also applies to where animals can move within civilization borders so it's applicable to BOTH spawns AND general movement rules. However, consider, when reading the rule change I'm about to explain, that promotions only add to an animals ability to encroach on human territory after the animal has been spawned. Even free promotions cannot factor into the spawning rules for the animal, only the base iAnimalIgnoresBorders tag on the unit info and any of the animal's unitcombats that have further iAnimalIgnoresBordersChange tag usage will total to establish the capability of an animal to spawn.

So the rule is this:
- If an animal's total AnimalIgnoresBorders tags sum up to 3 or more, the animal can enter cities (if they have this from unitcombats and base info alone they can spawn in cities.) This also means the animal automatically qualifies to be considered capable of blending into cities harmlessly and therefore only assassination can target them there.

- If an animal's total AnimalIgnoresBorders tags sum up to 2 or more, the animal can enter owned and improved tiles (but not cities.) They can spawn on such tiles if from unitcombats and base info total this high.

- If an animal's total AnimalIgnoresBorders tags sum up to 1 or more, the animal can enter owned territory but not if the tile is improved. They can spawn on such tiles if from unitcombats and base info total this high.



This rule has gone into effect in the code already and I'm sorry I've been so foggy headed here as to forget to mention this earlier.

If you follow me on what I've explained here, feel free to set animals however you feel will be correct with these tags.
 
Spoiler :
Ok... I'll look into it.

BTW, I suppose you're probably wondering why animals set to spawn inside borders aren't doing so even when not playing the Animals Stay Out option (ASO option).

The way it currently works is that if the ASO option is off, and the spawn is 0 on bNeutralOnly, then there's a third check to validate an animal spawning within borders.

This also applies to where animals can move within civilization borders so it's applicable to BOTH spawns AND general movement rules. However, consider, when reading the rule change I'm about to explain, that promotions only add to an animals ability to encroach on human territory after the animal has been spawned. Even free promotions cannot factor into the spawning rules for the animal, only the base iAnimalIgnoresBorders tag on the unit info and any of the animal's unitcombats that have further iAnimalIgnoresBordersChange tag usage will total to establish the capability of an animal to spawn.

So the rule is this:
- If an animal's total AnimalIgnoresBorders tags sum up to 3 or more, the animal can enter cities (if they have this from unitcombats and base info alone they can spawn in cities.) This also means the animal automatically qualifies to be considered capable of blending into cities harmlessly and therefore only assassination can target them there.

- If an animal's total AnimalIgnoresBorders tags sum up to 2 or more, the animal can enter owned and improved tiles (but not cities.) They can spawn on such tiles if from unitcombats and base info total this high.

- If an animal's total AnimalIgnoresBorders tags sum up to 1 or more, the animal can enter owned territory but not if the tile is improved. They can spawn on such tiles if from unitcombats and base info total this high.



This rule has gone into effect in the code already and I'm sorry I've been so foggy headed here as to forget to mention this earlier.

If you follow me on what I've explained here, feel free to set animals however you feel will be correct with these tags.
I probably forgot to mention that I have implemented a few things in the code for this. First of all, I changed bAnimalIgnoresBorders and bAnimalIgnoresBordersChange tags to iAnimalIgnoresBorders and iAnimalIgnoresBordersChange tags. From a boolean to an integer.

I see, updated the SVN now from <bAnimalsIgnoreBorders(Change)> to <iAnimalsIgnoreBorders(Change)>

Though I'm not too clear on why we need the third check... I would think it adequate enough that they are defined as capable of spawning inside cultural borders in the SpawnInfo by bNeutralOnly=0 and the GameOption ASO=0.
Doesn't matter much though as all animals that have bNeutralOnly also have a sum of iAnimalsIgnoreBorders=1.

How would this affect things if we someday decides to let e.g. Locust swarms spawn within borders; a unit that doesn't use UNITAI_ANIMAL. We would have to give it iAnimalIgnoresBorders=2, wouldn't we?
 
No... only affects animals. Spawns look for the animal definition by UNITCOMBAT_WILD so as long as that is not one of the unitcombats for a locust, the locust can even be an animal player unit and would still ignore this third check.

Some animals, like pigeons, for example, would be perfectly at home within a city. Deer would not. Deer, however, may be just fine to wander through a farm, while a beaver would not, though if the territory was owned by people or not isn't really much of a concern for a beaver so long as the human activity is low.
 
No... only affects animals. Spawns look for the animal definition by UNITCOMBAT_WILD so as long as that is not one of the unitcombats for a locust, the locust can even be an animal player unit and would still ignore this third check.

Some animals, like pigeons, for example, would be perfectly at home within a city. Deer would not. Deer, however, may be just fine to wander through a farm, while a beaver would not, though if the territory was owned by people or not isn't really much of a concern for a beaver so long as the human activity is low.
OK, pigeons was the first animal I thought about when reading your last post. ^^

Edit: I still think that one of the checks are redundant with the other. Either bNeutral or the check that looks for ( iAnimalIgnoreBorders > 0 )

I do assume that both have to right (1 1) for an animal to spawn inside borders, not just either OR (1 0, 0 1).


It may serve a purpose if a spawn entry defines e.g. a lion and a pigeon (GroupSpawn) to spawn with bNeutralOnly=0 on the same plot and then only the pigeon spawns if it happens to occur within borders...
 
Harrier: Only 2 <spawn groups> exist, Bison and Wolf (these spawn 3 instead of 1 animal). EDITED from original post.

Those spawns should stay (and feel free to add more where you feel they should be added so long as DH is cool with that). They affect the core game whereas the GroupSpawnUnitCombatTypes tag usage does not. These spawns are simply turned off by the Size Matters option so as to keep from having overlap of intent while SM is on.

My thoughts are that a lot of animals keep together, so could be in herds/packs. But some herds/packs are so small that it should only spawn one animal.

So as currently defined, the spawn would be one animal or a small group. {1 actual animal}

NEW
For some animals, that group in larger numbers, but not to large. [to be defined] - {2 actual animals}

EXISTING
For larger herds. (i.e.Wilderbeasts) - {3 actual animals}

And so on. The ranges just need to be defined and the numbers to be spawned.

Question?
Should I still research this, or wait till we get better spawning/attacking etc. with the new animal system? :)
 
My thoughts are that a lot of animals keep together, so could be in herds/packs. But some herds/packs are so small that it should only spawn one animal.

So as currently defined, the spawn would be one animal or a small group. {1 actual animal}

NEW
For some animals, that group in larger numbers, but not to large. [to be defined] - {2 actual animals}

EXISTING
For larger herds. (i.e.Wilderbeasts) - {3 actual animals}

And so on. The ranges just need to be defined and the numbers to be spawned.

Question?
Should I still research this, or wait till we get better spawning/attacking etc. with the new animal system? :)
You could keep researching it, but I think we need to observe the new animal dynamic that arise from predation a bit more before we should significantly change spawning. Dangerous animals will get far more dangerous trough leveling up, so they may have to spawn less frequently, while harmless animals may be underrepresented as they get preyed on now.
The tricky bit will be to satisfy those playing with the GameOption that removes animal predation (NPC always at peace... or some such).
 
Dangerous animals will get far more dangerous trough leveling up, so they may have to spawn less frequently, while harmless animals may be underrepresented as they get preyed on now.

Agree - but it is usually, the harmless animals that herd together (so should spawn more than one unit). The more of them the less likely you will be the victim. (herds).

Of course some aggressive animals - wolves (form packs).

So we may need to distinguish between herds (passive) and packs (aggressive).

l
 
I can't exactly remember the correct figures but in nature it is 200 prey for each hunter.

I am finding the early game exceedingly boring at the moment with very long turn times. My computer thinks the game has stopped running twice per turn at the moment.
 
I am finding the early game exceedingly boring at the moment with very long turn times. My computer thinks the game has stopped running twice per turn at the moment.

Yeah my BRAND NEW PC, with a Nvidia 980 is taking about 10X loooonger to turn times. And this is only after 10 turns, it used to take 10 seconds for all of Ancient, now its over 30 seconds per turn(after 10 turns), really bad, thats why i bought this new PC. .
 
Back
Top Bottom