So, I’m on a new website and figured I’d take this as an opportunity to start from scratch with some of the things I’ve been working on recently.

This is the output from a procedural generator I’m building for my game. All of the landmasses and oceans are currently unnamed, but the tech that underpins them is actually pretty cool.

Here’s a heightmap of the world, and this is kinda where a keen eye will start seeing interesting shifts. The eastern and western continents are wildly different in climate due to the distribution of the oceans and mountainous lands. There’s temparate forests to the east, a dry savannah to the west, and a jungle in the middle, with different biomes stretching out across the other landmasses.
All of this is simulated realistically using wind direction (a global wind direction for now, though I am considering expanding it to a vector map one day), moisture transfer, and elevation causing the rain shadow effect.
Moving further, I’ve worked hard to make sure that this system is something that can actually work in a game. Specifically, my grandest project yet – a truly and completely sandbox MMORPG.
The world map, of course isn’t the whole story. If I’m going to make this into a playable game at the level of ‘a person’ or ‘a village’ rather than ‘a continent’, it needs to serve relevant local data as well.
And it does.
The heightmap I’ve shown above isn’t full-detail. Not by a long shot. What I’ve actually got going on under the hood is a fair bit more interesting. When a player connects to the Nods.js server, they are provided a local grid of tiles which are generated using local noise, which is driven by the heightmap.
I’ve still got some work to do; the code has gotten away from me a little bit since I’ve just been kinda playing around with it for a little while. There’s some refactoring and API formalization that needs to be done, but once that’s ready, it’ll be hooked up to my Unity Front-End, and potentially even be launched as a little demo for stress-testing amongst friends and LinkedIn strangers 🙂