XaiJu
fantasytowngenerator
fantasytowngenerator

patreon


Development Update - June 2023

Hey, hope you're all doing well! Over the last couple of months, I've been working on what I've been calling a 'District Overhaul' - but has also resulted in a lot of other minor changes. The new features are:

So lets break those down.

New district algorithms

In my previous algorithm, buildings were grouped together into potential districts based on the lifestyle of the building (e.g. lower / upper class. At this point, the road network is generated. Next, a district would claim a lot and then place as many buildings as it can inside the lot. If it had remaining buildings, it would try claim an adjacent lot, and if there were no adjacent lots, a new district of that type would be started somewhere else. This would repeat for all districts until all buildings were placed.

This worked well enough in terms of rendering a name of a district and giving it an area on the map, but it had some downsides.

I've now broken down districts into what I'm calling an overall district (e.g. based on lifestyle, or a major industry), and sub-districts (e.g. a type of industry, like clothing / metalwork). An overall district will have multiple sub-districts, and the overall district is what you see rendered on the map.

This results in districts with buildings that are much better grouped on the map, replicating industry clumping together as it's more economical. It also allows districts to have a better defined definition + identity that can be summarized and displayed.

In terms of the algorithm, the gist is basically the same - buildings group together (now based on lifestyle and the building's preferred sub-district), and then a parent district tries to place its sub-districts in order. There is another key difference - before, when there was empty space, it would just be left empty. Now, I use the district information (sub-district + lifestyle) to randomly pick buildings to fill in the space.

Before:

After:

Better district names

Using the new sub-district information, I now have a wider pool of name parts available to create district names. I also improved the landmark detection to improve names based on physical parts of the district. Also, I've tried to implement a district name changing over time, becoming a sort of shorthand for the original name. For example, a district originally called 'Hamlet Tower' (a residentially area next to a wall with a tower), could become 'Hamower'.

More visually distinct districts

I've added a lot more decoration options in addition to trees - fountains / wells / fires / etc. I've also added more roof materials - like red tile / blue tile. Districts can now be individually configured to place different decorations down, and have specific materials.

By default, I've made squalid districts render like tents, poor districts to be super dense, and wealthy districts to have more trees and other decorations.

A squalid district:

A wealthy district:

District settings in the create settlement form

I've added all this district decoration config, and more, in the create settlement form, so you can tweak exactly how your district should look after generation.

All of the decorations etc can of course be edited after the fact as well.

Expose district information

With this new information, I can now display a nice summary when you click on a district. I've also added a demographic display for each district.

Multiple walls

There is now a setting to control how many walls are placed during generation, and when:

Re-roll districts

This is the big one - that a lot of people have asked for. Using the new sub-districts, and a similar algorithm to the one implemented to fill empty space, you can now re-roll large areas of the map. This will delete any existing buildings + decoration, and create an entirely new district filled with buildings + new people. These are the available settings:

As suggested by the form - to access these settings, create a new district and enable the re-roll district toggle. You can control the overall lifestyle, as well as the types of buildings to be generated. You also have access to all the decoration options, as well control over how dense the buildings should be.

This makes it easy to transform an area from this:

into this:

Dark mode

Also in the last month, I've added a dark mode. You can enable it by going to your list of settlements, 'Settings' => 'Themes' => 'Dark mode'.

Final thoughts

Once again, thank you all for all your support. Without you, this wouldn't have been possible. As always, let me know what you think - any feedback is appreciated!

Development Update - June 2023

Comments

Amazing tool!, Would be great to have options for Pathfinder 2E, specifically preset item prices etc.

William Matthews

Thanks! That's a cool idea - I'll make a note of it! It might be tricky to do with the way things work at the moment, as the factions are generated before buildings are placed, so getting things to make sense on the map would need some thought

Thomas Allerton

Just supported! This is excellent, is there any possibility of having something similar to districts for organizations? Thinking specifically of having them locate in an area, show boundaries for various groups (turf for thieves guilds for example). This is the best thing I have found for DnD in at least 6 years, thank you for putting so much time in!

IronWithinIronWithout


More Creators