Monday, February 6, 2012

On Minecraft Landscapes and the Crumbling Riverbank Outside

Ever since I started playing Minecraft, and experimenting with how water flows within the in-game landscape, I've wondered about the possibilities of using Minecraft as a tool to demonstrate features found in the natural world.  So, a while back I created a new world to test out some ideas, and turned on 'creative mode' (a cheat mode where it is possible to fly and create/destroy anything at whim).  I spent a while creating explosives, blowing huge holes in the procedurally generated landscape, and dropping zombies in lava, but when the novelty of doing so wore off, I set off to see if I could use the Minecraft world to create and model realistic-looking waterways and terrain.


Because erosion does not happen naturally in Minecraft, I dug some stream channels in a dendritic watershed pattern and filled them with water.  I was able to create some interesting looking waterways, but since the water will only flow seven squares horizontally for each square of vertical drop, much of the water in the flatter channels laid still and had to be filled with water manually.

The vegetation in Minecraft also does not change on its own when the landscape changes, so I manually created a little meadow area along this 'creek' as it flowed through the desert.


It is pretty, but doesn't tell us very much about how waterways or riparian zones work.

To understand why rivers and streams generated or created in Minecraft don't quite look 'right', we have to think about the factors that influence real waterways.  Earth has been around for 5 billion years and has had water flowing over its surface for most of that time.  As mountains and even continents form and are eroded away, water continually influences their shape.  Except in extremely disturbed 'new' landscapes or places like sand dunes where water soaks immediately into the ground, water has carved paths from every bit of Earth's land to large-scale low points - usually the ocean, but sometimes large salt lakes or dry lakes in the middle of continents.  Localized low areas tend to fill with water - forming lakes - and then over time these lakes fill in with sediment and become flat valleys.  Lakes are generally found in situations such as recently-glaciated areas, very deep basins have not had time to fill in with sediment, rift zones, or places where humans or beavers have intentionally blocked water flow.  Landscapes are covered by a very complex, fractal network of waterways, much like the veins and capillaries in humans, or the branches of trees, that offer a continuous path downhill from any point on the surface of the planet.  You can demonstrate this by loading Google Earth, traveling downhill from any given point on the 3d landscape, and seeing where you end up.  Then, load up 'Google Moon' and try the same thing.  The moon has never experienced flowing water or other liquids and has not had actively uplifting mountains or volcanos for billions of years, and thus the terrain is VERY different!  (Keep in mind - the Moon has not experienced more meteor impacts than the Earth, but without flowing water, wind, or tectonic forces craters just don't erode away there.)

View Larger Map

Minecraft's worlds are not formed over billions of years, but created in place; once this happens they do not usually change significantly unless the user changes them.  Thus, instead of elaborate watersheds, Minecraft's worlds consist of many small basins and low spots, which do not fill with water or sediment.



On Earth, it is possible that a crack like the one above might form, but water from the lake nearby would soon break the small dirt wall separating it from the crack, and fill it with water.  Over time, sediment eroding from the hillside to the left would fill the crack, and unless the crack were continually enlarging due to very active geologic processes, it would eventually fill in.

The point of Minecraft is to create a fun environment to manipulate and to build things on.  It is more fun to have unrealistic but neat-looking mountains and waterfalls than to spend hours waiting for 'realistic' terrain to be generated.

(don't ask where that water is coming from, just appreciate that it is neat looking...)

Adding erosion and sediment deposition to Minecraft, or creating a world where trees grow, die, and evolve, might slow the game down far too much for it to be fun.  This may change as computing power increases, but for now, it probably isn't feasible.  I learned this when I created Buckthorn Bash, a very simple example game where trees and invasive species grow and compete for space.  I think more could be done with Buckthorn Bash but even in its current extremely simple form the game runs quite slowly if a large number of plants are present.  Minecraft does allow people with more programming ability than I to 'mod' (modify) the game quite extensively, and people are working on different sorts of 'mods' that add different effects, such as seasons, and the developers are also actively expanding the game (soon jungles and huge trees will be added!).  I do expect to see much more realism and complexity in Minecraft and other virtual worlds as time goes on.

Today, while thinking about this blog post, I took my usual walk down to the river.  I came across an interesting scene - one of the actively eroding banks of the river was thawing in the sun, and rocks, gravel, sand, and mud were periodically plummeting down the slope into the river.

The complexity of this seemingly insignificant event is incredible.  The clay at the base of this bank was deposited when a lake filled the valley after the Ice Age; the sand above it was deposited as the river flowed into and began filling in the lake, and then the larger rocks were deposited after the lake drained away, as the river deposited cobbles just like those in the riverbed today.  The cobbles have eroded down from the Green Mountains; they formed deep underground by geologic processes many millions of years ago.  Some even contain remnants of layers that were deposited in an ancient sea an incredibly long time ago - layers that may have looked much like those in the riverbank today.  The soil at the top of the bank was formed through the life and death and interactions of countless organisms since the lake receded 10,000 years ago.  This little riverbank exists due to an incomprehensibly complex set of interactions between matter and energy spanning billions of years.  I can't imagine, even with advances of technology far beyond what we have now, that we could ever simulate anything even close to the complexity and beauty found along the eroding banks of the Middlebury River.

It is for this reason that many people in my field dismiss virtual worlds like Minecraft as a useless distraction from the 'real world'.  I think they are missing the point.  The simplicity of the rules in a world like Minecraft, and the surprising complexity that DOES emerge even in this simplified world, highlight rather than detract from the much greater complexity and beauty of the natural world.  For instance, just by dumping 'water' and 'lava' on top of each other sequentially within Minecraft, it is possible to generate a very realistic-looking "cinder cone" volcano.  Imagine how many more factors, on so many more scales, there are to discover when you explore a real cinder cone!


The idea of such complexity arising from very simple rules has led to the study of complex systems.  This mode of thinking originated with simulations a bit like Minecraft, only even simpler.  The ability to create simplistic worlds with a fraction of the complexity of a riverbank in Vermont has given us insight into of the deepest aspects of seemingly chaotic phenomena such as water flow, weather, and even interactions in ecosystems.  While we can't accurately model all elements of the real world outside, simple models are able to add to our awareness of how our vast and complicated world works.  We just all need to remember to step away from our models from time to time and get outside, where we can experience our world firsthand.

And who knows.  Maybe if we ever really understand the universe, we'll find that the base of all we see around us comes from an incredibly simple ruleset too - albeit one that has had many billions of years to work with.


  1. You should check out finite liquid mod for minecraft. It makes Water flow more realistic and also stops water from running infinite.

  2. Hey Florian, that looks interesting! I haven't had a chance to try it yet, but will do so at some point.

    What I really want to see is water moving more than 7 squares, but also not fanning out infinitely. That way, more natural waterways could be created in the landscape instead of the more static ponds that are all over the place now.

    Does this mod still allow you to make unlimited springs if you want them?

    Also I would *love* to see a mod where water somehow slowly eroded away dirt, and then deposited it where it slowed down. Perhaps that would create too much lag, especially on my crappy old computer, but it would be neat.