Code: Select all
Creating a random star system consists of two main processes: 1) we
generate random planets, asteroids, and nebulae; 2) we place stations and
encounters randomly around appropriate locations.
OBJECT TYPES
Object types (implemented as a StationType) represent specific planets
and asteroids. Specific object types have the following properties:
CLASSIFICATION An object's classification represents the type or kind
of object. For example, some objects are "volcanic"
while others are "primordial". This library defines
several classifications, but additional libraries may
defines an arbitrary number of new classifications.
Generally, a classification encompasses something unique
about the objects in the class.
SIZE An object has a specific size (in kilometers) that can
be placed into one of 13 size classes:
Asteroid < 1,000 km
sizeA Tiny ~ 10 km
sizeB Small ~ 50 km
sizeC Medium ~ 100 km
sizeD Large ~ 500 km
Planetoid ~ 2,500 km
sizeE Small ~ 1,000 km
sizeF Medium ~ 2,000 km
sizeG Large ~ 4,000 km
Terrestrial ~ 10,000 km
sizeH Small ~ 5,000 km
sizeI Medium ~ 10,000 km
sizeJ Large ~ 20,000 km
Gas Giant ~ 100,000 km
sizeK Small ~ 50,000 km
sizeL Medium ~ 100,000 km
sizeM Large ~ 200,000 km
REGION An object may appear different depending on its distance
from the central star. For example, some objects may have
a coating of ice when far away. For purposes of object
appearence, there are three regions:
inner Inner objects are baked by the central star.
lifeZone LifeZone objects are at the right distance
to possibly support liquid water (although
they are not required).
outer Outer objects are frozen.
Every concrete object type (represented by a StationType) has the above
properties. For example, stPrimordialInnerAsteroidSizeA implements an object
with the following properties:
classification: primordial
size: A
region: inner
In general, each StationType should have a unique combination of properties.
If an object with identical properties can have multiple appearences, then
it should generally be implemented as multiple image variants within a
single StationType.
Object types should include these properties in their attributes. For
example, stPrimordialAsteroidSizeA should have the following attributes:
primordial The classification
sizeA The size
lifeZone The region
If the object type can be found in multiple regions, then it should have
all of the appropriate regions listed. In addition, all object types should
have the attribute "generic" if they wish to be selected randomly in a
system morphology.
SYSTEM MORPHOLOGIES
A system morphology defines the form and configuration of a specific kind
of system. For example, the AsteroidArcBeltSystem definition creates a
system with a K-class star and asteroid belts.
System morphologies are designed to be included in a SystemType definitions.
The SystemType is responsible for binding the physical characteristics of
the system (its morphology) with the stations and encounters that are
appropriate to it.
For example, there could be two (or more) different SystemTypes that include
the AsteroidArcBeltSystem: One might be a friendly Commonwealth system with
a heavy Commonwealth presence; the other might define an enemy system with
lots of Ranx stations.
The tbSystemMorphologies table contains all of the system morphologies
defined by this library.
SYSTEM ZONES
The system morphologies in this library could, laboriously, define the
system in terms of specific object types. For example, a morphology could
randomly place a size A primordial asteroid in the inner region. But this
would duplicate lots of code.
Instead, the morphologies use the concept of "zones" to help place specific
object types. There are twelve zone types defined in this library:
Inner Zones Life Zones Outer Zones
===========================================================
Metallic Zones | molten metallic barren
Organic Zones | greenhouse primordial tholin
Rocky Zones | cinder desert frost
Water Zones | steam biosphere ice
In general, each system morphology picks an approprize zone for its inner,
lifeZone and outer regions. For example, the VolcanicSystem morphology might
pick molten for its inner zone, desert for its lifezone and barren for its
outer zone.
The system morphology then uses "group morphologies" to place asteroids
and planets. The group morphologies will determined the zone in which they
have been placed to pick specific object types.
Example: The VolcanicSystem morphology defines the inner zone to be molten.
It then creates an AsteroidSparseBeltMorph in the inner zone. The
definition of AsteroidSpareseBeltMorph picks a different set of random
asteroids depending on the zone it finds itself in. For molten zone it picks
lots of volcanic asteroids.
NOTE: These zones are an implementation detail of the system morphologies
defined in this library. Do not assume that these are the only zones
available nor that systems must have a certain set of zones.
EXTENSIONS
Extensions and libraries using this library should follow these guidelines:
1. DO use any of the object types (StationTypes) defined in this library.
2. DO define your own object types, but DO NOT expect them to be
automatically selected by morphologies in this library.
3. DO define your own SystemTypes. DO include any system morphology defined
in this library.
4. DO use any group morphology defined in this library.
5. DO define your own morphology tables and use them in your own
SystemTypes. Your own tables may include these object types or your own
object types.
DISTANCE ATTRIBUTES
innerSystem Hot zone; 60% of max star illumination
lifeZone Lize zone; from end of inner to edge of illumination
outerSystem Outsize star's max illumination
COMPOSITION ATTRIBUTES
metallicComp High metallic content
organicComp High organic content
rockyComp High rock content
waterComp High water content
ZONE ATTRIBUTES
barrenZone metallic, outer
biosphereZone water, lifeZone
cinderZone rocky, inner
desertZone rocky, lifeZone
frostZone rocky, outer
greenhouseZone organic, inner
iceZone water, outer
metallicZone metallic, lifeZone
moltenZone metallic, inner
primordialZone organic, lifeZone
steamZone water, inner
tholinZone organic, outer
OBJECT ATTRIBUTES
asteroids among asteroids
asteroidbelt among asteroid belt around star
cratered in orbit around cratered planet/moon
desert in orbit around desert planet/moon
earthlike in orbit around earthlike planet/moon
frost among frost asteroids
gasgiant near gas-giant planet
ice among ice asteroids
methanegiant near methane-giant planet
moon in orbit around large moon
nebulae in a nebula
ocean in orbit around ocean planet/moon
planet in orbit around primary planet
planetary in orbit around planet or large moon
poisonous in orbit around poisonous planet/moon
radioactive in orbit around radioactive planet/moon
ringedgiant near ringed-giant planet
trojan at trojan (or antitrojan) point
volcanic in orbit around volcanic planet/moon
LABEL HIERARCHY
asteroids
asteroidbelt
comet
frost
ice
planetary
moon
cratered
desert
earthlike
ocean
poisonous
radioactive
volcanic
planet
cratered
desert
earthlike
frost
gasgiant
methanegiant
ocean
poisonous
radioactive
ringedgiant
volcanic
trojan
void
-->