The core issue is this: we would like a way to determine how common a given station type is (e.g., a Sung Fortress) in a particular region of the galaxy (e.g., in the Outer Realm). The challenge is that (a) station types don't necessarily know about all regions and (b) regions don't necessarily know about all station types.
Let's stick with the example of a Sung Fortress. We could add placement definitions in the Sung Fortress XML to say that they are rare in the New Beyond, common in the Ungoverned Territories, and uncommon in the Outer Realm.
Unfortunately, this won't work if we add new map regions. For example, when TSB adds the Frontier, how do we figure out how common Sung Fortresses are there?
Of course, we could define placement rules in map definitions. The XML definition for the Frontier could include the commonality of all station types. But then, what if an extension adds a new station type (or sovereign) that is not covered?
I can think of a few ways to deal with this, but none is fully satisfactory:
HIERARCHICAL RULES
We could add spawning rules in different places. For example, both station types, maps, and extensions could define placement rules. We would different a strict order for deciding which takes precedence. For example, we could follow these rules:
1. First check any extensions to see if they have placement rules for a given combination of station and system.
2. If not found, check the adventure/libraries.
3. If not found, check the map.
4. If not found, check the station type.
6. If not found, check the sovereign.
7. If still not found, then the station type does not appear in that system.
SPHERE OF INFLUENCE RULES
Another possibility is to model the underlying reasons why stations are in specific places. For example, we could define the sphere of influence of a given sovereign and derive station placement from that. For example, we define a sphere of influence as follows:
Code: Select all
<SphereOfInfluence sovereign="&svCommonwealth;" centerNode="SK" criteria="-nearStars" radiusFrequency="ccuurr"/>
We would allow multiple spheres of influence and combine them appropriately. For example, we might decide that some Commownealth stations should appear in the Near Stars. This we would create a new entry:
Code: Select all
<SphereOfInfluence sovereign="&svCommonwealth;" centerNode="Sol" criteria="+nearStars" radiusFrequency="rruucc"/>
Different levels (extensions, maps, etc.) could define spheres of influence. If a given system falls under two or more sphere of influence definitions, then we would take the average (or something).
DYNAMIC SIMULATION RULES
A more complicated version of the above is to set up a simulation of sovereign expansion and use that to determine placement probabilities. For example, we might define the rules for Commonwealth expansion as follows:
1. Starts at St. Katharine's Star 200 years ago.
2. Expands at 1 system per 10 years (average).
3. It prefers sun-like stars and avoids red dwarfs.
In contrast, the rules for Sung Slaver expansion would be:
4. Starts at Jiang's Star 150 years ago.
5. Expands at 1 system per 5 years (average).
6. It prefers red giant and desert systems.
When the two sovereigns come into conflict, we decide whether one displaces the other or whether they coexist. We use military power, neighboring systems, and distance from capital to make the decision.
We let the simulation run for many years and see what we end up with. We then use the result to compute the probability that a station would be in a particular system.
I'd love to hear thoughts and other ideas.