tags:

views:

568

answers:

4

I'd like to collect a list of algorithms and other resources to generate realistic and interesting visuals of planets. The visual should look like something which you'd expect to find on the NASA homepage. Key attributes would be:

  • a nice colorful atmosphere for gas giants
  • rings (optional)
  • impact craters for solid rocks without atmosphere
  • inhabitable planets could have features like oceans, mountains, rivers, forests
  • inhabitables could even have a realistic distribution for the civilization on the surface

The final goal should be to give Science Fiction(SciFi) writers a tool to generate a world which helps them to spark ideas, create locations for scenes, or as a basis to render nice images for their books.

Note: This is a wiki, so no single "correct" answer.

+3  A: 

Fractal terrain generation works wonders for creating realistic landscapes. I imagine you could scale the processs up in order to generate landmasses on a plantary scale. This site has a detailed description of the process used for landscapes.

e.James
Awesome! These things can be amazing, often with limited user input. Also, correct me if I'm wrong, but because it's a fractal, you should be able to generate a planet that renders easily at any level of zoom, no?
David Berger
It depends on the fractal algorithm used - most of the ones I've seen use fractal 'cloud' algorithms that rely heavily on random number generation and do not scale well. Avoid that and you'll be ok, though.
Erik Forbes
@David Berger: theoretically, yes :)
e.James
@David: The main issue here is that you must come with a scheme to generate the same seed every time you zoom on again. Authors won't like it when a shore city suddenly ends up in a new ocean ;)
Aaron Digulla
+1  A: 

I'm no astronomer, but you might consider some sort of decision tree for a preliminary classification of the planet:

  1. Main Composition (methane/rock/etc.)
  2. Mass
  3. Additional atmosphere (how much, what of, etc.)
  4. Temperature (Alternately, specify distance from star, model the star and write an algorithm based on the above)
  5. Age
  6. Asteroid/Meteor activity

Things like craters would be indirectly determined by 1, 3, and 6. Radius could be calculated from 1 and 2. And higher elements on the list might put boundaries on lower elements.

You still have many algorithms to research, but maybe having an order of information might structure your calculations or what variables you use.

David Berger
+2  A: 

Check out conworlding links. There is actually commercial software out there (ProFantasy comes to mind) but if you wanted to do something from scratch, I have three links you may be interested in :

Magical World Builder

Climate Cookbook

Fantasy Worldbuilding Resoruces

That last item is a wicked awesome Squidoo lens that has many other links.

Finally, Guy Lecky-Thompson has written some interesting books on using procedural content in game design. I have both of his books and they are very inspiring. Many algorithms are listed, including a few RNG implementations, name generators (HINT: pick a list of name parts, then how many parts each name should have, then randomise), two whole chapters on terrain and landscape generation, a dungeon chapter...

Oooh ! Speaking of dungeons, dunno if you have heard of Roguelikes, but I have recently been looking into these. I imagine that many of the same general principles they use for dungeons can be applied - and there are wilderness algorithms they share, besides. Try:

Temple of The Roguelike - possibly the largest Roguelike dev forum

Wilderness Generation using Vornoi Diagrams - this blog is run by a developer of Unangband, a very popular Rogue variant. Many people in the Roguelike dev community share sources.

Markov Chain - this article is about how to put together randomised names using Markov Chains. The wiki where this is hosted has quite a few algorithms of interest to anyone generating procedural content of any sort.

Roguebasin - many useful aglorithms and code examples here.

Have fun !

Damien
+2  A: 

If you want high-level descriptions of a very mature procedural planet renderer, Infinity is perhaps the most venerable. The development blog covers many of the concepts used to create some very nice procedural planets and some other very nice space phenomena.

Ron Warholic