This week has seen a fair amount of context switching as I started on the vessel/NPC behaviours.
I reconsidered the initial state machine design I had in mind after some ‘paper walkthroughs’ which showed it wouldn’t worked as I hoped. I’m glad I checked it out before implementing anything – as now I have a solid basis to control the behaviour of NPC’s. It allows them to react to external influences (being attacked etc.), and then resume their intended behaviour when its safe.
At least, it’s solid on paper 😉
However – before I can start implementing this, I need ‘good data’ to work from. At the moment, stars, planets and moons are all more or less good, but – no civilisations exist yet and stations are hard coded to be one per planet purely for ‘something to see’.
Forging ahead and making NPC’s that ‘mine’ or ‘trade’ or ‘pirate’ is useless as there is no data to drive them. I’d end up hacking their behaviours to test them, instead of testing their analysis and response to actual data. These are data-driven objects after all, so hacking their ‘input’ isn’t going to help in the long run.
So, I have to create meaningful data to provide contexts for the NPC’s to examine to determine their behaviour choices. Which means sorting out data to populate the game universe instead of hacking it in.
Back to the galaxy generation algorithm! (Ok, hardly ‘back to the bat cave!’ but still…)
I deliberately parked this in the past – as what I want is quite involved. I’m not just slapping stations around the galaxy at random. There would have to be a reason for someone to build a station. They are expensive, and hard to relocate. Usually, this reason for putting a station in place would be money. Or security. Or exploration.
Lots of factors affect these reasons. And lots of variables affect those factors.
Mining/refinery/manufacturing stations depend on a supply of resources, and a demand for their output.
Trade routes only appear where supply and demand for goods provide a financial gain. This is the driving reason behind a trading station. Trade routes are affected by treaties, piracy, security, etc.
Security stations (naval, police), are driven by crime or territorial threat. Or staging posts, or tactical need, or secrecy. The home species stance on crime, their stance on military power, etc.
Yes, you can go mad thinking about all the what-ifs and cross-linked effects.
So – that’s what I’ve spent most of this week doing. Going mad. 🙂
I’ve modified the game’s data view of the universe to now accommodate data-driven stations, so now I can remove the hard-coded hacks. Stations can exist around moons, planets – or orbit stars (so no planet) or even exist in between star systems in deep space.
Now I have to put the rules in place to populate a believable set of stations.
Eventually it will boil down to a set of hard and fast rules which determine where stations are located, who owns them, how busy they are, and what trade routes they support.
Then, a scene can generate NPC’s that can decide what they want to do, and where they want to do it.
That then drives pirate activity, which drives security issues, which affect trade routes…
Comments are closed.