The Planet Editor

Let’s finally make some noise about the planet customization concept. I realize that the team is focused mostly on bug-fixing for the upcoming release, but I think this is worthwhile to address for the near-ish future. Many developers who wind up putting effort into the planet generator/editor are lost, and I think this is largely due to scope creep and confusion regarding what exactly is needed. So, let’s have that talk now.

I tried making a very cohesive and contained concept proposal, but there really is a lot up in the air, and it’s hard to address all at once without going on tangents and hypotheticals. So this is something that we will have to walk through bit by bit. Let’s focus on immediate impacts to the Microbe Stage; we don’t need an in-depth planetary simulation right now.

The first question to discuss: what exactly should be impacted in the Microbe Stage from tweaking planet parameters? In other words, when the player makes changes to their planet, how will their changes be present?


I think there are currently about three groups of parameters that are targeted by planet customization…

  • Environmental Factor Related - Parameters related to environmental tolerances and events. How warm is your planet? How volatile is the climate? How much sunlight goes through the atmosphere on average?
  • Patch Frequency Related - Parameters related to the distribution and frequency of patches. Are oceans shallower or deeper? Are caves frequent? Are frozen patches frequent?
  • Compound Availability Related - Parameters related to the distribution and frequency of compounds. Is iron widely available? How much oxygen is able to be carried by the atmosphere?

As you can imagine, there is intercorrelation between the three groups; for example, deeper oceans means less coastal shelves, likely more sparsely distributed compounds, and more stable environments. A colder planet will naturally end up with more frequent frozen shelves. That’s where the nuance and detail comes into play with this concept.

Let’s think of some parameters relevant to the Microbe Stage, in accordance with this grouping. Here is what I have so far…

Environmental-Factor Related

  • Average Temperature - Is the planet colder, comparable, or warmer relative to Earth?
  • Temperature Variability - Do temperatures vary dramatically, normally, or minimally across biomes compared to Earth?
  • Average Sunlight Availability - How much sunlight makes its way through the atmosphere towards the surface?
  • Climate Volatility - Does the climate transform dramatically or remain stable from turn to turn?
  • Snowball Earth Frequency - How likely is a snowball Earth event to occur?
  • Volcanic Activity Frequency - How likely is volcanic activity?
  • Meteor Bombardment Frequency - How likely is meteor bombardment to occur?

Patch Frequency Related

  • Shallow Sea Frequency v. Open Water Patch Frequency - Are surface patches more likely to be shallow seas or epipelagic?
  • Cave Frequency - Are caves more or less likely to form?
  • Hydrothermal Vents Frequency - Are hydrothermal vents more or less likely to form?
  • Freshwater Frequency - Are freshwater estuaries more or less likely to form?
  • Frozen Patch Frequency - Are ice shelves more or less likely to form?
  • Heated Tidepool Frequency - Are heated tidepools more or less common?
  • Abyssal Patch Frequency - Are abyssal regions more or less common? There will likely be atleast one patch per planet due to spawning conditions.
  • Patch Volatility - (When dynamic patch maps are introduced) do patches and the links between them change more or less frequently?
  • Patch Diversity - Are patches more uniform or diverse across the planet?

Compound Availability-Related

  • Oxygen Capacity - Will oxygen levels exceed, be comparable, or lessen compared to Earth?
  • Rate of Atmospheric Oxygenation - When photosynthesis develops, will the rate at which oxygen diffuses throughout the globe be average, faster, or slower?
  • Iron Availability - How common is iron on the planet?
  • Nitrogen/Ammonia Availability - How common is nitrogen and accessible ammonia on the planet?
  • Carbon Dioxide Availability - How common is carbon dioxide on the planet?
  • Sulfur Frequency - How common is sulfur on the planet?
  • Glucose Availability At Onset - How much glucose will be available at the beginning of a playthrough? (already implemented)
  • Phosphate Availability - How common will accessible phosphate be on the planet?
  • General Compound Volatility - How dramatically will compounds shift from turn to turn?
  • General Cloud Density/Scarcity - How common or scarce are clouds on the plane?

I think this is enough to digest for now. I have a bit more thought put into this. I currently am envisioning something where the player first defines broader settings, then goes into more finetuning settings. Broader settings will impact the range of more detailed settings - for example, tweaking the distance of the planet from the home star will constrict the temperature range so that even the warmest distant planets might not be as warm as the coldest near star. But the exact details of this can be discussed later if we agree with the current line of thought.

Hopefully, this will begin break the curse of developers disappearing when they tackle the planet editor interfa -

