There is no way to save a WIP village because you can't actually work on a village here, there are just no tools to edit anything. So for now the only option is to export a village (as PNG, SVG or JSON).
Didn't come here for a while. Glad you are still alive. You are an artist i truly admire. Do you know some other places where good canvas projects can be found ? I mean i already know CodePen but even there, finding projects as good as yours is really hard...
Thanks! I can't recommend anything specific, sorry. Sometimes you can encounter links to projects in the same vein on /r/proceduralgeneration. I'm less aware of other people in the field than I should be...
It would be great if you could generate x input of maps under the conditions set, and export in a zip. Would love a few hundred of these as my desktop, beautiful little villages transitioning. Great little app!
S toggles forest styles now, but if forests are switched off (as they are by default) you won't see the difference. Yeah, that sounds confusing, I'll change it in the next version.
The most relaxing site on the entire internet. Patreon does not let me sponsor you via paypal, but I would, if I could. I love the NAMES. Yesterday I fell in love with "Mist Side" Pop 190. THANK YOU!
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.
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...)
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.
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.
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?
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)?
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.
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) {
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).
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!!
← Return to generator
Comments
Log in with itch.io to leave a comment.
This is really great. Well done Watabou!
IS there a way to save WIP villages live here, or is there a downloadable version? (Very cool btw)
There is no way to save a WIP village because you can't actually work on a village here, there are just no tools to edit anything. So for now the only option is to export a village (as PNG, SVG or JSON).
Thanks a lot for this! It saves me so much time to be able to use this to make towns.
A small request: could you please make it so that we can have a coast and river on the same map?
Here's hoping you eventually get it worked up to the point of allowing large towns or even cities to be made with this. Best of luck.
I'll try to implement it in the next update.
Love your work! Thank you!
Could you please add an option for having walls around the village if you have a spare time in the future? Thank you
Didn't come here for a while. Glad you are still alive. You are an artist i truly admire. Do you know some other places where good canvas projects can be found ? I mean i already know CodePen but even there, finding projects as good as yours is really hard...
Peace
Thanks! I can't recommend anything specific, sorry. Sometimes you can encounter links to projects in the same vein on /r/proceduralgeneration. I'm less aware of other people in the field than I should be...
I freaking love this. So well done. Thank you for making this and making it free. You are awesome.
This is cute as hell. Well done! I'll be happily using this for inspiration one day.
This has evolved into something incredible. Nice dude your stuff is such a gift.
tank you
Holy shit.... kinda tempted to make a minecraft world with this now lol
HTML5? Goram it. I don't suppose you have a flash or js version or something I can use locally, do you?
Oh.. and this is amazing. :)
Why did you remove the large map option? Could you put it back?
Because large villages were ugly and slow to generate.
To me they were slow, but weren't ugly and I liked them. Could you add them back?
I'll put it back when I figure out how to make large villages less homogenous/more interesting. But it's not my top priority at this moment, sorry.
Okay, don't worry it's fine
It would be great if you could generate x input of maps under the conditions set, and export in a zip. Would love a few hundred of these as my desktop, beautiful little villages transitioning. Great little app!
Side note - of course mashing P -> ENTER works too, but a feature I think would be handy nonetheless :)
Love this so much!
I think after the update though, S no longer toggles visual style, but rather relief visualization. This goes for both E and S keys. Is this just me?
S toggles forest styles now, but if forests are switched off (as they are by default) you won't see the difference. Yeah, that sounds confusing, I'll change it in the next version.
favorite name. chicken wall
Small ask, but might there be a way to 2x the contextual menu? Text is tiny...
You are on retina, am I right? I'll try to fix it in the next update...
great generator, favorite town so far
The most relaxing site on the entire internet. Patreon does not let me sponsor you via paypal, but I would, if I could. I love the NAMES. Yesterday I fell in love with "Mist Side" Pop 190. THANK YOU!
I don't have anything particular to use this for, but I greatly enjoy playing with it!
I agree.
downloaded version?
Here is the original download - done before most of the recent changes.
A map of a generated village. The blank spots are for village info.
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.
How do I get that wonderful nighttime effect in the Kilwater example? Can't seem to get it to show up with S.
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...)
Thank you kindly. Excellent work on this, by the way! As always.
Watabu, you outdone yourself, again
need more to make
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.
My pleasure!
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?
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.
Quenten Walker
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?
Yes, please. You are just terrific.
export to svg?
will be added in the future
nice
This is pretty nice!
I would like it if it made hills and elevations as well.
generated something with only 1 building. so cuuute
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)?
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.
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
Also: Possible to get a PNG export with transparent background (without the ground) ?
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...
Is there a way to get a link with seed out of this, to replicate a village?
Or set parameters like population?
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).
Ah yes. Yes, similar to MFCG. Azgaar's uses those permalinks, for example.
I will do that on my next iteration with VG.
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!
Oh my god, watabou you amazing!)