Moderator: OpenTTD Developers
Would you please tell your opinion on extending the tree growth behavior in the main branch.
I am among the people who prefer to reduce number of trees / alter tree behavior / make tree density depending on altitude. I searched through the forum and have found some patches, starting from 2010, targeting the issue in different ways (like this viewtopic.php?f=33&t=72502, this viewtopic.php?p=848591#p848591 and this viewtopic.php?f=33&t=83465).
As far as I understand none of them made a way to the official branch, probably due to reasons explained here https://github.com/OpenTTD/OpenTTD/blob ... ject-goals. But to my current understanding the trees behavior cannot be altered "via add-ons like NewGRF and GameScripts". (Is it so?)
I'm very much interested what would be accepted way to provide the functionality of fine-tuning tree behavior to general users and to accept tree-related patches in trunk.
My particular interest is to host game server with altered tree behavior which would work with clients using main branch version.
The argument against abstracting away trees is that they have two gameplay effects, one is town rating (destroying or planting trees altering your rating), the other being for the tropical landscape sawmill to cut down for production.
You won't be able to make a server with altered tree growth algorithm and have unmodified clients work with it. Tree growth is part of the simulation, which means the server does not send which tiles get new trees or where trees wither, etc., those are decided based on the RNG and reproduced on server and client identically. If you modified the server when the RNG progression would differ between server and clients and cause very fast desyncs, and also clients would never know how the server placed trees differently anyway.
I have looked thru code and understand the current situation. But what kind of changed might be done to be accepted to main branch? As none of existing patches were accepted.
Could tree growth logic be implemented with some pluggable mechanism, like newgrfs or scripts?
It could give a lot of interesting effects, and would probably cost a lot of simulation speed on large maps.