Sunday, 9 October 2011

Terracraft WIP 1

Since Notch has yet to release the mod API I can't start on Sapphire Island yet, so in the meantime I've decided to continue on my terrain generation algorithm. So far, I've implemented the following:
  • Continents
  • Mountains, hills and plateaus
  • Rock strata
  • Regional temperature and height-based temperature lapse
  • Regional rainfall
  • Biome identification
Still to do:
  • Volcanoes
  • Orographic rainfall
  • Topsoil
  • Biome-based terrain features (canyons, mesas, oases, etc.)
  • Vegetation and other decoration such as boulders
  • Rivers
  • Caves
  • Ore distribution
  • Man-made structures (villages, ruins, etc.)
Below are two screenshots of  the current state. As you can see the map is quite a bit higher than a normal Minecraft map: I'm using a height of 512 instead of the default 128 to allow for proper mountains and generally get a more realistic scale; as in real life, a decent-sized tree for example will easily reach 20-30 meters. Sequoias can grow up to 100 m, which would take up almost the entire height of a standard Minecraft map. With the increase in height I can still have a mountain towering over a sequioa. The colors in the screenshots represent the biomes. Currently they have very clearly demarcated borders because I set specific cut-off points, but they're actually gradients so once I put in topsoil and vegetation they will smoothly blend into eachother. Below the terrain you can see cross-sections showing the rock strata. There are five types of rock (excluding the bedrock in the bottom layer of the map): sandstone, limestone, shale, granite and basalt. Each will have a different ore distribution. Diamond, for example will only appear in basalt. As usual, click for a larger view.


  1. This is pretty cool. Keep updating us!

  2. everyday i look for an update on this... but nothing happend the last 2 months...

    i hope this gets a mod for minecraft! :D like the cubik chunk mod.

  3. Since the mod API for Minecraft is taking so long to get released I've paused this project for now. I'll probably pick it back up when we finally get the API.