View Full Version : Detchersville

07-01-2009, 04:25 PM
Here's a little something I put together after reading torstans tutorial on making cities using Gimp's mosaic filter. I tried a few different ways of making the houses follow the streets more or less, and did come up with something pretty simple in the end, so might write a tute on that if there's any interest at all.

The surroundings aren't that interesting here, I'm mostly after comments on the buildings.

07-01-2009, 05:20 PM
The areas where you have so much space in the center of a ring of houses seem odd. I mean, essentially every city or town or village has some kind of restriction on how far it expands outward. In a fantasy world, one might think of marauding orcish war-bands and various bandits as an excellent reason to keep your community together. Outlying settlements are hard to defend, and the larger your town is the more vulnerabilities you have. The larger your town, the more difficult it is to transport goods and so forth.

What I'm trying to get at here is that I don't think there's a particularly compelling reason why you'd have so much empty space there. If the town doesn't need to have buildings there then I'd think the town would be smaller.

07-01-2009, 11:39 PM
Agreed. I was remembering something from Zombie Nirvana, like http://picasaweb.google.com/butch.curry/Maps#5145772642617837394, and I guess I went overboard with the white space. :)

I'll give it another shot with larger houses, I think - the idea for this layout would be that every house has a backyard, picket fences and such, you know? ;)

07-02-2009, 08:29 AM
New attempt - a different technique, but I'm beginning to like the results.

Should have placed the lakes according to the bump map before I drew the roads, tho... Live and learn ;)

07-05-2009, 04:13 PM
heh... and so, the software developer in me took over. I've managed to get python-fu working in gimp under windows, and started coding. Until now, I have a plugin that'll get me from the attached black and white map of streets to the other image with a single click.

I think for a town, it makes sense to have the houses some ways apart, as opposed to a city.

I'll be adding shadows to the houses, and probably try to code some trees as well... The background, I think, is best left to the map-maker, though it would be easy to make a simple clouds with agreeable colouring and a clouds bump map. Any takers? ;)

07-06-2009, 12:12 PM
Hey Alfar-

