• Welcome to the new COTI server. We've moved the Citizens to a new server. Please let us know in the COTI Website issue forum if you find any problems.

Modeling Interstellar Expansion...

Flynn

SOC-14 1K
Good afternoon, All,

I wanted to pose an interesting thought exercise to those interested in such. I've always been attracted to the concept behind the Traveller: 5641 project. If you aren't sure of what I'm talking about, check it out here:
http://www.freelancetraveller.com/features/othroads/t5641/index.html

How would you model something like this as a software application?

I imagine you'd have to start with a comprehensive data source, and scrub away all social data, except for those on the worlds designated as homeworlds for the project.

Starting with the universal data, one would then have to perform a series of iterations over the data, each iteration representing the passage of a certain amount of time.

I imagine that each cycle would have to perform something akin to the following steps:

1) Determine the location of all worlds with Class A & B starports (as these can most easily maintain jump-capable starships). These are called Seeder Worlds, for lack of a better name. If a Seeder World is non-aligned, then create a new Allegiance code for it.

2) Iterate through the world data, checking each unpopulated world to see if it is within a year's jump range of any of the Seeder Worlds. (Jump range is determined by TL, as per High Guard, etc., as well as some magic number of jumps, usually 35, that can be made in a year.) Looking at the closest Seeder World, we'd check to see if the unpopulated world got populated as a colony.

3) For each Allegiance code, determine if the polity has reached its point of collapse. If so, change the Allegiance code of all of these worlds to Na, and set a flag to run a collapse procedure on the data during the "passage of time" phase. For more information, check out this discussion:
http://www.travellerrpg.com/cgi-bin/Trav/CotI/Discuss/ultimatebb.cgi?ubb=get_topic;f=5;t=000220

Alternately, create a subroutine that breaks the polity into smaller polities based on centers of high population and technological advancement, and change Allegiance codes accordingly.

4) Starting over with the list of worlds, run each populated world through a general "passage of time" random flowchart to update the UWP, perhaps complete with random events. If a world is flagged as collapsed, run some collapse procedure on it, and insure that its Allegiance code is now Na (unless you are using the alternate suggestion above). Remove the flag used to indicate collapsed worlds, so it doesn't deteriorate over the years because it's always collapsing.

5) Produce reports for this particular point in history, such as new UWP files, etc., so that the progress can be tracked along the way by those interested in seeing the evolution of the milieu.

6) Return to step 1 for the next stage of development.

Right now, I'm just kicking ideas around. I may never tackle a project like this, but I at least would like to walk through the logic behind it.

What are your thoughts?

Enjoy,
Flynn
 
Sounds like a nifty idea. Though I think the expansion patterns would be very different in a real 3D universe than Traveller's flat 2D one.
 
Yeah, this is cool stuff. It's in the Cellular Automaton family of algorithms, or something related to it.

Modelling UWP changes can be tricky. Despite that, I think your outline looks good and doesn't seem hard to do. Editing UWP data read from .sec files is no problem, and grepping data for patterns is pretty standard fare too.
 
Hmmm. I'd take the world data for all of Known Space and scrub the social data (Starport, Pop, Gov't, Law, TL) for all worlds except those with (non-Ancient-modified) sentient species. For those worlds I'd back-date (by best guess) the social data to a set start time, probably when the K'Kree first start interstellar exploration. Then go forward in time, updating the social data for worlds, including worlds that would be reached by interstellar races as those races move out from their homeworlds. Since you're more interested in tracking colonization and contacts with other sentients you could use a pretty big time step, at least 10 years and maybe more, because exploration may happen fast but settlement and population expansion doesn't.

I'd have the interstellar species prefer to settle worlds as much like their homeworlds as possible, especially the Hivers. So those worlds get found and settled the fastest and then serve as secondary centers of settlement in their local areas.

Rifts and jump-1 mains would of course affect the settlement pattern, especially jump-1 mains in the early days (before jump-2 drives).
 
My thoughts are jumps of at least a century per iteration, because I don't see a perceptable level of growth occuring at any shorter length of time. I don't want to sift through a report per decade, and see very limited changes per shift, when I can get a better feel for growth from reports that cover roughly a century each. However, your mileage may vary, of course.

-Flynn
 
