This post has been de-listed
It is no longer included in search results and normal feeds (front page, hot posts, subreddit posts, etc). It remains visible only via the author's post history.
This post is not a change log, but rather a bit of insight into my current doing, possible changes and what I've been thinking about. None of this is anywhere close to final, maybe it'll be scraped entirely, maybe not.
A while back someone (I think it was Topaz?) in ! chat brought up the topic of growing tree schematics from saplings to add a bit of variety to vanilla trees. That idea was proposed before, but at the time RealisticBiomes was being held together by glue and string, which made more significant additions to it rather hard. After rewriting it entirely as part of our 1.14 changes this is a very achievable task though, in fact adding it took only a few hours. Growing static schematics is pretty boring though and in the same original discussion bgbba (yes) had suggested the concept of being able to grow trees with certain properties and some way to breed them, which I found quite intriguing. I'm not sure how serious the original suggestion was, but I think it has a lot of potential to work with.
So my initial spec for it was as follows:
- Lored saplings can grow into custom trees
- Properties of the grown trees such as height, amount of leaves, stem thickness, type of leaf, type of wood, curvature, branch amount, branch length etc. depend on the sapling planted, it has those properties statically encoded
- There is some way for players to see the properties of a sapling, maybe through its lore or a factory/command if lore would be too long
- When a sapling grows, a bit of random deviation is applied to all of its values
- The saplings dropped from the leaves of those trees have the same values/custom sapling stuff attached to them as the tree they grew from (which is possible thanks to our cool block storage API in civ14)
- Saplings can be combined (crafting or factory) to retrieve the intermediate of all their growth values
- Initial base sets of these saplings can be obtained from fossils
This lets you selectively breed trees of whatever kind you want, its like a much more complicated version of horse breeding (due to much more variables being part of it). I considered implementing proper Mendel style genetics with 2 genes for every slot and recessive/dominant properties, but decided against it, because I felt like it'd needlessly complicate it without making it better.
Further this got me thinking though that if we can do custom per block drops with the saplings, we could as well do other cool stuff with it. What if we make different types of trees and the same way oak trees drop apples, those drop avocados, bananas or mangos? The type of fruit would be a property on the sapling and those fruits could be used in XP recipes. They are difficult to bot due to being bound to randomized trees (which isn't too bad imo), but you could likely cultivate a bottable strain. You could even offer an optional texture pack the way civex did to offer retextures for those items. You could likely also integrate them into Brewery very well.
I started experimenting with possible implementations for such random trees based on probabilistic context free grammars and got okay results. After a few days of messing with it, I could generate good trees and other abominations, but not figure out a way to properly extract configurable parameters such as height in a way that satisfied me. The CFG were too random and too generalized, so instead I've been working on an approach based on more static generation based around Gaussian curves/randomness for all of the properties used. Seems promising so far, but it's not far enough along yet to tell whether it can do everything I want it to do.
I've also been thinking about growth rates for these new trees, which is difficult to define, because there is no single static plant you can map to certain biomes. Instead it is a range containing all kinds of variations of trees without any clear cuts. Thus it'd imo make more sense to define properties like temperature and humidity (maybe other stuff, but not sure what (y-level?)) for each biome and have those influence the saplings growth times. This would be part of the breeding process, so if you wanted you could eventually make an acacia sapling which grows in the cold (but not warm) biomes etc.
This kind of feels like a more elegant solution in general for RB than the arbitrary plant <--> biome mapping we are currently using, but a change to those might be difficult for civclassic, because it could make some existing farms obsolete. Possibly a config based around those parameters could be in its results similar to the current config and get away without much disruption, I haven't looked too much into that.
So custom breeding trees yay/nay?
Mango update yay/nay?
Base crop growth on more general biome properties than biome itself yay/nay?
Subreddit
Post Details
- Posted
- 4 years ago
- Reddit URL
- View post on reddit.com
- External URL
- reddit.com/r/civclassics...