Amberfell Landscaping
29 May 2012 by Ian Davis
This is the first of three posts today (if I get them all written). One of the things I’ve been working on since last week is the generation of the game landscape. I’ve started with a fairly traditional approach: perlin noise. I’ve written a perlin noise implementation which can produce noise like the following:
There are other implementations available for Go, but none as standalone packages.
I use noise to generate the height of the terrain with further noise functions to generate soil depth, rock formations and tree distribution. Here’s a couple of screenshots of the result:
It’s important to scale the noise just the right amount otherwise you get very dramatic landscapes. These might be ok for a first person game but they’re really hard to navigate in isometric views:
The best thing about the new landscapes is that Amberfell suddenly becomes very explorable. I find myself wandering around looking for interesting landscapes and hidden corners. Hopefully I’m really going to be able to enhance this effect with some of the surface features I want to add such as ruins to explore. A lovely sky would be great too.
Here’s a video of me exploring a little. I’m zoomed in to show off the landscape but I don’t think it’s particularly playable at that zoom level.






Very cool. Has the Go garbage collector been able to keep up, or have you implemented custom object pools?
Yes, the GC is keeping up just fine. I experimented with running it every frame to ensure quick collection of the few objects that had been created for that pass but in the end it wasn’t needed.