I made a bit more progress on the planet generator. Gas giants now have rings, there are different color schemes that may apply that very roughly approximate the colors of the gas giants in our Solar System, and the turbulence level is now variable. They colors and ring spacing still need tweaking. Specifically, the colors chosen in some of the schemes are too different from each other; most photos of Neptune and Uranus show shades of blue and green, respectively, that are much more similar than my color schemes. The next three screenshots should give an idea of where things stand.
For the rocky worlds, I attempted to implement the crater algorithm I saw used for Stephen M. Cameron's Spacenerds in Space game. Basically, it places a "dimple" at the crater site and then
surrounds it with a number of cones in a slightly-irregular near-circle around the perimeter. Alas, my implementation details need further work, as can be seen.
When looking over my notes on terrestrial planet generation earlier, I realized that I neglected to mention Tectonics.js, a JavaScript + WebGL web program that performs a 3D simulation of plate tectonics. I've previously mentioned the PlaTec plate tectonics simulator and the Experilous 3D world generator, and that I thought that while they've got some fascinating features, they fall short of what I'm really looking for. I had hoped Tectonics.js would be a solution, but alas it is as slow or slower than PlaTec, usually lacks the puzzle-piece-like continents (like how Africa and South America fit), seldom produces decent-sized continents, seldom has very many mountains, and has some strange artifacts. The second and third points may simply be caused by too much subduction. The fact that unlike PlaTec and the Experilous planet generator it starts with a water world may be a contributing factor as well. Despite that, it can be fun to watch and does sometimes yield interesting results.
I've begun wondering about combining something to generate fair-to-good initial continent shapes with a solution like the Experilous planet generator. I have some old 2D code that generates a supercontinent and splits it, spreading the continents out across the world. That might work. I'll give it more thought later, once I'm getting into terrestrial planet generation.
Another thought: Most of these approaches produce decent coarse topography, good enough for a view-from-space, but little more. (Fractals can allow an arbitrary amount of detail, but have major drawbacks of their own. Everything seems to be a balancing act!) Perhaps using the coarse topography as an input for something like Ian Parberry's "Design Worlds" approach could work. The type of terrain to be generated in the fine topography could be based upon elevation and slope (derived from elevation of adjacent cells), with appropriate elevation distributions obtained via analysis of several different DEM's (digital elevation models) of appropriate terrain on Earth.
That would still leave rivers and coasts, but Soon Tee Teoh has published an approach that could easily be combined.
And that's probably enough babbling by me for this Monday. Time to call it a night and get to sleep before the workday.
No comments:
Post a Comment