Ooo! One of my favorite topics for discussion.


Originally posted by Flynn:
1) Determine the location of all worlds with Class A & B starports (as these can most easily maintain jump-capable starships).
In a homeworld-source situation, there can be no such determination beyond indicating the Starport of the homeworld itself because no one has gone out to build them yet.


Originally posted by Flynn:
3) For each Allegiance code, determine if the polity has reached its point of collapse.
How do we make a determination like that? How does one determine the “point of collapse”?


Originally posted by Flynn:
Alternately, create a subroutine that breaks the polity into smaller polities based on centers of high population and technological advancement, and change Allegiance codes accordingly.
What about a routine to check and see whether adjacent polities join together? Why only break apart (and collapse)?


Originally posted by Flynn:
4) Starting over with the list of worlds, run each populated world through a general "passage of time" random flowchart
I’ve been hoping someone would develop such a thing for a long time now. Every time I think of it so many factors and variables arise that it gives me an instant headache.


Originally posted by Flynn:
to update the UWP, perhaps complete with random events.
There will need to be a way to construct “batch script” files that may be inserted into the cyclical “runs” on the UWP data so that UWP transformation is influenced in order to force certain events to occur that the milieu designer requires. Like rampant growth in one area, war sweeping through another, etc.


Originally posted by Flynn:
5) Produce reports for this particular point in history, such as new UWP files, etc., so that the progress can be tracked along the way by those interested in seeing the evolution of the milieu.
Absolutely! :D

This would be the total Holy Grail of milieu development. It would, of course (as if you weren’t expecting me to say it somewhere in here), require the addition of Last Survey Date to the UWP, so that we know the effective date of each UWP.


Originally posted by Flynn:
6) Return to step 1 for the next stage of development.
I think there need to be some more steps in here. I’m not sure what the emphasis on collapse is, maybe someone can point out where my thinking on that is failing.

There has to be a concept of “node” handling. A “node” is a center of activity, sending out colony ships, etc. I see there being “nodes” and “super nodes”. To start, each homeworld would be a “super node”. As it’s colony worlds grow, some worlds eventually become nodes of activity (rather than consumption or exploitation centers), further enhancing business traffic. When they grow enough and become super nodes themselves, war then becomes a real possibility.

This also includes the idea of “Activity Fields”. An Activity Field would encompass a variable number of hexes (from 1 to X), centered on a super node (or a local condition), and would possibly be enhanced and expanded by other nodes as they come online. The “strength” of the nodes would determine the size of the Activity Field. Every world in an Activity Field is affected by it on each cyclical run of UWP Transformation. There may be multiple Activity Fields projected by local nodes and super nodes. Some Activity Fields are positive, causing growth, increases in population, etc. Some are negative, killing people off, ruining economies. Activity Fields can also represent local conditions, like plagues sweeping over worlds, piratical/criminal activity in a region, low-traffic due to the local spike in the mysterious Dead Space phenomenon. The size of these Condition-Type Activity Fields (as opposed to UWP-type Activity Fields) is determined by how far reaching the condition is, not by the strength of any of the nodes.

Each “cycle” of advancing “time” in the developing universe would apply all Activity Fields to the UWPs in the hexes encompassed by the Activity Fields

Artificial Activity Fields could be defined, and inserted into batch script files for automatic inclusion in the next “cycle” of development.

Further, various factors affecting realistic population growth and frontier society development will have to be determined and implemented in order to successfully model the expansion of homeworld societies out into space. I’d believe the old “Outlook” stat would influence this. Expansionist societies would get big bonuses to their main Activity Field, aiding the development of all worlds falling under its sway. Inward looking societies would have weaker or even negative Activity Fields affecting their colonies (if they ever manage to get any colonies).

GWP calculations and local tax rates would generate total budgets for nodes to work with. Each node (again, based on Outlook) would devote a portion of its budget to expansion/colonization efforts. Expansionist groups would devote lots of money. Indifferent groups wouldn’t devote much. Inward looking groups would spend only small amounts.

(Note: I haven’t been using verbatim Outlook terms, I can’t remember what they are at the moment.)

I’m sure I have barely scratched the surface in this quick go-round.


Originally posted by Flynn:
What are your thoughts?

Enjoy,
Flynn
 
