Monday, June 30, 2008

Random map generation

This week I've been working on random map generation for my Thief/Rogue hybrid. This is what new Roguelike developers generally start on, and they can easily waste years with it. It's a hard problem. I put it off on my project because I knew what a morass it could be, and because I didn't feel like I had a handle on what the gameplay would need from the landscape. Now that I have a pretty good idea of what the gameplay is, I've decided it's time to tackle landscape randomization.

By the way, here are some Roguelike development sites I keep an eye on:



What I'd like is something like the streets of Toledo (EspaƱa, not Ohio):



(Image by ctankcycles.)

I don't have any great images handy, but Google Maps does a pretty good job of showing what I'm after:



Of course this has to be rectangularized to some extent.

I tried out a Voronoi diagram on a grid. Very unsatisfactory:



There's a paper in this year's SIGGRAPH that has some ideas I might try.

2 comments:

S. John said...

Groovy stuff; I could stare at that Toledo overhead for hours. For some more inspiration, check this action out: http://odur.let.rug.nl/~maps/sophiedegraaf/blaeu.html

Anyway, mainly here to say thanks for the kind ToaSK review. Please check the ToaSK homepage and let me know if you disapprove of my, ah ... selective quoting. If so, I'll amend :)

James McNeill said...

Ha! Excellent elision.

Thanks for the great game!

I had a collection of images of those Dutch maps (and other old maps) at one point; I think they might have gotten lost in a computer crash and be in a backup somewhere. Thanks for the link.

Toledo is one of the few old cities I've visited, so it's what I think of as quintessential "fantasy city" architecture.

What I'd really like to get my hands on is maps of the really old Mesopotamian cities, like Uruk or Tyre or Babylon. I haven't had any luck coming up with a street map from that era, though.