Large Scale Continent Generation
I am currently working on an idea to procedurally generate height maps on a large scale, with an added constraint that if a water plane is added at a certain level, all terrain above that plane must be within the bounds of the height map, or in other words, each land mass should be completely surrounded by water. Currently the project only generates images that represent the height map based off a certain random seed.
Major parts/features to be looked:
- Erosion Simulation: for more realistic looking terrain.
- Scalability Issues: maximum map size is currently 8193x8193, need to incorporate out of memory processing to increase this.
- Customized Input Terrain: allowing the program to read in a height map from a file using that expand it to a larger map.
- Rivers and Lakes: a way to add rivers and lakes to the map in a realistic way.
Here is a sample terrain generated by the program currently. This image is only 513x513, but the program can create images up to 8193x8193.
The image is only the base generated terrain which has been smoothed slightly.
Major parts/features to be looked:
- Erosion Simulation: for more realistic looking terrain.
- Scalability Issues: maximum map size is currently 8193x8193, need to incorporate out of memory processing to increase this.
- Customized Input Terrain: allowing the program to read in a height map from a file using that expand it to a larger map.
- Rivers and Lakes: a way to add rivers and lakes to the map in a realistic way.
Here is a sample terrain generated by the program currently. This image is only 513x513, but the program can create images up to 8193x8193.
The image is only the base generated terrain which has been smoothed slightly.

Comments
Are your map dimensions arbitrary? Just wondering why they're 2^x+1 instead of 2^x.
It doesn't actually use a real noise function (like Perlin Noise) to generate the terrain, rather creates an empty grid. Then gives default (0) values to the border points on the grid. Then (optionally) it chooses random points with in the grid to assign random heights based on a defined range (-1 and 2 in this case) multiplied by how far the point is from the edges. Then I use a floodfill algorithm to fill in the rest of the grid, choosing the point to assign randomly from the neighbours of the already assigned points, then assigning the height of that point to be the average of it's neighbours heights plus an offset based on the same range above.
For smoothing, I think that adding erosion to the generator would help with that, but I still have to implement that.
Every time I think about building a heighmap generator, I look at stuff like World Machine and dispair the amount of work it will take to make something better: