Here's my first finished random map generator. Unfortunately, it's in Python, and since I'm Windows-stupid, I didn't make an EXE. You can always
install Python 2.6 yourself if you don't have it.
This makes some pretty good maps, even though the code needs some clean-up. It's quite configurable, but right now you have to edit the source to access the configuration options (and figure out how it works, without many comments). Sometime soon I'll set up a public repository, and just link to that, so I don't have to re-upload every new version.
I haven't made this very easy to run... sorry about that. But if you manage to run it, let me know what you think.
Edit:
I've played with my maps in TerraForm now, so now I can post some actual pictures. In the process, I can explain what sort of configurability I've got.
Each image is made with my current defaults for map generation.
First, the canvas is divided into 120 plates. With a higher number, the continents become more stringy and random, while a smaller number makes blockier landforms.
Every plate that straddles a certain line of longitude is turned into ocean. This is definitely not required, but tends to make a notable division between a new world and an old world.
More plates are removed, until about 1200 non-polar land squares remain. The Earth map uses about 1500 instead. It's easy enough to change it to whatever you want.
The land area is divided into separate habitats, which will later be filled with one or more of the 10 dry biomes. A number between 0 and 1 is used to govern, in general, how big each habitat is, with the current default at 0.3. With this number set to 0, one type of terrain will stretch across huge swaths of terrain, while if it's set to 1, two adjacent tiles can only match by chance.
These maps were designed to have about 100 river tiles each, which can be changed. The typical lengths of individual rivers could potentially be changed, but I'd have to add code for that.
Each of the habitats are filled in with a biome, chosen with a random distribution governed by a string, currently "ggggggpppppfff000012". The letters correspond directly to their biomes. The numbers can be used a couple different ways. In one case, they can represent a choice of biomes; when "2" is selected, that region will be filled with each tile randomly chosen from "mhh". This helps mountains and hills to occur in the same area, creating interesting mountain ranges. In the other, more complicated case, a series of distributions correspond to latitude. For instance, the number "0" can make arctic and tundra near the poles, and desert toward the equator. Similarly, "1" can make swamp toward the poles, and jungle toward the equator.
Of course, I need a better way of exposing this configurability than editing the source code. Making command line options will be a high priority. A GUI (and a Windows binary

) would also help make it easier to configure. The source is available, so if anyone wants to help...
Edit 2:
The observant may note the presence of diagonal land/ocean formations in the 4th sample map. This can happen when a "four corners" (Utah, Colorado, New Mexico, Arizona) formation shows up during plate formation. It's not too common, and I kinda like it, but maybe others won't. Go ahead and flame me.
