Genesis Procedural Content Generator

One of the things I have been working on is Genesis, a procedural content generator written in F#. It generates random names and terrain maps.

The project has almost nothing to do with what I had envisioned when I started it.

Here are some sample maps :



Mountains are in grey, grasslands/plains in pale green, forests in dark green, desert/arid climate in brown and water in blue.

It’s still lacking rivers and lakes and the output isn’t satisfactory. Sadly I think I would need to start over to get realistic terrain generation, which was one of my goal. The main problem is that I used midpoint displacement and noise functions which while good enough for video games don’t generate photo-realistic results alone.

To try and correct that, I devised my own solution using a crude simulation of water erosion rather than look into and implement standard algorithms.

It was a learning experience and a lot of fun but I would have had quicker and better results by copying some existing algorithm.

I don’t know what to do with the project right now as there are other things I want to spend my time on, but I would still like to work on it some more in the future. Maybe take a whole different approach and generate fantasy maps with brushes and icons which are much less detailed.

2 thoughts on “Genesis Procedural Content Generator

    1. I’ve since looked up on the subject and realistic terrain generation is pretty hard. Supposedly it’s though to get good results when looking at the map from a long distance.

      Traditional techniques sometimes use complex watershed generation algos.

      I could make it into a “hand draw fantasy” map type of thing, but that would scrap a lot of the current code.

      I could also just add rivers and lakes to the current maps. That could be fun but I have no idea what I would do with this project after that.

      Maybe with a fantasy “hand drawn” style maps I could generate fantasy worlds down a to a level of details of towns, etc. but that would be a lot of work.

      Thanks for your comment it really means a lot to me. šŸ˜‰

Leave a Reply

Fill in your details below or click an icon to log in: Logo

You are commenting using your account. Log Out /  Change )

Google photo

You are commenting using your Google account. Log Out /  Change )

Twitter picture

You are commenting using your Twitter account. Log Out /  Change )

Facebook photo

You are commenting using your Facebook account. Log Out /  Change )

Connecting to %s