2 Likes

You have some important questions here, and it’s a great start for discussion.
Regrettably though, until I find the time to dig deep into the subject and design a concept, there’s not much I can do to really answer the questions at this time.

I’ll just pose this simple statement of desire; The planet editor will need to be clean, and most importantly, fast. This is so that players don’t have to spend centuries fine-tuning their planet to whatever measures they desire. Just about 3-4 drop-down options and boom they are done. Now, we would probably want an advanced editor tab for those of us who really do want that nitty gritty design, so I’m not saying we deny them that. Just need some quick settings first and fore-most.

We’d probably follow a preset method so players can quickly choose the type of planet they want, and then have a couple following tweaks to get it how they want.
So they would pick their planet, then be able to adjust the most impactful things such as landmass size/sea-level, temperature, whatever. Maybe even a way to save planets as presets akin to the fossilization feature. So players could encounter another planet and be like “Oh I would want to try and evolve on that.” So boom they save it as a preset.

2 Likes

Let’s think a bit about the planet editor.

First and foremost - there is too much information for a player to wrap their head around if we throw everything we know about climate modeling at them. So I think the most important thing to consider in this concept especially is user friendliness.

I honestly think we can approach the planet editor very iteratively. Part of the planet generator/editor curse that goes around is the fact that the scope is huge with minimal direction offered so far. Granting ourselves some cut-off point will help us implement the planet editor without pulling our hair out accounting for every unbalanced and broken possibility offered from the start, and will also allow us to create settings in a way that is very manageable for the community to handle.

Ideally, I think the goal is providing several presets that leaves the player with a satisfactory feeling of customization - and, in the long-term, some sliders can be offered for more advanced customization. Especially for the current stage, I do not think the player needs more than a single page of well-crafted and implemented presets.

I think we need several more options than the below photo, but Civilization always does a good job of providing map presets to the player in a way that is very accessible (Temperature, Rainfall, etc.):

So honestly, I think the first few versions of the planet editor can largely be handled in this way. Toggled presets for different options, and clearly understandable, impactful settings.


THE INITIAL SETTINGS

So, what are some initial settings we can aim to represent?

Temperature

This one is obvious, and for now, I think we can get away with a Cold, Temperate, and Warm settings. Cold settings make the temperature colder on average, and makes frozen sea patches much more frequent. Warmer planets increase temperatures, and have a reduced frequency of frozen patches.

Sea Level

Shallow Seas, Moderate, and Deep settings, influencing the frequency of shallow seas, abyssal patches, and deep ocean floors.

Compound Abundance

Sparse, Average, and Frequent settings, influencing the average availability of each compound represented as a cloud.

Geological Activity

Dormant, Average, and Active settings, Influencing how frequently events like meteor impacts and volcanic eruptions occur.

Climate Instability

Stable, Average, and Volatile settings, Influencing how volatile the environment is, impacting variance in compounds and environmental conditions and increasing/decreasing the frequency and extent of cooling, warming, and Snowball Earth events.

Atmospheric Haziness

Clear, Average, and Hazy settings, influencing how much sunlight reaches the surface patches.

Compound Settings

Customizing the frequency of the various compounds can also be present as options, though with a few more toggles available per compound. For example, instead of the typical “Low, Medium, High”, we should probably implement “Very Low, Low, Average, High, Very High” to offer variety across the different compounds available to the player to use.

Keep in mind that the impact and behavior of the compounds should generally be unaffected, just their frequency. So having very high oxygen on a world where oxygenation is simulated won’t have oxygen be very high from the beginning, it will rather mean a higher cap of oxygen once oxygenation occurs. And a very high carbon dioxide amount will also have an impact on the temperature of the planet.

As such, we should generally display the average temperature and compound amounts of a planet somewhere in the planet set up GUI, and have let players know whether a given value is relatively warm, average, cold, sparse, etc.


With time, and when it actually means something to our simulation, we can gradually transition to the more grandiose vision of the editor which deals with things like number of means, the exact positioning of a star’s orbit relative to the sun, planet size and mass, etc. Currently however, I think we should start with shooting for these levers of control, and then gradually add complexity as we see fit.

I might start re-looking at the effects of environmental factors, such as temperature and pressure, on the player to see if we can make differences in planetary settings result in different-looking builds; it would be ideal if the difference between high and low temperature planets is more than just “let me place more of x environmental enzyme”.

2 Likes

So far, what you have listed seems like it would work with the current design I have of the world generator.

