BTW, this is a quick way to generate an higher resolution map on the site. Open the developer tools, remove the width from .note (it's the container of the column), inspect the map at the bottom and set the height and width of the canvas to suit your needs. Then click on the Generate button.
Maybe the page could be changed to extract that canvas from the column layout and make it fit the viewport.
Has that improved lately? I stopped reading it ages ago, when it was turning into /r/PhotosOfSplotchyWallpaper - lots and lots of low-effort pareidolia with no filtering (downvotes disabled IIRC).
Your post is really helpful. I recently tried to create procedural algorithms for medieval maps. I started with path-generation and circular city layouts.
This belongs to the class of teleological algorithms and is very cool! I appreciate the links to some of the source material the author learned from... and the interactive elements on the page are great. I'd like to do the same for my blog.
I like it. If we assume that schlock fiction is objectively worse in some measurable way, then that suggests it should be easier to generate than works of high literature. I bet with some concerted effort, it would be possible to build an algorithm which digests a bunch of generic fantasy books and produces a tale of an unlikely group of heroes questing for the $object to turn the tide of $conflict.
I have nothing super valuable to add except to say: this is totally awesome. Good for you for exploring this and sharing it with the world. I just emailed it to 3 non-techy friends who will totally love it.
This is truly fantastic, both the project and the interaction. If you want to continue with it, it seems there's so much more you could do, too: roads, forests, altering namelists for different regions...
If you want to lose a few weeks hacking away at something kind of fun, then turn around and try to implement the Fortune's Algorithm[1] Voronoi region/Delauney Triangulation method that underlies Amit's map generator.
Somewhere I have a WinForms app I built a while back that animates the process and draws everything out step by step.
This is actually what I did in my first internship -- generating Delaunay triangulations (or more often, tetrahedralizations) of points, and then adjusting the underlying sets of points to help ensure that the corresponding Voronoi cells have good properties (generally reasonable surface area to volume ratios).
We didn't use Fortune's for historical reasons (the first versions of the code were in Fortran 77, and written well before he published his paper). Instead we generated triangulations and then flipped edges until they were Delaunay, and then used the corresponding Voronoi diagram. It turns out that flipping edges to produce a nicer triangulation is reasonable in two dimensions, but intractable in 3D and up.
If you like making fiction maps by hand (but not fantasy maps) - have a look at this great mapping project: Open Geo Fiction: http://www.opengeofiction.net
From the about page: "This world is set in modern times, so it doesn't have orcs or elves, but rather power plants, motorways and housing projects. But also picturesque old towns, beautiful national parks and lonely beaches. "
It's essentially a fictional OpenStreetMap, and actually uses all the same stack as OSM, with all the data as Creative Commons Attribution-NonCommercial-ShareAlike
Reminds me of a bit in one of Neal Stephenson's books where a MMORPG company hired a team of geologists to generate a geologically plausible map for their game. The hardest part of their job was finding ways to integrate the parts of the world that had been made up without any regard geology and made no sense in their model.
A cool part was one of the engineers complaining when a powerful user cast a spell that deformed the landscape. The whole world was a huge finite element simulation so that one spell cause CPU usage to spike as whole world had to be updated.
The book was fun, sort of a thriller, but I felt Stephenson could have done more exploring the world of the MMO game. A rare complaint for him.
Cast in another light, it was standard Stephenson fare -- the first half of the book explores a topic deeply and interestingly, then the second half basically sets it aside to trail off into some weird no-man's land. Seveneves was particularly obvious version of this issue.
I thought Seveneves was more like two "first half of Stephenson novels" smushed together; I found myself wishing there was more exploration of the "second" world. I thought the cultural evolution stuff was super interesting.
That is super sweet. It looks sort of similar to how Dwarf Fortress generates its geographies.
You should look at how that game does it because it also involves creating a whole mythology and history to help generate civilizations and their fall/rise.
I found this entire post to be completely awesome, but laughed in particular with this line: "I have a programmer's superstitions about always using powers of 2, which are more pleasing to the spirit of the machine." Also, I share similar fond memories of those maps from cheap, grocery store fantasy books!
64 comments
[ 2.1 ms ] story [ 119 ms ] threadBTW, this is a quick way to generate an higher resolution map on the site. Open the developer tools, remove the width from .note (it's the container of the column), inspect the map at the bottom and set the height and width of the canvas to suit your needs. Then click on the Generate button.
Maybe the page could be changed to extract that canvas from the column layout and make it fit the viewport.
EDIT -
Oooo and it's MIT...
https://www.reddit.com/r/proceduralgeneration/
And don't get me started on the rivers...
Here is my try on paths generation: http://imgur.com/CUs6P4S
https://github.com/wlievens/scallywag
Nice work!
(And/or, this might make an interesting companion project.)
You might not need to pass the Turing test, but even getting the "Eye of Argon" out of something random would be pretty impressive.
Keep making, keep sharing!
Somewhere I have a WinForms app I built a while back that animates the process and draws everything out step by step.
[1] https://en.wikipedia.org/wiki/Fortune%27s_algorithm
We didn't use Fortune's for historical reasons (the first versions of the code were in Fortran 77, and written well before he published his paper). Instead we generated triangulations and then flipped edges until they were Delaunay, and then used the corresponding Voronoi diagram. It turns out that flipping edges to produce a nicer triangulation is reasonable in two dimensions, but intractable in 3D and up.
I made multiple tools for random world generation but never come close to this kind of quality. I'm impressed!
From the about page: "This world is set in modern times, so it doesn't have orcs or elves, but rather power plants, motorways and housing projects. But also picturesque old towns, beautiful national parks and lonely beaches. "
It's essentially a fictional OpenStreetMap, and actually uses all the same stack as OSM, with all the data as Creative Commons Attribution-NonCommercial-ShareAlike
Update: And there are so many like that --- incredibly detailed, ordered and organic!
A cool part was one of the engineers complaining when a powerful user cast a spell that deformed the landscape. The whole world was a huge finite element simulation so that one spell cause CPU usage to spike as whole world had to be updated.
The book was fun, sort of a thriller, but I felt Stephenson could have done more exploring the world of the MMO game. A rare complaint for him.
You should look at how that game does it because it also involves creating a whole mythology and history to help generate civilizations and their fall/rise.