In response to some points made in the last few posts:
Playing Civ3 creates a dynamic system (without being played it isn't even a linear system, it's static), if you don't understand this then you don't understand what dynamic means in this context. The easiest (i.e. non-rigourous) way I know of to define a dynamic system is one where the input changes the output which then changes the input. A practical way to spot such systems is where tiny changes result in wildly varying and unpredictable consequences. Civ3 has both of these features (from now on when I say 'Civ3' it's implied that I'm talking about a game of Civ3 and not the code sitting there on the drive).
I can give some specific examples of games where this shows, such as a game I had a few days back. I had the worst starting position I'd ever had, a -huge- jungle to the south, southwest, and west, vast plains with no river for irrigation to the northwest, north, and northeast: the only viable spot to expand in was to the southeast and I didn't find that till I was on my 5th city or so. My first two cities couldn't even make settlers, they couldn't reach 3 population. This game should have been my worst ever, but it turned out to be my most high scoring game to date because it forced me into actions (early military attacks) that snowballed to an overwhelming victory on my part. A counter-example is a game where my start was so strong that I overreached myself, got too many AIs mad at me at the same time, and ended up crushed. Inability to predict future states is a hallmark of complex dynamic systems.
I want to insert a quote from Zachriel here because he said it perfectly:
"I never said, nor implied, that it couldn't be improved by a "single line of code." Indeed, because complex systems are sensitive to minor changes, the entire game can be completely changed by such a "single line of code," for the better or for the worse. Problem is what line of code, what change, and what are the unintended consequences going to be? Sometimes, you may not even know what the unintended consequences might be, as they may only be apparent in very limited situations that are not determined even after extensive testing."
This is probably the most critical thing to understand about dynamic systems: you cannot predict the results from the changes you make, no matter how simple the changes. I've seen this in practical ways when it comes to designing rules and game code that are designed to deal with humans. People are complex and dynamic in and of themselves, they are a moving target. If you design your AI around what they are doing today then they'll do something different tomorrow in response to that. Firaxis could release a brand new AI every 30 days and 30 days later that AI would be known to be full of loopholes, aberrant behaviour, and exploitable to the bone. At some point they have to say 'This is good enough' and move on.
You don't see this often in retail games because most companies stop after a couple of patches, but in Muds (multi-user dungeons, text-based online games) you often see a Mud that has lasted for years suddenly go into a death spiral because a well-intentioned and supposedly 'better' rule change or piece of code is introduced that causes the system to spin out of control. A game -can- be patched to death.
Also note that even the simplest system becomes complex when in a complex enviroment. Take a simple and silly example: everyone you meet today, say only one word to them one time. Pick any word, say "Blue". One word, one time, say nothing to that one person after that, any new person comes along repeat. Now, this is a -very- simple and linear thing, you could make a computer do it with just a few lines of code. But try it in real life and you'll see how complex and unpredictable the result is. I bring this up because you mentioned making coding changes, and I think you are seeing the linear properties of the code (which is exactly right, it is linear) but not the fact that it executes in a dynamic enviroment.
And at this point I feel like I'm -really- pushing the limit for moderator intervention, so I'll step off my 'Bringing complexity theory to the masses' soapbox. It's sort of a thing with me, sorry if I took it too far.
