Previous posts on this topic:

* * *

1. Plant size

Under normal conditions, plant size increases over time. Plant growth depends on:

  • Plant’s current size (S_{t}) — the larger the plant is, the more it adds every day.
  • Growth rate (g) — a general concept, which will be discussed in more detail below.
  • Cell size (S_{max}) — i.e. there is an upper limit for growth.

Thus, \frac{\mathrm{d}S_t}{\mathrm{d}t} = f(S_{t}, g, S_{max}) = S_{t} \cdot g \cdot \frac{S_{max} - S_{t}}{S_{max}}. When the plant is small, the upper limit is not important and the limiting factor is current size, so initially the plant grows [almost] exponentially. When the plant grows large, the upper limit becomes more binding and growth decelerates again. Let me solve this equation for t.

\frac{\mathrm{d}S_{t}}{S_{t} \cdot (S_{max} - S_{t})} = \frac{g \mathrm{d}t}{S_{max}}
\int \!\frac{1}{S_{t} \cdot (S_{max} - S_{t})} \, \mathrm{d}S_{t}  = \int \! \frac{g}{S_{max}} \, \mathrm{d}t + C
Solving the left side integral:
\frac{1}{S_{t} \cdot (S_{max} - S_{t})}  = \frac{S_{max}}{S_{max} S_{t} (S_{max} - S_{t})} = \frac{S_{max} - S_{t} + S_{t}}{S_{max} S_{t} (S_{max} - S_{t})} = \frac{S_{max} - S_{t}}{S_{max} S_{t} (S_{max} - S_{t})} + \frac{S_{t}}{S_{max} S_{t} (S_{max} - S_{t})} = \frac{1}{S_{max} S_{t}} + \frac{1}{S_{max} (S_{max} - S_{t})}
So \int \!\frac{1}{S_{t} \cdot (S_{max} - S_{t})} \, \mathrm{d}S_{t}  = \int \!\frac{1}{S_{max} S_{t}} \, \mathrm{d}S_{t}  + \int \!\frac{1}{S_{max} (S_{max} - S_{t})} \, \mathrm{d}S_{t}  = \frac{1}{S_{max}} [\ln (S_{t}) - \ln (S_{max} - S_{t})] = \frac{\ln (\frac{S_{t}}{S_{max} - S_{t}})}{S_{max}}
Solving the right side integral:
\int \! \frac{g}{S_{max}} \, \mathrm{d}t = \frac{g t}{S_{max}}
Now putting it all together:
\frac{\ln (\frac{S_{t}}{S_{max} - S_{t}})}{S_{max}} = \frac{g t}{S_{max}} + C
Simplify and redefine the constant:
\ln (\frac{S_{t}}{S_{max} - S_{t}}) = g t + C
(\frac{S_{t}}{S_{max} - S_{t}}) = e^{g t + C} = e^C + e^{g t} = S_{0} e^{g t}
S_{t} = \frac{S_0 S_{max} e^{g t}}{1 + S_0 e^{g t}}
Finally, making it discrete:
S_1 = \frac{S_0 S_{max} e^g}{1 + S_0 e^g}

2. Growth rate

Time to discuss g. The growth rate depends on:

  • (mis)match between the “climate requirements” of a particular species and “climate” or “resource endowment” of a particular cell
  • capacity to acquire resources — roots and leaves

For example, insufficient sunlight can be partly compensated by large leaves and insufficient minerals/water — by longer roots. Excessive resources will represent a small saving in roots/leaves, but will still be limiting the growth rate. As a possible way to make the impact of deficit and excess of resources to be symmetric, developing roots and leaves can cost no resources, just a mouse click and some waiting time. Have to think a bit on this.

2 Responses to “The Game: computing growth”

  1. aler Says:

    The idea is awesome, at least it looks througly thought over.
    Have you tried implementing it in the end or left as a theretical researh?

  2. Vitalie Ciubotaru Says:

    Well, I tried writing up some code for it, but never went beyond designing a simple SQL database and a simple hex grid in PHP/HTML. What you see is all I have, no more than an idea. Anyway, I’m afraid the era of browser games is over, and a new game is probably not even worth thinking about.

    P.S.: Thanks for dropping by :-)

Leave a Reply