SFRPG

The forum for Science Fiction Role Playing Game inspiration and information! So Say We All!
It is currently Tue Jul 17, 2018 2:56 pm

All times are UTC




Post new topic  Reply to topic  [ 9 posts ] 
Author Message
PostPosted: Thu Jun 28, 2018 3:13 am 
Offline
User avatar

Joined: Sun Jul 06, 2008 1:04 pm
Posts: 1062
Location: the Retirement Coast, NSW, Australia
Matt Wilson asked my how I calculate the "salubrity" values for planets and moons in my star system generator, and I thought the topic would withstand wider discussion, so here goes.

I have a star system and planet generator based on the Basic and Advanced star system generation sequences that make up chapters 4 and 5 of GURPS Space 4th edition. In fact I have two: one is a straight instance of the GURPS procedures as best I could make. The other has been modified to my taste, altering some probabilities substantially, doing some things differently, and generating certain extra information. For reasons that seemed good only at the beginning, I coded it as an Excel 97 workbook with no macros.It is monstrously difficult to maintain or even understand.

One of the differences between my generator based on GURPS Space and the generator I used to build my setting Flat Black is that I calculate habitability differently. The GURPS approach is to add up single-digit results from table look-ups from a small number of qualities of the planet or moon, producing a "Habitability Score" ranging from -2 for airless rocks with no worthwhile minerals to (IIRC) about +8 for Earthlike worlds with rich resources. Each +1 is supposed to reflect a doubling of possible population at given tech level. It's rather crude, and it does not take into account all the things that I think would matter. On the other hand, it is designed to give a Habitability score to uninhabitable worlds, where I am content to not even discuss the habitability of anything other than what the system generates as a "Garden World" (i.e. a planet or moon with oceans of water and an atmosphere containing significant free oxygen).

I calculate two values for the habitability of a planet.


  • The first is an index (i.e value for 0 to 1, expressed as a percentage) indicating how attractive the world would seem to colonists. I used to call this "Salubrity" to distinguish it from GURPS' "Habitability", but now that I am not referring readers to GURPS any more I have resumed using the more familiar "Habitability".
  • The other is a rating of potential agricultural output, which limits how fast and numerous the population can grow after the colonist doom their posterity to the place.

Salubrity

Okay, checking the my workbook I find "Habitability Index" tabulated in column P of the sheet "system table". The cell content are just "='world details'!GY19". On the sheet "world details" column GY has cell contents like this (from row 19, without loss of generality): "=IF(AE19=" garden",MAX(0,1-(GS19-1)^2)*GT19*GU19*SQRT(GV19)*GW19*GX19,"")". Okay:


  • Column AE is the world type. I don't calculate a value except for a "garden"-type world.
  • When I do calculate a value it is set to at least zero whatever, because I'm a bit of a fanatic about error propagation.
  • Otherwise, the salubrity index is the product of six factors (I recall that I rigged them all to range from 0 to 1), so the result is ready-normalised.

