TFCT: Almost all livestock are old
Gaelmare opened this issue ยท 8 comments
Since livestock get old, and never respawn, SMP servers will soon run out of livestock, especially if world borders and pregeneration are used.
I suspect that the age distribution for most of the livestock seen on the TFCT stream was due to bugs fixed since the server was initially pregenerated. However in a general SMP case, livestock getting old and not respawning will result in almost no viable livestock in just a couple of months.
- TFC Version: build 129-144
Isn't it unlike chunk regeneration in that you don't need to decide when to stop creating new animals if it's a 1:1 replacement? Just spawn a new animal when an old one dies or is that also problematic for the code/server somehow?
There are a number of problems with that proposal:
- It's thematically rather stupid, and will look stupid when it occurs, and the restriction on familiarity is stupid (but understandable (but still stupid)).
- It's quite easily exploitable. Animal is old? Bring it back and then wait for it to magically turn young again, which rather defeats the entire point of the system. If that's the case then why should wild animals get old at all.
- Animal death (which is disabled by default) only occurs in loaded chunks, and only when actually ticked (afaik it's not retroactive) meaning this does not actually solve the problem of "I'm exploring and all my animals are old", rather just introducing the only solution as the aforementioned "wait for rebirth".
The current default settings are pretty bad for SMP and it wouldn't be a huge loss to SSP to turn off aging for this reason so I guess I'd be happier with aging being turned off by default. That would be a shame though as a way to replace dying animals seems to be all that's needed here, which is why I thought this was an idea that could have been worked into something useful to complete what seems to be a partially developed system of life and death for animals.
Can't you make it so animals only start aging once someone interacts with them?
Alternatively, you could somehow model seasonal animal migration, so any area with rich vegetation & fresh water, away from civilization (e.g. areas not frequented by players) could attract animals at certain times of the year, if there is no existing wildlife in the area?
There's a functional solution: disable animal aging (it's up for debate whether this should be done by default).
however, unlike food decay, because (surprise) animals actually exist in the world, there are some things that we can do about this.
- Make animals appear / disappear (basically respawn / die due to old age affects). Hello chunk regeneration, anyone want to write this properly? (Given that it's been tried twice and both had some serious issues.)
- Make animals only age when ticked? However this would be reverting a huge amount of design philosophy that has gone into the implementation of not only animals, but the entire mod. For instance "why doesn't my animal age when I leave the area and come back.".
Fundamentally, we rely on time tracking. If there's a server which is going to have different players online at vastly different frequencies, then as a server manager you're going to want to either extend food decay and/or animal aging so it becomes a non-issue in your case, or disable it completely.
And in the same manner as #1059, this is an issue with no good solution other than "rework the entirety of time tracking", which we aren't going to do.
Thanks for feedback on this one. I agree that the time tracking decision has been made.
Glad to hear that livestock respawning is a possibility. It would allow predators to hunt them as well, which is more believable.
Not sure that I would do any better of a job than you two experts here for regeneration. Both crops and livestock should potentially respawn during certain times of the year, and only once per year, which does help. Stick, rock, and ore nugget respawns seem much more problematic, because when do you stop?
This one looks like food decay, where SSP and SMP gameplay is different. Not sure how to proceed besides disabling elderly/extending the time in configs. If i do some sort of "protection", and halt their age advancing somehow (ie: when reloading from disk only age by a maximum number of days), it will also affects player livestocks unintentionally.