I've been giving some consideration to how I would go about doing something similar to the DF world generator. It wouldn't turn into an awesome game, like DF does, but it might create some very pretty landscapes if I team up with some friends of mine who do terrain rendering.
I'm curious; does the dwarf fortress world maker use plate tectonics to create its terrain heights? How does the process differ now from the original ambitions of how it would work when the project was started?
Here's what I've got so far as a skeleton for the process. Let me know what people think. Oh, and I'm not much of a programmer yet, I'm a mathematician. So, I'm more approaching this as a mental sketch initially than as a program.
1. I'm thinking of using a spherical geometry for the world. The finite, boundless surface created seems like it would be essential for the accurate representation of everything to happen afterwards.
2. I want to use plate tectonics to create the differences of elevation in the world. I can generate rough ideas of tectonic plates by randomly creating vertices radiating out from the center of the planet (uniform distribution over the sphere, but of slightly different lengths for initial terrain heights). By connecting the tips of these vectors, I can create the boundaries of each plate. Then, I can assign each plate a movement vector across the surface of the world. Convergent plates would throw up mountain ranges and volcanoes and would create a trench. Divergent plates would create rifts. Transform plates would have very jagged terrain.
3. After running the plates for a while, I think I'd have a lot of varying terrain heights. At this point, I'd add the forces of erosion to the world in the form of water and weather. I don't want this to get so complicated that it would drive the simulation to a complete halt, but tracking annual rainfall patterns, river flows, and winds would give me a very accurate representation of how the land gets further shaped. The process can be diligently tracked for ten years, then those can be repeated for a hundred years. Then tracked for ten years, etc. until the end age of the world is reached. The rainfall would be most greatly affected by winds, mountains and oceans.
4. Rivers, oceans, winds, and rains would erode the rocks. Rivers would act to make their beds smooth by digging down. Oceans would cut away at the shorelines. Winds would cut mountains into jagged cliffs, and rains would generally carry rock downhill.
5. Plants would have to be added. Elevation, rainfall, and temperature would determine how this happens, but I'm relatively clueless as to how at the moment. I do know that the algorithm doing this would have to be recursively applied while the weather patterns occur. This way, populations of flora can be changed as the climate patterns dictate.
6. Once plants have been applied, then I have a nice setting to look at. I figure that I could select times of year for viewing the terrain.
I know this is ridiculously ambitious, but hopefully I'll manage some interesting time-saving optimizations to help things along. I think it'd be a very long-term thing.