Right click to open the context menu with all the options.

Hot keys:

  • ENTER - create a new village
  • Shift+ENTER - create a new village on the same terrain
  • Ctrl+ENTER - open the parameters window
  • P - export as PNG
  • J - export as JSON
  • S - toggle visual style
  • O - toggle title visibility
  • T - toggle trees visibility
  • E - toggle relief visualization

Made with Haxe + OpenFL.

You can use images created by the generator as you like: copy, modify, include in your commercial rpg adventures etc. Attribution is appreciated, but not required. Please consider supporting this project on Patreon☕!

Updated 12 days ago
StatusIn development
CategoryTool
PlatformsHTML5
Rating
(122)
Authorwatabou
Made withOpenFL
TagsCity Builder, Generator, Procedural Generation

Comments

Log in with itch.io to leave a comment.

Viewing most recent comments 1 to 40 of 53 · Next page · Last page

downloaded version?

(+2)

Here is the original download - done before most of the recent changes.

(+1)

A map of a generated village. The blank spots are for village info.

(+1)

Excellent tool.  Not only could this be useful for RPG games, I'm also going to be using the created villages to map out small towns/villages on my OpenGeoFiction mapping.  

(+1)

How do I get that wonderful nighttime effect in the Kilwater example? Can't seem to get it to show up with S.

(+2)

It's the "Vivid" style with a custom palette. Download the night palette (night.json) from this post and load it via the Palette window (right-click > Style > Palette...)

(+1)

Thank you kindly. Excellent work on this, by the way! As always.

(+2)

Watabu, you outdone yourself, again

need more to make

(1 edit) (+2)

Loving the palettes, trees and the island generator.  And the lights! POIs will be wonderful when they arrive too. Torn between this and perilous shores for my favourite... Thanks so much for these, they are such great places for my imagination to play.

(+1)

My pleasure!

(+1)

Very nice updates recently. Could you add a few larger buildings perhaps? Or maybe add generation settings to include "landmarks"?

How would you expect such landmarks to look?

(+2)

I dunno. Maybe things like lighthouses (concentric circles off-coast), statues (circle/free-form shape inset on a square), town halls (rectangle with protrusion), etc . Just something that stands out among the rectangular buildings that look the same.

(+1)

Quenten Walker

5:15 PM (0 minutes ago)
to Patreon

My main request is to get a SVG download of the Village generator, pretty please. Love your work more and more

It is still on my todo list. As I mentioned before, in my world (i.e. with Haxe+OpenFL) adding SVG export is a task to perform, it's not something that happens automatically (as it could be with native JavaScript+SVG). For this reason it will be implemented just for one of the styles. I guess you would expect it to be "Vivid", am I right?

(+2)

Yes, please. You are just terrific.

(+2)

export to svg?

(+1)

will be added in the future

(+1)

nice

(+1)

This is pretty nice!

(+2)

I would like it if it made hills and elevations as well. 

(+5)

generated something with only 1 building. so cuuute

(+2)

Huge fan of the generator! Love the idea of adding trees and the like (although I understand your resistance); would it be possible to add fields/farms the way the city generator does (with some association to population if possible)?

(+1)

There was a lengthy comment of mine about why I am reluctant to add fields, but I can't find it right now... Anyway, this idea is not off the table, maybe it will be implemented in the future.

(+1)

Your JSON isn't proper GeoJSON. Here's a PHP script to translate to GeoJSON:


<?php

/*
    when importing into QGIS, you want to simplify the linestring with a tolerance of about 0,00001 degrees
*/

if ($argc < 4 ) {
    exit( "Usage: place_village lat lon scale - with scale in s, m, l\n" );
}

$fp = fopen("php://stdin", "r") or die("cannot open stdin");
$lat = floatval($argv[1]);
$lon = floatval($argv[2]);

    // conversion:
    //   latitude = distance * 360 / (2*PI * 6400000)
    //   longitude = distance *360 * / (2*PI* cos(latitude) )
    switch ($argv[3]) {
        case 's':
        case 'm':
            $scale_lon = 0.5 * 360 / (2 * M_PI * 6400000); // for projection correction: ... 6400000 * cos($lat));
            $scale_lat = 0.5 * 360 / (2 * M_PI * 6400000);
            break;
        case 'l':
        default:
            exit("scale must be one of s, m, l - instead of '".$argv[3]."'\n");
    }

$input_data = file_get_contents("php://stdin");
$json = json_decode($input_data);

foreach ($json->features as &$feature) {
    if (isset($feature->coordinates)) foreach ($feature->coordinates as &$coordinate) {
        move_this($coordinate);
    }
    if (isset($feature->geometries)) foreach ($feature->geometries as &$geom) {
        if (isset($geom->coordinates)) foreach ($geom->coordinates as &$coordinate) {
            move_this($coordinate);
        }
    }
}

function move_this(&$coordinate) {
    if (is_array($coordinate[0])) {
        foreach ($coordinate as &$c) {
            move_this($c);
        }
    } else {
        global $lat, $lon, $scale_lat, $scale_lon;
        $coordinate[0] = floatval($coordinate[0]) * $scale_lon + $lon;
//        $coordinate[1] = -1 * floatval($coordinate[1]) + $y; // old pre-json-export files needed Y flipped
        $coordinate[1] = floatval($coordinate[1]) * $scale_lat + $lat;
    }
}

// now convert to GeoJSON
$new_features = array();
foreach ($json->features as &$feature) {

    if (isset($feature->coordinates) && $feature->id != "earth") {
        // buildings
        $coords = close_rings($feature->coordinates);
        $new_features[] = array("type"=>"Feature", "properties"=>array("id"=>$feature->id), "geometry"=>array("type"=>$feature->type, "coordinates"=>$coords));
    }

    if (isset($feature->geometries)) {
        // roads
        $coords = [];
        foreach ($feature->geometries as $geom) {
            $coords[] = $geom->coordinates;
        }
        // "type" is the GQIS road type string - here "local" for local roads
        $new_features[] = array("type"=>"Feature", "properties"=>array("id"=>$feature->id, "type"=>"local"), "geometry"=>array("type"=>"MultiLineString", "coordinates"=>$coords));
    }
}
$new_json = array("type"=>"FeatureCollection", "features"=>$new_features);

function close_rings($coordinates) {
    if (is_array($coordinates[0][0])) {
        $all = [];
        foreach ($coordinates as $c) {
            $all[] = close_rings($c);
        }
        return $all;
    } else {
        $coordinates[] = $coordinates[0];
    }
    return $coordinates;
}

echo json_encode($new_json, JSON_PRETTY_PRINT);

?>

It is not: https://www.patreon.com/posts/37407181

(+1)

Also: Possible to get a PNG export with transparent background (without the ground) ?

(+1)

It's a bit harder than it may seem, because I draw land over water, not the other way around. I'll think what I can do about it...

(+2)

Is there a way to get a link with seed out of this, to replicate a village?

Or set parameters like population?

(+1)

I can implement getting/setting a seed via UI, but that's probably not what you need? To add permalinks I would need to set up a non-itch version (similar to MFCG).

(+1)

Ah yes. Yes, similar to MFCG. Azgaar's uses those permalinks, for example.

(+1)

I will do that on my next iteration with VG.

(1 edit) (+5)

man i don’t know how to contact you other way but i just wanting to say this things you make for medieval is so amazing programs thank you so much to take so much time and effort to bring us these things... i will donate to you patreon i promise just i waiting to have some spare money :( i promise i will donate you because you work hard on this by obvious and u really love it a lot thank you please keep making more things like this!!

Cheers!

(+3)

Oh my god, watabou you amazing!)

(1 edit) (+5)

This is such a great app, I think I might like it almost as much as MFCG.  Thank you for all you do!  If you're taking suggestions for additions I would really love to be able to ask for a specific number of buildings.  I realise it may be an emerging property but it would be SO useful when trying to build fantasy settlements to suit population sizes.  Then I just need to add the right number of the right kind of businesses. :-)

(+2)

Could it even tell just us how many buildings there are?  That would be a big help!

(+2)

Yeah, that's exactly an emerging property, but adding the resulting number of buildings somewhere is not a problem👍

(+1)

That would be amazing! Thanks again watabou! I really love the layouts this generates.  Mixing the sizing paramaters produces so may different settlement sizes, it's fantastic.  In particular, a large map with a high population density produces some amazing looking towns and small cities perfect for world building and map making.

(+2)

Is it possible to download this? That would be incredible!

For now it's a web-only application, sorry. You can try some tools which download all the files to run them locally.

(+1)

Alright, that's okay. This page is awesome though! I am using the maps to make the towns more realistic in my 3D RPG game.

(+2)

I love the contours, river and coast - much more realistic then in MFCG. Any chance of doing the same for MCFG? (my favourite generator)

(+1)

I am going to try, but it's not only about style, but also about underlying data - these generators use very different models. So most likely it won't be possible get identical images.

(+2)

Another suggestion looking at these vs the excellent "Village Book 1" maps: add round and polygon buildings to the generator.

Polygon buildings like "complex" ones in MFCG? Can't imagine what round village buildings could be :)

Iron age buildings, eg Celtic britain; even native American, Mongol, Inuit

(1 edit) (+1)(-1)

Like MFCG, this would benefit from the option for both coast and river at the same time: the place where the river meets the sea. 

(+1)

Fantastic! I think it is even better than MFCG!

The compass and scale feature from MFCG would be useful.

You could think to add a small watermark in the corner with you signature or seal as an optional feature.

(+1)

Cheers!

There will be a scale and a simplified compass (probably just an arrow).

(+3)

This is awesome, have you thought about making a unity plugin?

Not my thing :)

Nothing wrong with that! Keep up the nice work.

(+2)

is there an option to export it to svg?

Not yet, but there will be in the future.

(1 edit) (+1)

I second the desire for svg

I'm going to add it in the next update, but I think it will export in "Minimalist" style only, not in fancier ones.

(+2)

Would be cool if you can rename the Villages :)

(+2)

Do you have plans to release the source? Would be cool to use this in a game

(+1)

I'll consider it when I'm done with project. Probably soon, but not yet.

(1 edit) (+1)

Would you be able to make the Main road able to be switched to a Railroad? It'd make the maps look a lot more "Wild Western" with the hand-drawn style.

(+2)

I can implement it as another style. But to make it work there should be something like a station - nobody builds houses along tracks in a place where trains don't stop :) 

(+1)

Does the terrain restrict the population range? I saw a terrain I wanted but the village was too small so I hit Shift-Enter (repeatedly) ... and the population stayed too small.

(+1)

The "terrain" here includes the main road and the "potentially populated area". If they don't overlap enough, the chance of  spawning a large settlement is low.

(+1)

Is there a chance for the village to be located at the intersection of two or three main roads .. seems all the ones I see are plonked on an existing main road only. Intersections are important places.

(+2)

In the current version villages always have one main road running through them. This may change in the future.

(+1)

Could you add generator options such as population and booleans for river and coast?  That way I can quickly generate to meet a specific need (e.g. village of 320 pop, has a river, does not have a coast).

(+2)

Adding "river" and "coast" as options is easy and it will be implemented soon. Population is trickier since it's an emerging characteristic, not something explicitly chosen.

(+2)

There should sometimes be a place where the river meets the sea.

(+2)

Yes, such layout will be added in the future.

(+1)(-1)

Will you add more styles like with the medival city generator?

(+1)

Do you mean more palettes? I probably will, it's not much work...

Can you add this style to your city generator?

(+1)

Any chance you could update the repository for the Medieval Fantasy City Generator with the changes that are on the website? it's been a while since it was updated, also can you create a repository on GitHub for this Village Generator? Would be nice to have the code there.

A quote:

Sorry, I don't publish source code of my unfinished projects. TownGeneratorOS is there because at that moment I thought I was done with the generator.

It's about pressure of update requests, pull requests and a general burden of supporting an open source project.

(+1)

This is amazing

(+1)

How about regen town, with the water present?  so you can get a more populated town with the same river or less populated..

(+1)

Actually, something like that is already implemented: press Shift+ENTER to regenerate a village on the same terrain and with the same highway.

(+2)

It will be great, if you add this command in description))

(+1)

I really like it! If future updates are planned, it would be cool to be able to choose the village's population ourselves, I like how the population is proportionate to the number of houses, which is a problem I ran into with the Fantasy City Generator's integration with Azgaar's Fantasy Map Generator. It would also be cool if some features from the city generator were included in this one, like walls and markets and larger population sizes.

(+1)

For walls, markets and larger population sizes, just use Medieval fantasy City generator

(+1)

Well, it's a village generator, so I don't think it will work with larger settlements. Currently I'm planning to add port/dock areas and town squares (which can be treated as markets), but not walls.

(+1)

Awesome! Maybe the option for towns that formed around a crossroads?

Viewing most recent comments 1 to 40 of 53 · Next page · Last page