* Resource Models
This really splits into 2 models, production models (how a resource
generates) and consumption models (how a resource is consumed).
** Production Models
A stab at a basic production model would be:
A' = c*t + (A-L)*br*t - dr*A*t
A',A = amount c = constant production
t = time (days) br = birth rate
L = carrying limit dr = death rate
This model has three components - a constant production which is
independent of the amount existing, a birth rate and a death rate.
There is also a carrying limit, which will reduce the birth rate
(essentially increase the dr) when exceeded.
So, for example: horses on a plain. We have c=0, br=.0014, dr =.00009
L = 500. There is no constant production of horses (they don't spring
newborn from the earth), they reproduce at 1 foal per each two horses
per year, live thirty years, and the region can carry a maximum of 500
Another example: people in a port. We have c = 1, br = .002, dr
=.00004 L = 5000. Here we use the constant production as a simple
model of immigrants arriving at the port (about 1/day). You probably
want to model movement of populations separately, in general. This is
just an example.
Another example: stone in a mountain. You set the initial amount to
some large number and everything else to zero. I feel that a mountain
should get "played out". Alternately, you set c to some number high
enough to replenish everything you take out.
Generally, you want to make this model probablistic. That is, rather than
calculate the number of births by A*br, you want to do something like
loop A times and give each entity a br chance to produce a child. (There
must be some efficient way to do that.)
** Consumption Model
Given that there is A amount of a resource in a region, how is it
consumed? Generally, the more of the resource there is, the easier
it is to get (and the less skilled you have to be to get it). So...
CT = (A/L)**2 * C * S**2 * N
CT = consume/day C = consumption constant
A = amount in the region S = skill level
L = carrying limit of region N = number of men
The consumption constant is the inverse of the time in days it takes
one level 1 man to consume 1 unit in a region loaded to it's carrying
So, for example. A region with 75 horses and a carrying limit of 100.
Assume a C of 7 for horsecatching. A level 1 horse catcher catches:
(75/100)**2 * (1/7) * 1 * 1 = .08 horses/day
i.e., it takes him about 12 days to catch a horse. On the other hand,
3 third level horse catchers working the same area take:
(75/100)**2 * (1/7) * 9 * 3 = 2.2
over two horses a day. A single level 9 horse catcher gets 6.5 the
When the population in the region starts to get low, it's much harder
to consume. When there are only 20 horses left, the 1st level guy takes
200 days to catch a horse. The 3 3rd levels take 6.5 days to catch a
horse. The 9th level guy gets one every 2.1 days.
How about getting the last horse? Even the level 9 guy takes 865 days
to snag it.
What you might want to do with this model is instead of using the carrying
limit for the region, you might want to use the highest carrying limit
for any region. Otherwise it will be as easy to catch horses out of a
herd of 100 in a 100 limit region as it will be to catch horses out of a
herd of 1000 in a 1000 limit region, which seems counterintuitive.
I'd think that recruiting with 0 bonus should work quite well in regions
where there aren't any jobs. After all, you're offering a job with good
benefits (free training). People should be snapping that up, until the
pool of people simply becomes very small.
* Specifying days to use a skill
Don't drop it. Everyone wants it/needs it, and you're just going to have
to put it back later :-).
-- Scott T.