Deadrock

Development news for Deadrock and games industry commentary

Town generation baby steps

I’ve been working on town generation for a while now, since the last update. I did a bunch of internet research and I have a bunch of links to throw up on the blog here but I haven’t written it up yet. So here’s an update of what’s been going on.

A week ago:


And today:

What you are looking at is a broad plan of the town - these are large lots into which smaller building lots will be placed. The generation process is fairly simple and goes like this: first I generate a population density map, which is a combination of a cloud of points with an area effect and Perlin noise. Next I distribute some road seeds across the map. These grow outward and branch into smaller roads if they don’t collide with another road. I then distribute building lot seeds over that and grow those at different rates until they can’t grow any more.

Next stage is to put some lots inside the lots I have already made, and then move on to building generation, which I reckon is going to be much harder :)

3 Comments so far

  1. Dan May 16th, 2008 2:53 pm

    The results are impressive. I did something similar a while ago on one of my projects but it wasn’t so procedural (and was probably a lot slower).

    I had a data directory full of city pieces that fit together a bit like a jigsaw. I wanted to be able to grow the city over time. So gradually over a number of frames an extra piece here and there would be added (if it fit). The results were also quite cool. I really like the idea of procedurally generated city and procedurally generated content in general.

    Looking forward to see where this goes!

  2. Lionel Barret July 1st, 2008 2:14 pm

    Hey, good result.
    If you want a bit of help, maybe we can help.

  3. Fab Trillaud March 3rd, 2009 3:56 am

    Hello,

    I am working on a town generation algorithm myself (although I only started a week ago..) and I only have a few months to complete it. Can you show me some of the docs you found on the Internet?

    Thank you ^^

    NB : here’s my mail xeloss86@hotmail.com

Leave a reply