Brad Wardell's site for talking about the customization of Windows.

In preparation for the Game Developer's Conference we wanted to put a polish pass on the planets in Star Control: Origins.

There are about 3,000 unique planets that are split into roughly 75 different classes.  Each class of planet has its own challenges, as well as its own mineral deposits that you might want to collect (along with ruins, cities, smugglers, creatures, etc.).

Today, I'm going to walk you through how we create our planet classes.

Unique, Procedural and Hand-Crafted

You can't hand craft 3,500 planets.  And it would not be a good thing for every planet class to be the same.  So how do we solve this?  Through a mixture of procedural generation and designer balance. And this gets me up to "Programmer art" level.

The Primordial world

One of the planet classes is known as a Primordial world. These are worlds that are still simmering with active volcanoes, have a variety of minerals, and occasionally have life.

A humble beginning

Yea...not so pretty

 

But that's ok.  We can fix all that.

image

We start with our planet template which is called...wait for it...Primordial. This file refers to materials (what thinks look like) and stamps (what things are shaped like).

In the game, they're located here:

  1. In assets\PlanetTemplate are the types for every planet.

  2. In assets\Terrain is the default.terrainmaterial set.

  3. In assets\Stamplists the stamplists are available.

  4. In assets\Stamps are the stamps the stamplists use.

Setting it up

From my Primoridal planet template, I set up the stats and choose my stamp list.  The stamp list is a series of stamps with weighting on them that helps determine the odds of a given stamp being chosen for a particular planet at a particular time.  This way, every planet looks different.

Choose our stamps and weights

Now that I've set up my stats (the weather, what minerals are likely to show up, odds of life, temperature, gravity, etc.), I choose what stamps will be on there. Now, the fun starts.

 

Code: xml
  1. <stamplist>
  2. <stamp asset="Mountain01_Basev05" weight="1" />
  3. <stamp asset="TextureVariation_Grass" weight="1" />
  4. <stamp asset="TextureVariation_Flowersv1" weight="1" />
  5. <stamp asset="ForestA_v1" weight="1" />
  6. <stamp asset="Volcano01_Basev01" weight="1" />
  7. <stamp asset="Hill01_WispyRockv01v02" weight="1" />
  8. </stamplist>

 

That's just me picking 6 stamps and putting them up.  Just curious what that will do.  I hit F5 on the planet and...

Mmmm. Bumpy.

 

Trial and Error

Over the next several minutes I pick various other stamps and end up with this:

 

Code: xml
  1. <stamp asset="ForestA_v1" weight="1" />
  2. <stamp asset="ForestA_v2" weight="1" />
  3. <stamp asset="CanyonCap01_Basev01" weight="1" />
  4. <stamp asset="CanyonOpen01_Basev01" weight="1" />
  5. <stamp asset="CanyonStraight01_Basev01" weight="1" />

 

Time for some atmosphere

Back in the planet template file, I can set up my atmosphere. Basically, what color is it, how transparent it is, and how thick is it.

 

Final Result

My Primordial planet

 

Now it's ready to leave the designer's "programmer art" state and move to the artists for further polishing and iteration over the months. 

This is just one class of planet.  Each planet of this class will be different.  But you can also create specific, individual planets that can look like anything you want. 

I suspect there will be a big library of planet classes made by fans (as well as specific planets) that will easily blow away my quick work here, or even the final effort, based on what I've seen people do in other games.

Feel free to ask any questions.


Comments
on Mar 20, 2018

Woah! creating whole planets, that sounds amazing!
And the team will handcraft the planets too, damn, this is way better than procedurally generating ones from a model!
very tiring i imagine, but the end result will be fantastic!
How many Planet types is there in the game so far? and will there be more types to add, after launch? 

(damn, i just realized you put 75 there! sorry, but i'm guessing these are "Volcano but with mountains", "Volcano without mountains", "Water with Land", "Water without Land" and so on, right?)

on Mar 20, 2018

Going to be making myself a Metal \m/ planet!

on Mar 20, 2018

Looking forward to sinking my teeth into this!

on Mar 20, 2018

Very cool indeed. Great to see this level of detail going into the game

on Mar 20, 2018

Actually I like the irregular, bumpy planet you first made. It really represents real planets. Bumpy, irregular, oblate, super huge mountains! >>> Pluto has mountain ranges with mountains miles high yet is smaller then our moon. 

NASA’s New Horizons spacecraft zooms in on the southeastern portion of Pluto’s great ice plains, where at lower right the plains

 

on Mar 21, 2018

This is an incredible look!

The next time I visit one of our planets, I'll take a closer look at them to appreciate all of our hard work behind the scenes.

on Mar 21, 2018

I'm hoping that if you're going to have that many planets, you're not also going to feature a hard calendar deadline for game over like SC2 did.  I loved SC2, but I really felt the hard deadline grated against the exploratory aspect of it, especially if you're playing blind for the first time and don't have clear direction on where to go.

on Mar 22, 2018

I'm wondering, could you make a planet model so extensively mined that there's a huge chunk missing? Like about 25%.

Also, can you add rings, pollution and orbital debris?

on Mar 22, 2018

Donnicton

I'm hoping that if you're going to have that many planets, you're not also going to feature a hard calendar deadline for game over like SC2 did.  I loved SC2, but I really felt the hard deadline grated against the exploratory aspect of it, especially if you're playing blind for the first time and don't have clear direction on where to go.

You'll be pleased to know that this is the case. Brad has said several times that there is no "timer" in SCO. It's a state-based engine, thus things you do may kick off time sensitive events (e.g. you tell the wrong person where Earth is, so the game spawns a warfleet from their home planet which will fly to Earth over the next 30 game days and blow it up unless you find a way to stop it. Or you meet someone and offer to bring him crashed debris from his enemies space fleet that was blown up a generation ago, but he says he's leaving for Naboo in a week, so you need to return before then) but there is no overall ticking clock, you can play the game at your own pace.