Last night I sat down to balance the dynamics in the game "Strike!", described yesterday. I thought it'd be a simple task. I ended up pondering some stuff from mathematical modelling.
Let's start simply. Imagine we have two quantities, x and y, and the change in each one of them as time passes is dependent on the values that both of them hold. So, for instance, It could be that as one second passes, the value of x grows by half of y added to half of x.
dx/dt = x/2 + y/2
The thing with "d" in just means change in x as t changes. You'd get something similar with y, maybe:
dy/dt = 2x + y/4
This is a two-dimensional system (x and y), which is handy, as it means we can visualise it fairly easily. Now for various co-efficients of x and y in the simultaneous equations above, the behaviour of x and y, from various starting points, can take on a whole number of patterns.
This one below is called a spiral source:
Now if you imagine my game, a simulation of a railway company, and the fact that it has about 20 variables: x, y, z, a, b, c..... representing things like reputation, ticket sales, staff morale, union anger and so on, making it perhaps twenty-dimensional. I appear to have configured it so that it's a spiral source. Initially it veers slightly in the direction of profit, then careers off into certain corporate doom. There are things that can by done, user actions, that can make a small difference, but it's very much locked into the spiral pattern.
Ideally I need to alter it so that it looks more like this:
....only in a twenty dimensional configuration-space, so that the company is sustainable, but doesn't degrade to a fixed point.
EDIT: It occurs to me that the classic solution here would be to express the rules of the simulation as a matrix, take the eigenvalues and find a stable solution. I may just tweak it until it works instead :-)