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.