I'm working on a game with a procedurally generated world. Ideally, I'd like to generate landscapes as beautiful as Minecraft's worlds are. Minecraft has chasms, and waterfalls, and mountains, and rolling hills, and oceans, etc. But as this is going to be a top-down (actually 3/4 perspective) game, I don't believe most of that is possible. The main reason being how hard it is to try and represent height in this perspective. Zelda: A Link to the Past created the illusion of height well, but this would be very hard to recreate procedurally, and also introduces some problems such as the fact that the tallest structures have to be at the top of the map.

Zelda A Link to the Past

So, I'd like to know some techniques to make landscapes interesting in a top-down format without having to fake a 3rd dimension. (You cannot create or destroy terrain in this game, so that gives us a little more flexibility.)

EDIT: To make things a little more clear, I'm trying to avoid worlds with features that require a 3rd dimension. For example, I can't really have rolling hills or mountains. What landscape features could be added that don't require faking a 3rd dimension? One answer could be to add rivers, but that's an obvious one.

  • \$\begingroup\$ What do you mean by "without having to fake a 3rd dimension". Isn't "faking a 3rd dimension" the essence of your question? \$\endgroup\$
    – Anko
    Commented Mar 3, 2013 at 18:40
  • 2
    \$\begingroup\$ No, sorry if it was unclear. Faking a 3rd dimension is what I'm trying to avoid. So I'm looking for how you can make interesting landscapes without features that require a 3rd dimension. So, for example, I can't have rolling hills without a 3rd dimension. What CAN I have that's interesting that might make up for the lack of rolling hills? \$\endgroup\$ Commented Mar 3, 2013 at 18:55
  • 1
    \$\begingroup\$ I'm making a game with procedural 2D world currently. And thinking about this problem, I've decided that since I can't generate particularly interesting maps, I'd settle for less-interesting procedural spaces between hand-made locations. I'm also adding cars to travel through these (-8 \$\endgroup\$
    – Nevermind
    Commented Mar 4, 2013 at 9:28
  • \$\begingroup\$ Maybe by not faking 3D he means a true top-down projection? Technically the Zelda screenshots use a oblique projection for the vertical axis. \$\endgroup\$
    – ChrisC
    Commented Mar 4, 2013 at 21:59

1 Answer 1


Vary landscape types (texturing, vegetation), i.e. have multiple "biomes" such as:

  • Rainforest / jungle
  • Desert
  • Savanna
  • Swamp
  • Tundra
  • Mediterranean
  • Temperate forests
  • Boreal forests
  • Rocky areas (could simulate some kind of mountains without real height)

You should not have very many biomes of one kind and keep the individual biomes rather small to avoid repetition.

You can see some biomes in the complete zelda map: http://zs.ffshrine.org/link-to-the-past/maps/light_world-1.png Although there is quite a lot of the general forest, e.g. on the bottom there is desert, different kind of grassland and a water world.

Some features to add to the biomes:

  • Water: ocean (with islands), lakes, ponds and rivers
  • Forests: try different densities and noise functions / parameters
  • Undergrowth: different kinds of bushes, rocks, flowers
  • Structures: a lone house, farm, watchtower, ruins, statue
  • Settlements: villages, castles, tent camps
  • Roads, pathways and bridges

Again, avoid repetition: only have e.g. one tent camp, even if you generate different kind of camp each play-through. You should, however, have the player encounter some kind of landmark very frequently, so if your world is big and you need e.g. many villages, try to alter the house style between them (e.g. one has wooden houses, another one has them made of stone).

  • \$\begingroup\$ Great idea, and fairly simple too! I don't know why I didn't think of biomes. \$\endgroup\$ Commented Mar 4, 2013 at 22:03

You must log in to answer this question.

Not the answer you're looking for? Browse other questions tagged .