Let's look at the six factors seriatam.

  1. 1-(GS19-1)^2) refers to column GS, which is the light level. It is a quadratic, giving a parabolic graph that is zero in complete darkness, zero at an illumination level twice that of Earth, and 1 for a planet just as well-lit as Earth. Bear in mind that this factor is simply not going to be evaluated to extreme values. A planet with very low visible illumination will usually be too cold to be a garden world anyway, and one with very high visible illumination will usually be too hot anyway.
  2. Column GT is a habitability factor for surface gravity. It has formula "=IF(BW19="","",MIN(1,MAX(0,2-BW19)))". The IF statement traps out blank rows and objects with no surface gravity such as rings, asteroid belts, and blank lines at the bottom of the table. BW references the world's surface gravity in Earth gees. So what we have here is a factor representing human aversion to heavy gravity. It is 1 ("we are fine with this") for all gravity values up to and including Earth normal, And then it declines linearly to 0 ("Hell no! We won't go!") at 2 gee. Note that worlds with low gravity will be excluded on other grounds (low escape velocity —> no water, no air), and that planets with gravity greater than 1.6 usually work out uninhabitable on other grounds (excessive atmosphere retention, mostly).
  3. GU19 has formula "IF(BW19="","",IF(FC19="",0,0.5^(IF(AO19="marginal",1,0)-ET19)))". First I trap out rows with no gravity, then assign a value of zero to rows with no atmosphere. (The difference between blank and zero results has to do with avoiding doing arithmetic on blanks while also avoiding filling tables with non-significant zeroes.) Column ET is not an atmosphere value as you might have expected. It is a modifier to GURPS Habitability for geological activity (vulcanism, plate tectonics). The exponential function reflects the fact that GURPS Habitability modifiers halve or double carrying capacity. "Marginal" atmospheres have a -1 modifier, which is included here for convenience.
  4. SQRT(GV19). Column GV is a factor reflecting that availability of water to support vegetation — raininess. It has the formula "=IF(BW19="","",IF(AW19="water",MAX(0,MIN(1,(0.064+(FO19-0.4)^3)/0.128)),0))", which first traps out rows with no gravity and then oceans of liquid hydrocarbons and oceans of water-ammonia eutectic mix. Then we MAX (0 to assign 0 rather than negative numbers to dry worlds, and MIN (1 to assign 100% rather than meaninglessly high values to well-watered worlds. And then we have a funky cubic of FO, the "hydrographic percentage".
    Attachment:
    File comment: "Habitability" modifier for hydrographics in my "Flat Black" system generator.
    funky cubic.gif
    funky cubic.gif [ 14.54 KiB | Viewed 67 times ]

    There's nothing clever there. It's a crude hack to represent that with hydrographics about 80% everywhere is likely near an ocean, but with the land fraction rising above 20% you start getting arid continental interiors. I just rigged the formula to produce 50% at 50% and 100% at 80%, and might as well have made it linear between them. Note that this seldom evaluates for hydrographics below 50% because the GURPS system doesn't make garden worlds drier than 50% (except for tidally locked ones).
  5. Column GW is a factor for average surface temperature. =IF(BW19="","",IF(L19,0,MAX(0,IF(HB19>290,1+(290-HB19)/50,1-((HB19-290)/30)^2)))). First I trap rows with no gravity and then gas giants. HB is the average surface temperature in kelvins. I observe that there are no permanent human habitations where the annual average temperature is colder than freezing point or hotter than 30 C (303 K). The IF statement distinguishes between worlds that have a uninhabitably hot belt at their equator or subsolar point on their sunny side (warmer than 290K) and those that have uninhabitably cold land and ice sheets in their polar regions or sunwards of their terminator (cooler than 290 K); the corresponding formulas are rough hacks for the proportion of land thus made uninhabitable. It's all pretty crude: I have made no attempt to estimate the efficacy of pole-ward transfer of heat by the circulation of air and water.
  6. Column GX is factor for the length of the day: IF(GW19="","",IF(DV19="infinite",0.15,MIN(1,MAX(0,IF(DV19>28,IF(DV19<960,1-(DV19-28)/68,MIN(0.25,(DV19-960)/2880)),IF(DV19<24,1-((24-DV19)/16)^2,1)))))). It's a bit of a monster. First I trap out blank lines. Column DV is the day length in hours. Worlds with a day-length less than 8 hours have their factor set to 0 by a MIN expression. Those with day-lengths between 8 and 24 hours have a value set by a quadratic: 0% at 8 hours, 75% at 16 hours, 100% at 24 hours. Those with day-lengths between 24 and 28 hours have it set to 100% by an MAX expression. Those with day-lengths from 28 to 96 hours have their factor tapered gently from 100% to 0% by a linear expression. Those with day-lengths 96 hours to 960 have their factor set to zero by a MAX statement. Those with day-lengths from 960 hours to 3840 hours have their factor gently tapered up from 0% to 25% by a linear expression. Those with day lengths longer than 3840 hours are assigned a factor of 25% by a MAX expression. And those with infinite day-lengths (i.e. worlds tidally locked to their stars) get assigned 15%.

    Note that the way the day lengths are assigned some day-lengths are effectively impossible for Garden worlds.

I would like to improve this by modelling poleward heat transport and the storminess and windiness of weather explicitly.

Carrying Capacity

Relative carrying capacity is in column GZ and has the formula =IF(GY19="","",IF(FO19="","",GS19*SQRT(GT19)*GU19*GV19*GW19*GX19*BV19^2*(1-FO19)/0.2117))

First I trap out bodies with no gravity to prevent reference errors, then those with no "hydrographics" value. The formula is pretty straightforward.
  • GS is the light level — plant growth is proportional to visible illumination within the limits of a habitable planet.
  • GT is the gravity factor discussed before. High gravity not only deters settlers but reduces the health and fecundity of their progeny. Maybe this ought to impact population growth rate rather than limiting population.
  • GU is the bad air, earthquakes and volcanoes factor from GURPS.
  • GV is the factor based on hydrographics: the proxy for raininess of the climate.
  • GW is the the proportion of surface with a liveable average temperature.
  • GX is the day-length factor.
  • BV is the diameter of the planet. BV^2 is therefore a relative area.
  • FO is the proportion of surface covered by water, so (1-FO) is the proportion comprised of land surface
  • 0.2117 is Earth's value for the product of the preceding factors, and it acts as a normalising value so that RCC = 1 corresponds to the carrying capacity of Earth.

The first difference to note between Salubrity and Carrying Capacity is that the first is an intensive and the second an extensive variable. Salubrity is "how attractive is this place, qualitatively?"; Carrying Capacity is "how much nice land do we have here?" That's the effect of scaling with (1-FO)*BV^2.

The second is that plant growth is more affected by dim light than appeal-to-humans is, but is encouraged rather than deterred by light brighter than Earth's.

Third, carrying capacity is proportional to the raininess factor rather than its square root. These factors ranging from 0 to 1 that means that it is more sensitive to raininess. That's because initial colonists will be attracted to to best-watered areas and figure that the deserts don't matter because they don't have to live there, but the extent of the deserts will limit population growth.

_________________
— Brett Evill

My SFRPG setting, Flat Black

© My posts on SFRPG must not be reproduced beyond the board except with explicit permission from me.


Top
   
PostPosted: Thu Jun 28, 2018 9:56 am 
Offline
User avatar

Joined: Mon Dec 02, 2013 1:43 pm
Posts: 309
Location: Queens, NY
Wow, that's thorough! Thanks for breaking it all down.

I would suppose with this system that several slight deviations from earth normal can drop the habitability quickly. 1.1 Gravity, 60% water, 5 degrees hotter.

But then any habitability score above 0 in this system translates as positive, right? Even Tau Ceti's 7% means someone could be sold on the idea of moving there.


Top
   
PostPosted: Thu Jun 28, 2018 10:02 am 
Offline
User avatar

Joined: Mon Dec 02, 2013 1:43 pm
Posts: 309
Location: Queens, NY
Also, is there a modifier for atm pressure? Or does "garden" imply a min/max tolerable pressure already?


Top
   
PostPosted: Thu Jun 28, 2018 10:26 am 
Offline
User avatar

Joined: Sun Jul 06, 2008 1:04 pm
Posts: 1062
Location: the Retirement Coast, NSW, Australia
Matt Wilson wrote:
Wow, that's thorough! Thanks for breaking it all down.

I would suppose with this system that several slight deviations from earth normal can drop the habitability quickly. 1.1 Gravity, 60% water, 5 degrees hotter.

But then any habitability score above 0 in this system translates as positive, right? Even Tau Ceti's 7% means someone could be sold on the idea of moving there.


Yes. This system is not meant for distinguishing "kills you" from "kills you quickly" with a special nasty rating for "corrodes the seals in your environment suit and then kills you painfully". If the values are non-zero, then there's at least one oasis that at least one group is going to settle at. And a planet doesn't get 100% unless just about every acre looks like a garden.

Earth works out at about 67%, I think.

Here's a [url="http://flatblack.wikidot.com/colonies-by-salubrity-of-the-world"]table of six hundred odd[/url] randomly-generated worlds, a fair sample, sorted by salubrity and with their salient characteristics listed. It should tell you what you need to know about the distribution of the salubrity scores. Tau Ceti is 74% in this run, but with a relative carrying capacity less than Earth's because of small size and a small proportion of dry land.

_________________
— Brett Evill

My SFRPG setting, Flat Black

© My posts on SFRPG must not be reproduced beyond the board except with explicit permission from me.


Last edited by Agemegos on Thu Jun 28, 2018 11:09 am, edited 1 time in total.

Top
   
PostPosted: Thu Jun 28, 2018 10:37 am 
Offline
User avatar

Joined: Sun Jul 06, 2008 1:04 pm
Posts: 1062
Location: the Retirement Coast, NSW, Australia
Matt Wilson wrote:
Also, is there a modifier for atm pressure? Or does "garden" imply a min/max tolerable pressure already?


In the GURPS Space system that the generator is based on the only representation of air that is less than ideal without being quite un-breathable is a "marginal" qualifier on the atmosphere, which has the effect of halving salubrity and carrying capacity.

_________________
— Brett Evill

My SFRPG setting, Flat Black

© My posts on SFRPG must not be reproduced beyond the board except with explicit permission from me.


Top
   
PostPosted: Thu Jun 28, 2018 11:28 am 
Offline
User avatar

Joined: Mon Dec 02, 2013 1:43 pm
Posts: 309
Location: Queens, NY
Very cool. Is illumination something in Gurps Space that I missed, or your own legwork and calculations?

I never liked the all or nothing of GS "marginal" atmosphere (or for that matter the diff betw 6 and 7 in Traveller). I was considering a "toxicity" for atmospheres distinguishing between levels of contamination. Particulate matter from volcanism vs. allergens vs. poisons, etc.


Top
   
PostPosted: Thu Jun 28, 2018 1:33 pm 
Offline
User avatar

Joined: Sun Jul 06, 2008 1:04 pm
Posts: 1062
Location: the Retirement Coast, NSW, Australia
I calculate illumination from the radius of the planet's orbit and the visible luminosity of the star, which I calculate from the bolometric (total) luminosity by applying the bolometric correction for the star's spectral type. That's one of a bunch of simple things that I added to the GURPS Space system by making calculations from existing data. Others include the perihelion and aphelion temperatures, the apparent diameter of the sun and any moons, the escape velocity, and the period of low orbit.

_________________
— Brett Evill

My SFRPG setting, Flat Black

© My posts on SFRPG must not be reproduced beyond the board except with explicit permission from me.


Top
   
PostPosted: Sat Jun 30, 2018 6:41 pm 
Offline
User avatar

Joined: Mon Dec 02, 2013 1:43 pm
Posts: 309
Location: Queens, NY
Follow-up question: what do you do with that score?


Top
   
PostPosted: Sun Jul 01, 2018 12:17 pm 
Offline
User avatar

Joined: Sun Jul 06, 2008 1:04 pm
Posts: 1062
Location: the Retirement Coast, NSW, Australia
The habitability or salubrity score I
  • Tabulate with other planetary characteristics to help myself and other readers find pleasant planets and hellish planets and so forth when that is what we are looking for.
  • Use when modelling colonisation to determine which available new world will be settled next or by the richest and most powerful interests
The relative carrying capacity I multiply by a development factor to determine the population carrying capacity or a world, which I use in population growth modelling, to determine whether and when a world will experience population growth or population catastrophes such as war and famine.

_________________
— Brett Evill

My SFRPG setting, Flat Black

© My posts on SFRPG must not be reproduced beyond the board except with explicit permission from me.


Top
   
Display posts from previous:  Sort by  
Post new topic  Reply to topic  [ 9 posts ] 

All times are UTC


Who is online

Users browsing this forum: No registered users and 1 guest


You cannot post new topics in this forum
You cannot reply to topics in this forum
You cannot edit your posts in this forum
You cannot delete your posts in this forum
You cannot post attachments in this forum

Search for:
Jump to:  
Powered by phpBB® Forum Software © phpBB Limited