I have another aspect to consider. Will we include settings that change the planet in unrealistic ways? For example, say that the planet size is set to small. With realistic settings the gravity of the planet will also change, meaning that for example later stage multicellular gameplay will be significantly different than on an Earth analog. What if the player only wanted to use a smaller planet without changing the gravity though? Will gravity be given as a separate option that can be locked to a specific value?

This could turn out to be an important option if the simulation’s required compute time scales with the size of the world. Players with low performance computers might want to select smaller planets to get better performance while still having the gameplay be similar to standard Earth.

1 Like

If due to like processing power or some other technical limitation we need to have smaller planets, then I think we can have higher gravity. Otherwise as a science game, I don’t think we should have any options for magical gravity (so it should always be tied to planet size and density).

1 Like

Yeah, I think the fact that so many aspects of a planet are dependent on other physical properties is among the most complicated parts of this concept. It’s tough to balance full player flexibility and realism in this regard.

I think the ideal way to set up a more involved planet editor (distance from star, size of planet, number of moons, etc.) would probably be by having larger, more fundamental characteristics set the bounds of other stats, and giving the player wiggle room to customize within those bounds.

The visual below is a simple way of illustrating this in regards to planet size. Small planets and large planets have upper and lower bounds (represented by the vertical lines) of what their gravity can be, and players can customize the exact value within those bounds (represented by the section of the line that is in red); but they cannot customize them to overlap if the size discrepancy between the small and large planet is too large.

I can definitely foresee players wanting large planets for a larger play area while simultaneously wanting lower gravity for larger organisms, less movement costs, etc. In order to accommodate that, we can have a setting in the planet editor which generally deals with how intensely things like osmoregulation, movement costs, surface area and volume as related to size, etc. scale with the physical properties of your planet. So having said setting (maybe name it “Planet Effect on Stats Scaling”?) set on “Relaxed” means high gravity is less intense on the organism, “Normal” means high gravity effects the organism as it should, and “Strict” means high gravity has a very strong effect on movement costs and the such.

That stat can have a disclaimer attached to it, saying something along the lines of “Relaxed scaling means life on this planet is less defined by the physical properties of the planet. This allows more creativity and freedom, but reduces realism and can result in less variety from one playthrough to another.”

This way, we don’t have to throw as many loopholes and special handling for players who want stats outside the bounds of their planet’s physical properties, but can also accommodate that as well.

This sounds more like an extension of the game difficulty sliders, rather than planet properties.

I think planet densities vary a little / somewhat so there’s some wiggle room to offer bigger worlds with lower density for much less surface gravity.

For now I’d say these shouldn’t be added, because even in non-LAWK mode we require scientific explanations for how something could happen. And so we wouldn’t even have a category to talk about these kinds of sliders as they aren’t even non-LAWK features.

1 Like

As I see it, planet editor can serve as a strong boost to replayability, especially if we include planet scenarios that are very different from Earth-like planets. These scenarios could range from extreme environments to unique planetary features, creating fresh and challenging gameplay opportunities.

  • Sulfur rich planet similar to IO: Sulfur can be found in almost every biome
  • Planet with very high temperatures: Biomes such as Tidepool, Estuary and Coastal are warm enough to support productive ATP production of Thermoplasts
  • Planet with asteroid field nearby: Significantly increases chances of meteor showers
  • Planet with unusual starting atmosphere
  • Swamp planet: A planet with only Tidepools and Estuary
  • Caves planet: Most of the biomes are connected with a cave system only

Thing is that it is pretty weird to have a setting which essentially is equivalent to “map size” in most other games also generally turn up the difficulty when it comes to scaling costs. Even a player attempting to have a casual experience on a large planet would be forced to bump into increased difficulties if they wanted a larger world.

This isn’t to say that a setting such as the one I mentioned before is the only way to deal with that issue, but it does mean we have to put a lot of thought on how to present planet customization/difficulty options. As a player, a “0.83 osmoregulation slider” doesn’t mean much - the math is obvious, but would 0.8 of osmoregulation mean my game is easy, hard, too easy, etc.? Same thing applies to other inputs, like planet density.

Having some way for players to put those values in relation to specific standards (realistic, easier, harder, etc.) should be thought of.

I mean the default planet size should be tweaked to be good for all playstyles and situations. I think playing on a super Earth should only be an option for like a second playthrough and not feel like someone who likes big maps would need to pick.

Wouldn’t the same thing apply to a planet gravity modifier? A player would have no clue what would be a reasonable gravity multiplier, unless they had already played through the game once.