In my last musings post I put forth the proposals that:
- Plants should live for at least as long as it took them to grow, and
- Beyond that, their lifespan will depend on availability of resources.
Since then I’ve done some fiddling with the numbers, however, and discovered that just doesn’t work, if I stick with my use of the average of available CAs to determine the tick setting. I even changed the arbitrary minimum divisor based on the average of available CA levels from 0.01 to 0.1, but it still worked out that plants in areas with poor resources lived significantly longer than their counterparts in fertile areas.
I’m still real attached to the idea that it should take plants longer to grow with fewer resources, but I can’t accept having them actually have longer lifespans, so I had to go back to the drawing board. I figured that while I was at it, I might as well look into seasonal growth too, which meant I had to find out about seasons, and probably come up with a new approach that measured lifespans in some amount corresponding to them in some way.
According to Liam, one real-world second is about 19.5 ticks. Somewhere over on CDN, I learned that one game day is 20 minutes long, so:
19.5 ticks/sec * 60 sec/min * 20 min/day = 23400 ticks per game day
And finally, there are 4 days per season in C3/DS, with the usual 4 seasons; spring, summer, autumn, and winter. Now, how to put all of this together?
The approach I’m working on now is that timer cycles are still determined as before, by dividing some base value (currently 50 for bleubells and 100 for starflowers) by the average of available resources. This results in values ranging from around 56 ticks up to 500 (my arbitrary maximum for rooms with no appreciable CA levels). Except for the new arbitrary minimum, this part is the same as before.
The new part is that I decided to allow the plants to have approximately the same lifespan in poor-quality areas as in fertile areas. For bleubells, I set that at one game day, and for starflowers, two. The new versions will grow at the rate allowed by room CA levels, whether fast or slow, and then every so many cycles (currently 40 for bleubells and 80 for starflowers) they get to produce a seed. At the end of their lives, they get to splurt out one last seed, and then they spend their last few remaining cycles dying. (And no, most plants don’t produce seeds throughout their lifetimes, but hey, they’re not EARTH plants, so a little bit of weirdness should be okay, as long as it makes sense in some way!)
For plants in poor-resource areas, the result is that although they live as long as their counterparts, they spent a larger proportion of their lifespan growing. Once they reach adulthood, they don’t get as many chances to seed. Using the numbers I’ve mentioned here, the plants in the poorest areas will produce a maximum of two seeds in their lifespans, while the ones in fertile areas could produce as many as…well, I haven’t calculated it, and I’m feeling lazy, so we’ll just say somewhere around 10. Roughly. I think.
I’m thinking that seeds shouldn’t sprout in winter. But what happens to the plants who sprout right at the tail-end of autumn? I think in my first attempt I’m going to shorten their lifespans, and see how that works. There’s an OV variable that keeps track of how many ticks they’ve lived; I’ll stuff it with extra ticks each time through the timer script so they age faster, and see how that works. If so, it offers the potential of having different lifespans based on seasons as well as CAs — for instance, plants live longest in the springtime, with gradually shorter lifespans through summer, autumn, and winter.
I’m hoping to get a new version of both flowers up today that incorporates these changes, so that people interested in these insanely minute details can play with them and add some feedback.
Things I still haven’t thought too hard about:
- how to decide how much of each CA the plant consumes per timer cycle
- how much should be returned when it dies
- the fact my plant agents are injected as plants, and therefore could be injected in the middle of winter, and whether I’m okay with this