This post was published 3 years 1 month 22 days ago and as such probably does not reflect my current opinions, knowledge or ability.No huge update, just figured I’d share some screenshots from my terrain generation/openGL project:
Here, several octaves of Perlin noise (on the left) and Simplex noise (right) are layered to produce a fairly bland landscape. At the moment I’m not sure whether to get it a little more bumpy or to leave it flat and try and plot some buildings. These maps both use 2D noise, inputing X and Z coordinates to give a height at each point.
As these top-down views show, Perlin noise (left) is less ‘active’ than Simplex noise given the same values. Simplex noise is also lacking Perlin noise’s distinctive thread-like patterns.

These images both show Simplex noise using the same X and Z coordinates, this time using time as a final variable in generating 3D noise in order to allow different landscapes to be produced.


Finally, here’s the landscape with a river cutting through it. As you can see it still needs some work – the repetitive sin wave is far too obvious at this scale – but the function is actually very flexible and after some experimentation with values and some more variation I think it will be fine.


The next step is to look at using noise maps to create procedural and possibly animated textures, and getting some water in there.
In other news:
- We’re demonstrating and handing over our group project game “Some Assembly Required” to the BBC tomorrow. It’s looking rather nice (screenshots and videos to follow) and we might need to do a little more work before our coursework hand-in, but I think the whole team is pretty pleased with the final product.
- The whole “Variables don’t vary” deal with functional languages is only weird when you stop and think about it. When you actually get to writing code, it isn’t really something you notice. Just a different mindset I guess. In other words, my experimentation with Haskell continues.
