Aging Animals

ori

Repair Guy
Retired Moderator
Joined
Dec 17, 2005
Messages
16,547
Location
Baden-Württemberg, Germany
I quite like the mechanic from the RifE mod that allows for units, specifically animals, to age and become stronger in the wild as time goes by, allowing for some dangerous parts of wilderness to persist for quite a while.
This module now aims at achieving something like this through a rather simplified implementation. What it does right now is check the age of every barbarian animal unit each turn and give some XP depending on age and at larger intervals increase their base strength.
Specifically I have currently set it so that an animal that spawns on turn 1 and survives to the last turn of the game will accumulate 1000 XP and increase its original strength 20-fold :evil: This affects barbarian animals only right now.
I would appreciate comments on this module, although since its still bound to be horribly unbalanced and I don't want to get into the way of the current animal balancing in general I will turn it off by default. This module will be pushed to SVN once the current freeze lifts, if you want to turn it on, please open \assets\config\init.xml and go way down to the end of the file - there remove the comment signs around the aginganimal module, i.e. change
Code:
<!-- <load mod="AgingAnimals"/> -->
to
Code:
<load mod="AgingAnimals"/>
 
I think the main issue one is one of differences in scale; RiFE seems to operate (the units aren't listed, so this is largely just an inference from events and in-game descriptions) on a scale of months or even weeks, while C2C will have single turns in some eras that last decades. The animal units there seem more representative of anywhere from an individual pack of a few dozen up to a herd of a couple thousand, while C2C's animals strike me as less units in their own right than living terrain damage mechanics, representing the populations of entire regions.

Over the years, these individual animals in RiFE (a mod which also has much greater emphasis on individual unit development due to it's fantasy setting) would be battle/hunt hardened and toughened, and most of them had set lifespans. The populations represented in C2C have likely been present for hundreds of thousands or even millions of years; their experience is already maxed out at that level, and the only real major effects humanity will have on them is reducing their populations, taming them, cloning them, genetically modifying them and what have you.

I do like the idea of stronger animals to make them a real viable nuisance up until the age of steel, but I think giving them stronger bonuses for their native terrain and maybe toning down the bonuses hunters get against them would do the trick in a simpler and less CPU-intensive way. Though, I understand the problems with ungodly numbers of animals and Neanderthals spawning in uninhabited areas is a thing of the past with the new scripts, so only time will tell.
 
The problem with animals being viable for any length of time is simply that the available units for players are scaling in base strength too much - so in order for that to work one would need to have a few versions of each animal unit with different base strengths spawning at different times so that e.g. classical era units don't just use animals as free XP...
This here by the way does not address the hunter problem - even a strength 100 wolf will easily be killed by any attacker with a +300% vs. animals bonus with a base strength of 5...
As for time scale: well really if you are looking for (the feel of) realism, then this is not a good mechanic, I agree, though it might allow some wilderness refuges to stay tough while not stopping early expansion too much...
 
I quite like the mechanic from the RifE mod that allows for units, specifically animals, to age and become stronger in the wild as time goes by, allowing for some dangerous parts of wilderness to persist for quite a while.
This module now aims at achieving something like this through a rather simplified implementation. What it does right now is check the age of every barbarian animal unit each turn and give some XP depending on age and at larger intervals increase their base strength.
Specifically I have currently set it so that an animal that spawns on turn 1 and survives to the last turn of the game will accumulate 1000 XP and increase its original strength 20-fold :evil: This affects barbarian animals only right now.
I would appreciate comments on this module, although since its still bound to be horribly unbalanced and I don't want to get into the way of the current animal balancing in general I will turn it off by default. This module will be pushed to SVN once the current freeze lifts, if you want to turn it on, please open \assets\config\init.xml and go way down to the end of the file - there remove the comment signs around the aginganimal module, i.e. change
Code:
<!-- <load mod="AgingAnimals"/> -->
to
Code:
<load mod="AgingAnimals"/>

Examining every unit every turn in Python will almost certainly be too CPU intensive. I'd need to profile it to be sure but I'd guess we're looking at several percent of total turn time. If we want a mechanism like this (I'm agnostic) then IMO we need to express it via XML tags and implement it in the DLL for efficiency
 
actually this is one of the reasons I'll turn it off by default, however I'll actually have it run only on every 20th turn. Also it should only look at every unit of the barbarian player - which actually likely diminishes by the time other players have large numbers :mischief:
I agree that this would best be implemented in the DLL if people actually want it, I just thought I'll throw it out there so people can chime in with whether they want something like this or not ;)
 
actually this is one of the reasons I'll turn it off by default, however I'll actually have it run only on every 20th turn. Also it should only look at every unit of the barbarian player - which actually likely diminishes by the time other players have large numbers :mischief:
I agree that this would best be implemented in the DLL if people actually want it, I just thought I'll throw it out there so people can chime in with whether they want something like this or not ;)

I think as long as the resource usage is minor, it would be a neat addition. There should be a limit on the maximum an animal can grow-- and on THAT note, could it even be possible to scale the model slightly larger with each increase? So not only does it get stronger, but it gets bigger, and thus more menacing and identifiable?

I've even been mulling over the idea of an animal spawning from another animal. Maybe only from animals that have reached the max STR and only once in their lives?

I also think the innate bonus vs animals for hunters need a bit of looking at as well, which I've mentioned in other threads. DH has authority over that so he'd need to make those changes. +325% for the Ranger is an awful lot.
 
I think as long as the resource usage is minor, it would be a neat addition. There should be a limit on the maximum an animal can grow-- and on THAT note, could it even be possible to scale the model slightly larger with each increase? So not only does it get stronger, but it gets bigger, and thus more menacing and identifiable?

I've even been mulling over the idea of an animal spawning from another animal. Maybe only from animals that have reached the max STR and only once in their lives?

I also think the innate bonus vs animals for hunters need a bit of looking at as well, which I've mentioned in other threads. DH has authority over that so he'd need to make those changes. +325% for the Ranger is an awful lot.

Just add:

<fStrengthGrowthRate> (% per turn, default 0 if not specifed); and
<iMaxBaseStrength> (max it grows to)

and implement in the DLL (very trivial). DLL would auto-scale for game speed, so what is set in the XML would be normalized in the same way as are all other turn counts (I think its the specification on 'normal' that is 1:1 but I'd have to check to be certain)
 
Well, ther is something like that in the game already. In public v17 I've noticed that planes set to automation gain xp for automated patrols/bombing and such. If you made animals get xp for some automated actions you could do this.

Could be a dynamic xp thing.
 
Well, ther is something like that in the game already. In public v17 I've noticed that planes set to automation gain xp for automated patrols/bombing and such. If you made animals get xp for some automated actions you could do this.

Could be a dynamic xp thing.

They already do if people attack them and lose (which is how the plabes get XP from their patrols essentially). Maybe we want multiple animal 'factions' (at least predator and prey) that cause them to attack one another to generate in-the-wild promotions like this. Would require at least 2 barbarian players, but I'd really like to separate animals to a different player than other barbs anyway, since right now the animals and the barbs almost cooperate which seems quite wrong.
 
They already do if people attack them and lose (which is how the plabes get XP from their patrols essentially). Maybe we want multiple animal 'factions' (at least predator and prey) that cause them to attack one another to generate in-the-wild promotions like this. Would require at least 2 barbarian players, but I'd really like to separate animals to a different player than other barbs anyway, since right now the animals and the barbs almost cooperate which seems quite wrong.

This is SOMEWHAT similar to what AIAndy has on his list, so maybe those goals can be combined? I'd go further and say create more than one barbarian tribe so even they can fight each other AND animals and level up.
 
This is SOMEWHAT similar to what AIAndy has on his list, so maybe those goals can be combined? I'd go further and say create more than one barbarian tribe so even they can fight each other AND animals and level up.

A generic mechaism to have multiple barbarian players would certainly solve this, then we just divide the animals into their own reserved facion (or possibly 2 if we want the predator-prey relationship).
 
This is SOMEWHAT similar to what AIAndy has on his list, so maybe those goals can be combined? I'd go further and say create more than one barbarian tribe so even they can fight each other AND animals and level up.

I've suggested this before and still really like the idea. In fact, I'd go 3 steps farther and separate out Carnivores, Omnivores (Bears usually), Herbivores, Neanderthals and Human Barbarians.

Also... couldn't spawn points be naturally placed 'improvements' such as Cave Bear Cave or Lion Pride etc...?
 
Also... couldn't spawn points be naturally placed 'improvements' such as Cave Bear Cave or Lion Pride etc...?

Yes they could we may even have graphics somewhere. However then we would need to spawn those as well since most predators follow the herds to some extent.
 
Interesting thought... what if animals had a mission button to plant such 'spawn improvements' and an AI to plant them where, if prey: they have a perfect set of habitat conditions, and if carnivore: they have their preferred prey nearby?
 
I like this idea. However it would be nice if we could have regional group improvements. I could totally set up a list of animal groups based on their ecosystems on Earth such as African Savanna, Amazon Rainforest or Australian Outback.

Alternatively we could just assign a resource such as Silk gives animals from China or Coffee give animals from the Amazon.
 
@Koshling... actually planes gain a quarter of an xp when doing scouting patrols. Good for checking for incoming boat hoards and spotting random animals to hunt.
 
I'm not sure about aging animals though stronger from start whereby actually needing those Recon/Hunter type units in the beginning to survive a trip through the landscape. As weapons and armour get more advanced animals pose less and less of a threat to military troops.

Cheers
 
well the thing is: animals should be a challenge early on but not such a challenge that it becomes impossible to explore - later when the hunters come in though they should be more than free XP IMHO, while even later they should not be that much of a threat. Essentially I'd want animals to be a real challenge atleast through the ancient era - but at the same time not kill every prehistoric unit leaving the cultural borders. There are multiple ways to do this, I am just proposing one.

Speaking of which: I just pushed this to SVN, but with quite some changes:
It runs every 30th and every 250th turn (on snail speed, adjusted for speed setting) only.
At each 30th turn it will add one combat promotion to any animal that does not have it already, starting with combat I. If an animal has all 6 combat promotions it gains 3 XP instead.
Every 250th turn it increases the strength of every animal by 1.

As I said the module is turned off by default, but if anyone cares to check it out I'd be happy about further comments. In any case if something like this is to be actually implemented for the mod, it should probably go to the DLL, so at some point ones a decision either way seems to be made I'll remove the module again :p
 
Back
Top Bottom