Perhaps I mentioned collapse more because I assumed that the general development process would typically involve moving forward more than collapse.

As to the collapse of interstellar polities, see the link provided in the original post for details. The discussion is interesting, at least in my opinion.

Seeder Worlds are my concept of Super Nodes and Nodes, if that helps.

As for several coming together, I believe the Allegiance determination process I've worked out for another project can be modified to cover that.
Thanks for the suggestion.

Hadn't planned on scripting multiworld random events, but that is an interesting concept worth further contemplation.

I don't think I really want to go into modeling the whole economic position of each polity. Lots of number crunching and such that would suck up cycles without sufficient return for me. (For others, maybe, but I'm not that big into it.) I'd rather just take those into consideration while designing the more generic expansion process and flowchart, and note trends that affect dierolls.

If I knew how to plot jump routes without eating up valuable time coursing through something like 10,000 UWPs far too many times, I would like to do that. Alas, I haven't found any code that easily encompasses such details, as yet, though I've seen discussions of it. Were I to do this right now, I'd probably just use a simple distance check, which will lead to somewhat less realistic expansion patterns.

Some more thoughts,
Flynn
 
Originally posted by Flynn:

If I knew how to plot jump routes without eating up valuable time coursing through something like 10,000 UWPs far too many times, I would like to do that. Alas, I haven't found any code that easily encompasses such details, as yet, though I've seen discussions of it. Were I to do this right now, I'd probably just use a simple distance check, which will lead to somewhat less realistic expansion patterns.
I've looked at the jump route problem a coule times and the only idea I've come up with (assuming you are going to pregenerate the location of all of the stars) is to run a route generating script that analyzes the whole thing and stores results of the analysis in such a way as to allow you to use the results without having to run the generator everytime, kind of like an index in a database.
 
Originally posted by Flynn:
I don't think I really want to go into modeling the whole economic position of each polity. Lots of number crunching and such that would suck up cycles without sufficient return for me. (For others, maybe, but I'm not that big into it.) I'd rather just take those into consideration while designing the more generic expansion process and flowchart, and note trends that affect dierolls.
The ability to expand, develop technologically, and move business goods depends entirely on the economic positions of each world making up a polity.

Now, whether the "whole" economic positiong gets modeled, or just some useful abstraction of it, well, something will have to be done, otherwise starships can't be built and colony efforts can't be funded.

Someone will try to run a campaign in some period of the developed setting, and will get verisimilitude whiplash upon discovering that a major technological and industrial revolution occurs (as a random event) among a polity of ten worlds at the same time they had a combined population of ten million, TL-8 average (TL-A max), and and not enough of an economy to generate the funds for the dual revolution.
 
RainOfSteel,

If such can be determined from the UWP without too much overhead, that's cool. If I have to do bookkeeping for 10,000 worlds, I don't think I'd code for that.

But I would do what I could to achieve some plausible results based on referencing a world's current TL, Starport, Population, etc., making general assumptions that reflect the trends set forth by a more complicated model, so that it's less likely to produce conflicts such as you describe above.

Also, I'm of the opinion that I wouldn't have to track the info for every world in a polity, just the Nodes and Super Nodes, as they would be the most likely sources of expansion.

-Flynn
 
Two things:
1) Historically, no empire has survived as a single polity when round trip travel time exceeded 1 year; most in fact failed at 6 months travel time

2) iteration could be as low as years. A strong hot war could result in near complete depopulation within a day, and populations can fail in even hospitable climes due to random weather fluctuations in under a decade. I'd say, on the scale indicated, a 10 year iteration would be far better (of 10 times the computation).

By reducing polity size to 6 month RT comm, one can cut the numbr of worlds to compare to by a factor of 16....

Also, don't forget that secondary and tertiary populations can and will grow.... and sooner or later colonize for themselves. In fact, historically, colonies tend to spread themselves faster than the base culture.
 
Aramis,

Thank you very much for the input on the effects of communication lag from a historical basis. In coding this, I would thus make the distance for a polity extend only six jumps (assuming two a month, for half of the 6 month roundtrip) from the nearest node world, and I would probably check for nodes within the same polity that are over thirty-five jumps apart to signal a disintegration within the polity due to extreme communication distances.

