Rethinking the Placement of Planets
The core of the Architect of Worlds design sequence is the series of steps in which the user places planets in orbit around a given star. Right now, that’s Steps Nine through Twelve:
- Step Nine: Structure of Protoplanetary Disk
- Step Ten: Outer Planetary System
- Step Eleven: Inner Planetary System
- Step Twelve: Eccentricity of Planetary Orbits
This is the section of the design sequence that’s been rewritten the most times, largely driven by the discovery of new exoplanets or new planetary systems in formation over the past few years. It works . . . but it doesn’t work well. Frankly, it’s a mess, it requires a lot of complicated and fiddly special cases, and I’m told it’s a bear to try to automate.
I’ve been thinking about doing yet another rewrite, as part of the process of producing a fully integrated draft of the book for the first time.
Now, as often happens, this gets into a peculiarity of my design process. There are times when I go for days or even weeks without writing a single word on a given project, because I’m chewing on some thorny problem. In a novel, it might be a bit of plot or character development that isn’t coming clear. In a game design, it’s a mechanic or subsystem that doesn’t want to work the way I would like. In either case, I do a convincing imitation of a writer who’s creatively blocked – but that’s not really the case. What’s really happening is that my brain is mulling over the problem with every spare cycle. Eventually, usually at the subconscious level, some inspiration comes along and I see a way forward.
I’m not quite at that point with this piece of Architect, but I think I’m getting close.
The way the system works now, you start by sketching out the mass and structure of the protoplanetary disk. Then you place planets roughly in the order in which they form – gas giants due to disk instability first, then gas giants due to rapid accretion, then rocky terrestrial worlds in the inner system. The results of each step can affect the parameters of the next, of course. That means lots of special cases where you have to put constraints on a mechanic, or where you have to fiddle with the outcome to make it fit.
This gets particularly annoying when the mechanics for planetary migration (i.e., movement inward or outward across the disk during formation) interact with the final placement of planetary orbits. Easy to get a case where you’re placing planets later in the process and you get an arrangement that interferes with planets you placed earlier on. Annoying.
So it occurred to me, possibly some night recently while I was drifting off to sleep, that I could just turn the whole process on its head. Instead of placing the young planets and then using a bunch of rules to shift them around due to disk migration and other factors, why not just do something like the following:
- Determine with a few random numbers and table lookups how many planets survive the formation process in each of the three categories (disk-instability gas giants, rapid-accretion gas giants, rocky terrestrials). Assume these three categories of planets always fall in that order, outer orbits to inner.
- Determine the orbital radii of the innermost planet and the outermost planet.
- Space all the other planetary orbits more or less evenly in between, using a procedure that won’t generate impossible cases that have to be fixed.
- Then, and only then, generate the masses of each planet.
One of the neat features of a system like this is that it can take into account things like disk migration and a Grand Tack for the system’s largest gas giant, without having to explicitly recapitulate all that evolution. If there aren’t any rocky terrestrials, that must mean that your innermost rapid-accretion gas giant migrated inward and stayed close to its primary, a “hot Jupiter.” If there are several rocky terrestrials, then that gas giant either didn’t migrate in very far, or it got pulled back outward by a Grand Tack. Done – no need to work through a several-step process, full of exceptions and special cases, to capture all the possibilities.
Hopefully this will be quite a bit easier to use. Ought to be a lot easier to automate, too. I can already hear K. Nakamura cheering, off in the distance.
I’m not quite ready to start rewriting this section of the sequence – I still need to work through some of the implications in my head first – but I might start taking a crack at it within a few days. If it works out, that will be a big step toward having a complete version 1.0 draft of the whole book that I’d be willing to share with my beta readers and patrons. Stay tuned.