A couple reference threads on using filters and such to make streets/buildings (in case you haven't seen them):

Eneini: a medieval city tutorial (in Photoshop) (http://www.cartographersguild.com/showthread.php?t=530)
Techniques for street generation in cities (http://www.cartographersguild.com/showthread.php?t=510)
Reload this Page Best way to make zillions of little buildings? (http://www.cartographersguild.com/showthread.php?t=3358)

-Rob A>

07-06-2009, 01:56 PM
Hey Rob

yeah, that's all well and good, but they're mostly for cities. I'm trying to make towns.

Does anyone have an opinion about where it's more likely for streets to be built - highs or lows? Neither?

I'm trying to find a way to make my houses more rectangular. Pondering having a collection of building brushes and trying them out at random for each area I want to have a building in - slightly miffed that there's no simple way to rotate a brush, though. Ah well.

Another way I've been thinking it to draw a path inside each area, and then stroke them all. Not sure how well that'll work, but worth a shot, I guess.

Map Vandal
07-06-2009, 02:57 PM
Does anyone have an opinion about where it's more likely for streets to be built - highs or lows? Neither?

Lows. That way stormwater flows off properties and into the streets and possibly gutters.

07-06-2009, 03:38 PM
Thanks, Map Vandal - that does make sense. So a street is kindof like a river ;)

07-06-2009, 04:30 PM
If a village, it is unlikely to have many roads - possibly just one, the one "through" town that it built up upon. If it is at a crossroads, than two!

There will be many "paths" however, often straight lines (accounting for terrain and obstacle) between common places, i.e. the well/water supply (possibly a village square), the market, the place of worship, etc. and between neighbours.

Also, regarding building shapes, I'll throw you a couple more links specific to gimp you may wish to look over:
How to make a rotating brush (http://www.cartographersguild.com/showthread.php?p=9206)
Creating brushes for gimp (http://www.cartographersguild.com/showthread.php?t=3349)
Gimp brush for drawing buildings (http://www.cartographersguild.com/showthread.php?t=545)

-Rob A>

07-06-2009, 08:47 PM
Does anyone have an opinion about where it's more likely for streets to be built - highs or lows? Neither?

It depends on why your town is there in the first place (which has a significant impact on the type of land on which the town is built). Many classic towns were built on hilltops or ridgelines to be more defensible. In that case the streets are built going into the hilltop fortification or along the ridgeline. If the town exists at a ford then the road is likely to cross the waterway at rougly right angles. A town at the intersection of two major roads is likely to form a grid-type section of roads around the intersection. A linear town built on a road paralleling a waterway will have the road neither higher nor lower than the buildings.

07-07-2009, 12:17 AM
Ok, so maybe not village. Town, rather. Your Gimp brush for drawing buildings looks like it makes the kind of towns I was thinking; with the road lining. The other stuff made with the mosaic filter made blocks of houses.

Thanks for the help so far, guys.

Rob A, I'm trying to think of a way to put one brush in each part of a disjoint selection - any ideas on how to accomplish this?

07-09-2009, 04:13 PM
I haven't given up on this yet... now working on making a path from the selection and using the strokes to figure out where houses should go. Hm...

Anyway, here's an example of my script's output. I clouded a background into it, the rest is scripted.

07-09-2009, 04:50 PM
Don't take this wrong but those houses look like rocks and this could make for a cool-looking henge.

07-10-2009, 03:39 AM
Aye... one of my colleages thought I was setting up a camp with tents. Ah well. Building shapes is one of the things I'm trying to improve.

Another thing I'm fiddling with is adding trees.

Here's a bunch of trees I've made that I think are pretty nice, and it should be possible to script pretty easily. I also included a transparent version without shadows, for easy snagging.

I know they don't fit the rest of what I generate size-wise, I was just playing around for now.

Steel General
07-10-2009, 07:35 AM
The tree shapes are nice, but I think you might need to adjust the color a bit.

To me they are a bit over-saturated, almost neon.

07-10-2009, 07:39 AM
I was trying for something like the ones in this map (http://www.cartographersguild.com/showthread.php?t=5576&page=3) (post #27)

Maybe mine are a bit on the bright side. Easily amended, of course.

Steel General
07-10-2009, 07:45 AM
Don't feel obligated to change it just on my word alone, wait and see what others have to say. It might just be the monitor I'm looking at.

07-10-2009, 08:00 AM
Nah, sure - like I said, for the time being, it's just messing around. Maybe I can make a brush out of them, so one can just paint a forest... hmm.

I'm having some progress with making nicer houses, though. I'm now able to make rectangular selections at any angle.

Edit: Polygonal - T and L-shapes and such.

07-10-2009, 03:29 PM
More progress - I now have a script that made the selections for the houses in the attached image. That's a whole lot better than what I used to have, at least to my mind.

Now, I need to figure out how to avoid placing buildings on top of each other... hmm... May have to paint on a mask rather than work with the selection only. Ah well. Progress never the less.

Edit: Yay - Got rid of the overlapping!

07-13-2009, 01:42 PM
So when do we get the script?

-Rob A>

07-13-2009, 04:33 PM

yeah, I wanted to do a bunch of other stuff too. Got sidetracked trying to make a "Basin fill" function. It works to some degree (In that it does seem to fill some holes, not sure my algorithm matches the requirements), but is way too slow to be useful. It was interesting to work with the pixel stuff in python-fu, though.

My script does the following:
1) start at a pixel.
2) travel downhill (by red value) until there is no way to go down.
3) travel uphill in four directions until the next move would take you downhill.
4) fill all pixels you've visited in step 3 with the value of the lowest edge you found.
5) find the next unvisited pixel.
6) Start over until there are no unvisited pixels.

I'm sure there's a clever way to accomplish this. Eventually, I hope to make a river-placer out of it. Heh. C&C are welcome.

I have the house placing code on the other machine, will fix it up and post it shortly. Here's the basin fill script. Don't use it on anything larger than 200x200 unless you're a very patient person. I'm not one, so can't say if it'll actually work.

07-13-2009, 04:45 PM
And here is the house mask script. Like I said, I still want to add stuff to this, but since you asked, here's a first version. C&C welcome.

To use it, make a selection that you want houses around.

I draw my streets white on black, then select the black, invert, grow by 35 (because I know my houses have a max radius about 30 pixels), then Filter|Map tools|Create houses mask

It'll create a new layer of black with a layer mask that contains the houses, so when you hide the streets layer, you'll be able to see the house outlines.

From there, duplicate layer, mask to selection, shaped gradient black to white, use that layer as a bump map on a 50% gray layer, overlay that on a roof-colored duplicate of the houses, offset and blur the original houses layer for drop shadow.

Those steps are part of what will go into the script eventually.

07-13-2009, 05:58 PM
You can also feed that shaped gradient into my thatching script (http://www.cartographersguild.com/showthread.php?t=4293)to get some nice directional roofs.

-Rob A>

07-14-2009, 11:13 AM
Yeah, I was thinking about snagging some of that - since I actually have the precise angles of the houses, I'd be able to rotate the pattern specifically for each. Actually, that gave me an idea...

I already select each house separately, so I guess it wouldn't be too hard to select it without rotation, floating the selection and then rotating it and applying it to a new layer? That way, I could have a layer with different patterns in different areas, and the houses would then have the pattern from the area they exist in, but rotated to follow the shape of the house. Whoa ;)

Comments? Ideas? Anything?

07-15-2009, 03:55 PM
Here's the latest output. I've added options to the script so I can now choose whether or not to use a patterns layer, and then choose which layer to use for patterns.

That takes me from the first image to the second one, with a little manual work to bump map it and add road and background. Those can and will be scripted eventually.

07-16-2009, 03:53 AM
And yes, I realize that your thatching script is better, in that it rotates the thatches according to the direction of the slopes, where my current version just rotates to the direction the house points. I guess if I refined my building definitions, I could do directions, and maybe even make a better bump map than the directional gradient does - it messes up in the 90 degree angles (or rather, it does what it's supposed to do, not what I want it to)