As for iterations, I'd have to determine the chances that a UWP would change over a ten year period instead of every hundred years, so that the percentages match my expectations once the final changes are done. I'd also only want to generate reports every century, most likely, though a brief historical note every ten years would be cool, too.

This is still a thought exercise at the moment, but I'm starting to get a strong idea of how this could be done, and hopefully well.

Looking forward to further discussions,
Flynn
 
Well, since pop growth of 1% per year is rather high but within possibility...

upper bound growth then becomes 1.01^10 per decade=1.1046= 10% change per decade... or, in short, 1 PopMult maximum per decade.

I'd use a 2d6 roll for 12+, success grants +1 pop mult; DM+1 if Atm ThT, StdT, or DeT, DM+2 if Atm Th, St, or De, DM+1 if Hyd 6-9. DM+1 if TL 5-9.

but I digress here.
 
Thanks, Aramis. Suggestions like that would help develop the UWP update procedure, and it gives me insight into things I wouldn't have thought of.

Enjoy,
Flynn
 
Originally posted by blackirish56:
I have written a story, planning to become a novel, that details man's expansion into the cosmos. Using my G-space drives and a map that is close, but not exactly, the same as the Solomani rim, I have been making notes for a game that would model the expansion into the sector. Now the concept of a free-running program is sounding more interesting. Will post updates as the project commences...
Sound interesting.

I see you forgot to mention what a G-space drive is . . . <hint />
 
Thread Hijacked

I've thought about software like this, except perhaps taking a page from MULE. Build a minimal space environment, establishing a few simple rules relating production and value. And by a few, I mean something like seven.

Then attach scripted corporate agents which operate in the environment. Finally, add web-based management functions that allow players to run a human-controlled agent.

Let human psychology make the game interesting, under the guise of interstellar empire building.

The game could run the gamut from fledgling space program to large pocket empire.
 
how about modelling it with predator-prey simulations where each government is an entity. governments expand via "reproduction". Worlds become prey as single point resources with set output rates and governments become predators with type determining agressiveness and pop/tech determining strength. Pop could be the 'size' of the predator with society's resource needs being related to 'basil metabolism'
 
Throw in some interactive elements, such as trading (different resources have different value to different people), and a little bribery or collusion, and you've got an interesting game.
 
Kinda off-topic, but speaking to the thread's title.

During expansion, exploration should be pretty much spherical, although it depends on FTL type (hyperdrive v. jump drive, for example), stellar region/layout, civilization structure, complexity and unification (i.e. if it likes to explore, has a reasonable TL and is one government v. many), plus history (i.e. if the civilization has just invented its FTL and is taking its first steps, or if it's now re-exploring after some sort of collapse).

However, I suspect that settlement will be much more ragged, and will depend a lot upon where the stars physically are, plus the type of planets they have and what resources are there.

So if a new planet, of a unified government, with TL 9-10 is expanding, it will have a roughly spherical exploration zone of no more than a few hundred light-years, with a settlement zone of no more than maybe two-thirds that, at most. There won't be many conquered worlds, because few worlds will either be a new civilization or breakaway government.

A larger, more mature civilization, politically unified or with one large government and smaller ones at odd places, is likely going to have an exploration zone of several hundred to a few thousand parsecs (and that's being conservative), with settlement being a lot closer to the edge of the frontier. This may be the case even if there are several large governments, whether one is largest or all are of roughly equal size. Some colonies will be captured worlds, but more will be never-settled or non-conquered resettled.

One where there are many governments will see very few of them knowing every bit of astrographic data of explored space, and exploration and settlement will be much more ragged but a lot closer together (sure, there'll be settlement, but a larger chunk of change will be devoted to military operations - ya gotta keep those turkey wogs off yer new colonies, after all!); a good number of colonies here will undoubtedly be conquered worlds...

Note that I haven't discussed civilizations in decline; I'd like to leave that up for others.
 
Please pardon, Lords, I may have mised the gist of this topic. If I retread the same issue, pardon.

Wouldn't economics be the driving force behind expansion? (Foregoing any Alien Race to trade with/conquer/what have you.) Wouldn't the promise of financial gains of such expeditions be required to offset the balance of the cost of mounting them? Military expansion would only be necessary at the outset if some hostile force were encountered. IE, if the situation required it.
 
Back
Top