Development Update - January 2025
Added 2025-01-29 08:31:50 +0000 UTCHey everyone, I hope you're all doing well! First of all, I want to thank you for your patience - it's been a while since I've posted an update on Patreon (I'm more active on discord if you have questions or feedback). Just because I haven't posted, doesn't mean I haven't been busy. I'm happy to announce that the generation overhaul that I talked about in the last update is finally done, and has been released!
The main features of this update are:
Suburb road generation & building placement
This allows buildings to be placed without roads around them
Notably, this changes how hamlets & villages are generated
New building placement option - "gaps"
Like the dense building option, but shrinks the area so buildings aren't touching
This is now the default for areas outside of the settlement center
District overhaul
Districts have more control on how to decorate / layout buildings
The distribution of buildings in districts is now better
Ruler
New map tool to measure the distance between two points
Road customization in create settlement form
Change things like how bendy the roads are, and how long each segment is.
Arced district text rendering
User guide
There is a new user guide available at https://docs.fantasytowngenerator.com/
And some misc update notes:
New wall types, default changed to stone walls
Fix bug with map scale
Generation is ~10% faster
If two oceans are drawn to form an island in the initial settings, this no longer breaks
I built an internal debug tool for myself
Use more web workers for the building render step for hopefully faster loading
Scalable wall towers
Walls now split across rivers
Some new buildings
Putting that all together, you can now get settlements that look like:
City with a river:

Small town:
Big city (with stone wall):

Big city (American preset)
Inner ringed city:

In my opinion, these settlements look much better than what you could generate previously. The suburbs add a nice organic feel, and the settlements also now tend to grow along the main roads, giving them much more interesting shapes than the vaugely circular ones that were created before.
The generation algorithm
As mentioned in the previous posts (June, September), I wasn't happy with the districts and the road generation algorith. Specifically, districts had very uniform size lots across the entirety of the settlement, and the small lot sizes made it difficult to place large buildings.
The old algorithm created small lots first, placed buildings, and then merged lots together to create the districts.
The new algorithm creates large district lots, places landmark buildings, then divides the large lot into smaller ones, and places the remaining buildings for the district. You can find more information on the new algorithm in the user guide.
One of the main benefits of the new algorithm is the larger lots, which make it easier to place large buildings, and it also allows districts to place roads according to their preferences in these lots. This currently isn't done for many districts, but it's something I'd like to expand in the future.
For example, there are now many more ways to place markets than there were before.
The other main addition to the new algorithm is the suburb generator, which gives the settlement a much more organic feel than they did before, with the entire settlement surrounded by roads. This is one aspect of generation that I have wanted to improve since I first started, so I'm very happy that this is done.
There are also a whole bunch more customisation options for the districts and roads, you can find more information in the create settlements section in the user guide.
What's next?
This was a big change. Almost 800 files, and 70000 lines of code went into this (and thats only the final number, not including all the back and forth I did to tweak settings until they felt right) - almost all aspects of the map generation were updated, and needed to be properly tested. Because of this, I want to take a break from major changes for a bit, and tackle some of the smaller feature requests that have accumulated.
There are also some smaller tweaks that I want to make to improve and polish these changes - for example:
Improved castle districts - fill them with more things.
Improved park districts, paths and other small features.
Improved forests, adding trails etc.
Marinas for waterfront districts
Graveyards next to some temples
Wall alternatives, like moats / bypasses
More options for building placement in district re-roll
Option to re-roll farmland from the layout editor.
Link to the docs in relevant places
and so on...
Longer term
Last year I was looking at height integration and generation, and at some point I'd like to get back to that. Figuring out how to display it in the 3D mode is easy enough, but I'm not entirely sure how to display it on the 2D map. Also, fitting it in to the road network algorithm will be ...interesting... to say the least.
Another bigger feature I want to take a look at is climate and other natural landscape generation, e.g. moutains.
Conclusion
As always, I want to thank you all for all of your support - without you guys, I wouldn't have been able to keep going with this as long as I have.
What do you guys think of the changes? What districts do you want to see supported, or are there any decorations you'd like to be added? Please reach out, I always like getting feedback, either here or on the discord.
Comments
What are you trying to update? One problem at the moment would be that the building JSON export format is quite different to the building edit request format, and I don't really want to maintain that as an API as uploading that many buildings, determining what's different, and validating it will be tricky.
Thomas Allerton
2025-03-06 00:34:31 +0000 UTCIs there any possibility of an option to export the data for a city, edit it as plaintext json and then upload it to update the city? The use case here is really trying to bulk update specific buildings
Dylan Kennedy
2025-03-05 20:54:18 +0000 UTCWould love to see some Roll20 integration if that's possible. I know it's not as friendly to widgets as Forge.
Trevor Woodcook
2025-02-26 21:39:03 +0000 UTCWhat do you want to use tokens for? There is a feature to highlight the building that players are currently at. Using tokens in foundry will be tricky, as I'm not sure there is a good way to render the map behind the usual token layer, but still be interactive.
Thomas Allerton
2025-02-02 20:19:03 +0000 UTCI'd really like to see more work on the VTT integration. It's a beautiful map generator and it works quite well as a map within VTT, but it still relies on that external renderer which means you cannot use tokens on the maps.
Zips
2025-02-02 19:53:49 +0000 UTCWhat do you mean by edit custom populations? You can control the appearance of each race if you want, it's in race settings (in both the create settlement form, and the settlement specific settings)
Thomas Allerton
2025-01-30 07:26:56 +0000 UTCincredible work, perhaps tweaks to the character editing so we can edit custom populations (the same formula as the others,) and different character features and appearance options. optional changes to the religion, and having female characters with no growing beard, I mentally imagine all the ladies shaving their beards. That works for dwarves but it's odd outside of the dwarves, dragonborn and other custom races
Gabriella Galvez
2025-01-30 05:27:25 +0000 UTCImpressive work. Well done. Thanks for all the effort you put in this very useful tool.
Shotglass
2025-01-29 14:15:09 +0000 UTCLoving it. My one request (and maybe I'm just missing how to do this) would be to be able to search for residents using more fields. E.g. if I want to find where any blacksmith is or based on their demographics.
Peter Hawkins
2025-01-29 09:40:22 +0000 UTCSuper excited about the update! My party just entered a new land so it couldn’t have come at a more perfect time
Caden
2025-01-29 09:31:51 +0000 UTCCan't wait to dive in and have a play
Chris Wilson
2025-01-29 08:50:55 +0000 UTC