Game Development Stack Exchange is a question and answer site for professional and independent game developers. It's 100% free, no registration required.

Sign up
Here's how it works:
  1. Anybody can ask a question
  2. Anybody can answer
  3. The best answers are voted up and rise to the top

I've recently been experimenting with a simple Voxel-based 3d engine (think Minecraft) which uses heightmaps to define terrain in the following format:

Does anyone know of the best software for producing these kind of maps? Preferably with the ability to define a texturemap also. Are terrogen and picogen the only real alternatives?

share|improve this question
up vote 2 down vote accepted

Rolling your own is nice, since then you can just create maps, without needing to supply an image, or at least make the image optional. I use Perlin noise in my voxel game for terrain generation. It works pretty well, but is fairly plain compared to the maps that Minecraft produces. I imagine Notch does a lot more than just Perlin noise.

In my game I use 2D Perlin noise to generate the basic flow of the landscape. Then do some carving with another grid of 2D Perlin noise to make a more rugged look. Then I carve tunnels using a wandering path through the terrain.

Perlin noise is a pretty standard way to go:

Then this guy Paul Martz has an application that makes such maps, and the source code for doing so.

There's also a nice article in Game Developer that goes into procedurally generating voxel terrain. It goes into 2D height maps, and 3D noise for generating maps.

There is an article in the April issue on page 21 (Creator of Worlds) That's rather good, however it looks like it's paid access if you don't already have a subscription.

share|improve this answer

I'm a little confused about what you're trying to do. If you represent your terrain as a single 2D heightmap, then you won't be able to form the same kind of terrain as minecraft, as it is a 3D voxel terrain (i.e. arbitrary placement of cubes anywhere in 3D).

One benefit of voxels is that you can have overhangs and tunnels and floating blocks, which are all impossible with a heightmap like you describe.

In terms of minecraft, a single 2D texture can only provide you with information about a single layer of blocks.

If you really do want to create a 2D heightmap, Vue has excellent tools for doing so:

(Although it is quite expensive.)

If you want to generate an interesting 3D terrain from scratch consider this often quoted GPU Gems article, and simply ignore all the hard parts of generating a mesh from the voxels, and just use the voxel generation method by itself (just a combination of trig functions).

Texture colors can be generated based on slope and height.

share|improve this answer
Incorrect. A single 2D height map has 3 dimensions of information, each pixel has an X, a Y and a color. So for example, when the color is white the height of that area is 0, when the color is black the height is the map maximum, everywhere in between is a different height. – Byte56 May 13 '11 at 16:55
I didn't say that a heightmap doesn't have 3 pieces of information. Read my answer again. I said that all you can represent with a heightmap is a single layer of blocks laid out in 3D. To have 10 layers of blocks, you would need 10 height maps. This is why games like minecraft do not use heightmaps to represent the data. – Olhovsky May 13 '11 at 16:57
You can have a look at my own procedural terrain here if you want to be convinced that I'm not just making things up: – Olhovsky May 13 '11 at 16:58
Think of it this way each pixel has 0-255 values available. If the value was 120, you would put a cube into spaces 0 through 120. The pixel value defines the height of a column of blocks. – Byte56 May 13 '11 at 17:02
A 3D texture contains 4 dimensions of information, a position in 3D space AND a color. – Byte56 May 13 '11 at 17:05

World Machine

World Machine has a non-commercial free version which only has a few limitations compared to the commercial version. I can't speak highly enough about this software.

Produces both a heightmap and texturemap procedurally.

I used it to create the island and texturemap for this techdemo

USC GamePipe Island Tech Demo "Paradise"

Forget what you know about editing terrains. Unlike many other terrain editors that function like paint programs, World Machine operates on a procedural level. A World Machine world file is not the terrain, but the steps that creates the terrain. This is the source of both its power and its complexity.

When working in World Machine, your role is to determine the overall appearance and characteristics of the terrain, and then allow the generators and effects to create and detail the appearance of your world. This way of working and thinking at a higher level takes some getting used to, but the rewards are huge: You can create impressive terrains with relatively little work, and once you have created a terrain that you like, you can use the same world file with different random "seeds" to produce a different terrain with the same feel.

share|improve this answer

Your Answer


By posting your answer, you agree to the privacy policy and terms of service.

Not the answer you're looking for? Browse other questions tagged or ask your own question.