Was my reaction when I conceived of and blocked in an economics simulator into my engine… I still can’t generate useful terrain but once I get around that hurdle and implement a city generator I’ll have a game with a sprawling dynamic economy as in real life where the AI and players can either make or break it (and fix it, no matter how severe a depression is ultimately temporary; mind the game could end up in a state of widespread famine where every NPC or the vast majority die from starvation, the player doesn’t need to eat except in hardcore mode because a lot of players, me included, find such things tedious and annoying).
Well, rather the blocked out system needs to be fleshed out, currently it’s just a bunch of void interfaces. I’ll determine the area of famine based on cities, with an area around that city. then I’ll poll trade-routes for that city to see if the city can get food, assuming the city is willing to help them if they can’t afford it or if they can somehow obtain it through other peaceful or non-peaceful means. if the city can’t it will attempt other solutions and eventually work it out or die out, thus leaving a ghost town that might then be inhabited by bandits, monsters, or other things. this can all be done on non-loaded cities, merely through how the simulation state machine works, when it’s not actively doing something useful it can simulate the state of cities further out.
Essentially this allows me to solve the issue of a player hanging around an area plagued by widespread famine and then walk into an area that’s sprawling with life just a couple chunks away, instead this system allows me to keep a vast array of important events that can be super-simulated as the player approaches and determine the state of the area long before it’s within player view. in short, a sophisticated economic and environmental simulation, and I still haven’t figured out how to simulate water yet… and somehow this simulation depends on water simulation as that influences famine and drought. Did I mention that I specialize in framework code and not necessarily interactive code?
This framework does of course still need to be called and actively running, currently it’s some empty classes, some semi-built classes and a bit of pseudo code to serve as a reminder, but the actual important details are already blocked out. I can imagine this game being a huge failure because people will invariably find it far too complex, especially when they end up crashing the economy 😛
But guess what?
I care not for the success of the game, nor how long it takes. I’m making a game I want to play.
The simulation is at a few levels, per region level (essentially country), city level, city block level (for things such as gang wars, police raids, fires etc), per building level, per individual level.
These levels base entirely on how far away the player is, any of these have some parameters stored and are super-simulated as the player gets within reasonable range. It’s all a beautifully intricate hack, as in it’s not a real simulation, it only appears to be at surface value but to be fair, it doesn’t need to be anything else. It needs to be interactive, seem like a living sprawling world, yet be able to run on modest systems.
For a true simulation you can only have two of those.
You can have a living sprawling world that runs on a modest system but good luck getting it interactive (if real simulation, that is) or you could have an interactive living and sprawling world but that shit won’t run on any consumer end system.
You could also have an interactive simulation that runs on modest systems but it’s not going to feature living, sprawling economies at a massive super-global scale.
Really though, the job of a video game designer is to craft an illusion that suspends disbelief, the model doesn’t have to accurately represent real life; it only has to seem like it actively represents real life. A beautifully intricate multi-layered illusion it is, but it is nonetheless an illusion. An illusion you cannot even see at this stage because the framework code isn’t done, the back-end isn’t done and the front-end is a bunch of disjointed voxels because simplex hurts my brain.
Essentially what I’m conveying is that I don’t understand prioritization, good software design (too much feature creep) or how to actually develop software in a way that doesn’t suck… except I do, I just apparently don’t consider such things while coding.
More importantly I just felt I had to ramble about something and this was the first thing at hand, it’s very likely that the paragraphs are entirely disjointed, I didn’t proof read it, only spell checked it and checked the grammar.
I err… suppose you enjoyed the read if you got this far, have a nice day or something; I’m going to do something else now.