Oberlus wrote:I'd like to try and do that.
By all means, go ahead!
Although I'm not yet qualified to mess with programming into FO, I'm experienced with algorithms in general and graphs in particular.
All of us had to just dive in at some point. Python (the language used for the universe generation scripts), is easy to learn (if you don't know it already), especially if you're already an experienced programmer.
Maybe you also want to consider lending the AI team a hand. Your experience with graphs should come in handy, AFAIK the AI still isn't "topology-aware" at all (so, can't identify choke points, can't place it's forces strategically, etc.). Which is why it scatters it's forces so much.
I'd do it without expectations of it being used, in fact I would get some fun from it anyway.
If what you cook up is better than what we currently have, I see no reason why we wouldn't use it.
Vezzra wrote:Any home system selection algorithm that aims at taking the global position into consideration has to be "galaxy shape aware", so to speak. No way around it. Anything else would only be a half measure.
That's not necessarily true. If you use the appropriate characteristics, perhaps based on distance to other potential homeworlds, the shape of the galaxy can be ignored because the positions on the center would have worse values. So the same algorithm could work just fine for every possible shape.
Hm. I'm not sure at all about that, because I think the galaxy shape is a significant factor when assessing this "merit value". A ring galaxy for example doesn't even have a center, that is, of course it has a center, but no star system are there. Spiral galaxies probably need to have home systems distributed reasonably evenly across their arms - not sure if just going by distance to other homeworlds/center can achieve that.
At least, that's what I'd expect, I'm no good at math and algorithms though. So please, you're certainly welcome to give it a try. If you can come up with an algorithm that works well across all shapes, I certainly won't complain!
Nevertheless, a possible easier and computationally faster way to achieve that kind of balanced distribution of homeworlds as well as natives and specials would be to change the galaxy generation algorithm to first deploy the homeworlds and then the rest of systems.
Can you elaborate? What do you mean by "deploying homeworlds/systems"? Determining their positions (that is, creating the base map) and starlane generation? Wouldn't that actually
complicate the map generation? I mean, creating a spiral galaxy sounds more complex if you first place n home systems and then try to generate the rest in a way that it fits with these pregenerated systems.
Or do you mean populating the star systems with planets?
Or just that natives, specials etc. should be placed after the homeworld systems have been determined? Because
that is already the case.
Another way to deal with this without changing monster mechanics (not that I'm against that kind of change, just throwing in some more ideas) would be to create some kind of (extra) special that confers huge shield and orbital defenses to the planet it is in there. That special would have the name and icon of a given monster and would be removed from the planet once its shield is knocked down.
The Ancient Guardians species which have been added in 0.4.7 to be used as an alternative to guard monsters are practically what you suggest here. So, already done.