Spawn system

Actually, that is the point. If there are no pig resources on you continent then there will be no pigs spawned. Therefore you will have to trade for them later in the game.

Almost every thing that gets done has the effect of destroying the trade system making it irrelevant. I decided it was about time to do something that helped it instead.

Right now Neanderthals spawn from Bison, Ivory, and Deer only. The issue I ran into was that those resources are not always distributed evenly. So some players will get SWARMED,while others get completely left alone. I figured spawning them from forest, (combined with a low density setting) which is found all over the map, would encourage a more even distribution.

One bad thing about a certain animal spawning from only a specific resource is that it means not only does the nearby player have access to that bonus, but they have access to the animal spawning from it.

Modifying the map scripts could work to even out bonus placement, but I figured since the spawn from terrain was already present, that could provide more varied spawn sites.

I agree with DH, he seems to know what he is talking about, and good at it.:hatsoff:
 
In the SVN in the folder Modules/DancingHoskuld/Subdue_Animals_zExperimental/RiverCroc.
I increased the spawn rate massively to see where they spawn and they only spawned between 30 degrees north and 30 degrees south on flood plains. That seems correct. Mind though that 30 degrees is one third of the way to the poles from the equator which is not that small. For pure tropical reaches 23 degree or so as limit is more accurate.
Some maps also change min and max latitude which influences this spawning.

Using purely a feature without featureterrain was not supported. I changed that now so only specifying a feature and no featureterrain is valid on any plot with that feature. I will push it after some testing.
You have two entries with the name SPAWN_RIVERCROC_SMALL_NATIVE which might have weird effects.
 
Problem is that it removes the small number of spawn points, so you lose the strategic ability to garrison units near the spawns to keep them in check.

If the spawn point is within LoS doesn't that stop spawning though?
 
I think Mammoth resource should be added to the list. I mean what is more prehistoric than having mammoths and neanderthals in the same place?

Mammoths, Neanderthals, and Dinosaurs! :lol: :joke:

(Now I'm just teasing you :mischief:)
 
If the spawn point is within LoS doesn't that stop spawning though?

Yes, but with a large number of (say) forest plots you're never going to meet that criteria. LoS (for most units) is just one tile unless they are on a hill.
 
Actually, that is the point. If there are no pig resources on you continent then there will be no pigs spawned. Therefore you will have to trade for them later in the game.

Almost every thing that gets done has the effect of destroying the trade system making it irrelevant. I decided it was about time to do something that helped it instead.

The Great Farmer defeats trade more than spawns do. And wasn't the purpose of an animal unit turning into a bonus plot upon death to give that extra bonus opportunity? :confused:

If you want to keep trade relevant, maybe only have it so ONLY tile bonuses give normal resources, and subdued animal buildings provide Fake Goods only. You may not need the resource to produce units, but there is still the happiness or health bonus.
 
Yes, but with a large number of (say) forest plots you're never going to meet that criteria. LoS (for most units) is just one tile unless they are on a hill.

Oh, you mean to PREVENT the unit from spawning?? I thought you were talking about farming the spawns. That's what I would do with an animal spawn.

For Neanderthals... I suppose. But that seems like a cheap way to defeat their purpose. At the least then they should be popping up from some kind of village/cave/settlement that can be destroyed.

Or... make a Slaver unit that can turn their spawn point into a Prison Camp or something :lol:
 
Or... make a Slaver unit that can turn their spawn point into a Prison Camp or something :lol:

Got stuff somewhere for that. Not implemented in C2C until we can get change of civic exposed to Python. That way you only get slaves with slavery (or lower) and pions/hostages/prisoners of war at other times.
 
Got stuff somewhere for that. Not implemented in C2C until we can get change of civic exposed to Python. That way you only get slaves with slavery (or lower) and pions/hostages/prisoners of war at other times.

I'll do it tomorrow hopefully
 
I'll do it tomorrow hopefully

Got stuff somewhere for that. Not implemented in C2C until we can get change of civic exposed to Python. That way you only get slaves with slavery (or lower) and pions/hostages/prisoners of war at other times.

Cool. That will be useful for some ideas I had for FORCED Civics down the road; future-type eras mostly. As a preview, Machines/AI taking over if humanity can't manage it's cities. And Alien Occupation, if we end up going the invasion route.
 
@EldrinFal: You have to copy the new scheme to the Neanderthal folder to use those tags (Afforess_CIV4UnitSchema.xml in the main Assets/XML/Units folder). Also rename it so it replaces the schema in the respective subfolder.

Got that to work, thanks! :goodjob:

Ok. Bear in mind the relative frequency of the terrains you use though as compared to the resources it uses now. A forest spawn for example will need a MUCH lower spawn rate because there are many moer forest tiles.

I've been testing the Neanderthal spawn on Forest. The overall spread is VERY diverse. I get Neanderthals more evenly placed across the entire map now. However, the NUMBER of them is still too much. Is there a tag to limit the number on the map? I didn't see it among the tags already there. That or the radius to check has to go beyond 3.

I also saw in two instances a spawn in an area visible to me. One was a Cave Lion and the other a Neanderthal. They spawned literally adjacent to my Wanderer. It was my understanding that spawns shouldn't appear on visible land, am I wrong?
 
Got that to work, thanks! :goodjob:

I've been testing the Neanderthal spawn on Forest. The overall spread is VERY diverse. I get Neanderthals more evenly placed across the entire map now. However, the NUMBER of them is still too much. Is there a tag to limit the number on the map? I didn't see it among the tags already there. That or the radius to check has to go beyond 3.

<iTurns> is used to raise and lower the spawn rate. the higher the number the lower the rate.

I also saw in two instances a spawn in an area visible to me. One was a Cave Lion and the other a Neanderthal. They spawned literally adjacent to my Wanderer. It was my understanding that spawns shouldn't appear on visible land, am I wrong?

That depends on the tag <bNotInView> which I have not set for any of the animals yet.
 
<iTurns> is used to raise and lower the spawn rate. the higher the number the lower the rate.

I have it at the default of 15. What is the specific logic so I can figure out a good number to mess with?

That depends on the tag <bNotInView> which I have not set for any of the animals yet.

I see.
 
I have it at the default of 15. What is the specific logic so I can figure out a good number to mess with?
iTurns is currently the average number of turns to spawn one on every valid spawn plot.
So if you have set it to 15 and valid spawn plot as desert without features then every single desert without features will spawn a unit every 15 turns on average.
With 30 deserts like that on the map 2 would spawn every turn on average.
 
iTurns is currently the average number of turns to spawn one on every valid spawn plot.
So if you have set it to 15 and valid spawn plot as desert without features then every single desert without features will spawn a unit every 15 turns on average.
With 30 deserts like that on the map 2 would spawn every turn on average.

HUH, thats quite nifty to know, and nice work btw;)
 
iTurns is currently the average number of turns to spawn one on every valid spawn plot.
So if you have set it to 15 and valid spawn plot as desert without features then every single desert without features will spawn a unit every 15 turns on average.
With 30 deserts like that on the map 2 would spawn every turn on average.

You guys really like using complex variables :confused:

What about just a straight number of maximum spawns allowed per turn? That way regardless of number of tiles that fit the spawn point value, the number is capped per turn.
 
You guys really like using complex variables :confused:

What about just a straight number of maximum spawns allowed per turn? That way regardless of number of tiles that fit the spawn point value, the number is capped per turn.

That would be way harder to normalize - you'd have to use a 2-pass process (or store significantly more state) to ensure a randomized distribution even when the cap on number-per-turn is being hit. It also would need normalization for total land area/sea area not just map size, which the current system doesn't.
 
That would be way harder to normalize - you'd have to use a 2-pass process (or store significantly more state) to ensure a randomized distribution even when the cap on number-per-turn is being hit. It also would need normalization for total land area/sea area not just map size, which the current system doesn't.

The cap would be in addition to the density and feature/terrain setting.
 
The cap would be in addition to the density and feature/terrain setting.

Right, but how would you apply it? If you just stop spawning in a given turn after <cap> is reached then only the plots considred first will get spawn chances, which just means all spawns will bunch up in whatever subset of plots is processed first. That's why you need 2 passes (or a non-geographically localized enumeration order possibly), so that you can evaluate the want-to-spawns in the first pass then actually spawn a culled set (by striping say) that is not biased to any particular enumeration order. It just makes it more complex (and slower) is all - the original system is simple and intended to be very efficiently implementable since it's an overhead on every turn.
 
Top Bottom