Development Update - September 2024
Added 2024-09-27 07:09:52 +0000 UTCTL;DR Nothing major has been released recently. I'm currently overhauling the road, district and building placement algorithms, which is taking some time.
Hey everyone, hope you're all doing well. Following on from the last update, I'm still working on the generation overhaul. This has been a slow process for a couple of reasons:
This is a big change. The road, district, and building placement algorithms are sigificant parts of the code base, so rewriting them is complicated.
There is a lot of trial and error - for the update to the road network generation, I've come up with about 3 different algorithms before settling on what I have now - there was no obvious best way of doing things - each of these needed to be coded, debugged, and tweaked before deciding that they weren't suitable.
I've been busy - generally for these big changes I only have time on the weekend to make good progress, and over the last couple of months many of these have been taken up for various reasons.
Rest assured, I am still working on this project. I'm active on the discord if you have any questions or need any help.
With that out of the way, lets dive into what I have been working on.
Road Generation
If you hadn't noticed, most of the settlements in FTG look similar (in terms of the road layout). They always originate from a 4 way crossroad, which then blooms outward in a vaguely circular shape.

There are outliers (especially when there are external factors, like coasts / rivers), but generally this is what most settlements look like.
The way this algorithm works is that as road segments are placed, they propose new ones from their end - this is usually just 'continue straight ahead' and 'branch left and right at right angles'. The algorithm has a queue proposed roads, places them one by one (following some validity checks) and then adds the new proposed roads to the queue.
There are two phases to this algorithm. The first phase generates the dense inner settlement, and the second generates the outer buildings.
As I mentioned in the previous post, I have some other issues with the current road algorithm:
The lots created are usually quite small, so if I have a larger building to place (like temples, mansions), it can be difficult to find a spot to place them, which slows down the overall algorithm.
The two phases have the same road network characteristics, so they end up looking similar (other than how the buildings are placed).
So, the main thing that I've been working on is trying to improve this algorithm.
Road Generation V2
After a lot of trial and error, I've come up with a new algorithm that at it's core is similar to the previous algorithm, but ends up creating much larger lots. These larger lots are then given to the districts, which can then add their own personality to the lot, and split it up into the desired size. The new road network algorithm is also a lot more customisable, so you have more control of what the settlement will look like.
Here are some screenshots of what can be generated (this is still a work in progress, so things will change):


So far I have mostly been focusing on the road placement - don't look at the building placement too closely, that's one of the things I'll be working on in the future.
This is a list of notable features I've added to the road generation:
Configurable initial road layout - e.g. 3/4/5 way crossroad
Multiple phases of generation, each configurable with:
If they should end in a wall
How wiggly the road should be
The branching strategy of the roads
How buildings should be placed
I think that's all I'm ready to share at this point, but I'm likely to keep making tweaks in this area (e.g. I'd like to reduce the number of sharp points in some cases).
What else do I need to work on before this will be released?
Heres a quick list of all the things I'm currently aware of:
Better district and building placement that feels more real
More landmark placements
Suburb road generation
Update district re-rolling to work with the new algorithm
Less empty space
Testing
Performance optimisation
Once again, this list will likely gow as I discover more things.
Conclusion
Thank you all for your patience, and as always thank you so much for your support! I can't provide any estimate for when this will be done, it'll be ready when it's ready. If you have any feedback or questions, let me know!
Comments
a potential idea is that you could have people visibly walking from build to building even just like a dot that you can click on to show their name would make it feel more alive
Alexander Briggs
2025-01-14 22:56:35 +0000 UTCI've added districts in the export to the to-do list!
Thomas Allerton
2025-01-12 08:10:17 +0000 UTCHey, absolutely love your program, but I was wondering, I am using the geojson download option for my worldbuilding project and noticed the districts weren't included in the output, and was wondering if there was any way you would be able to include that data? I would absolutely appreciate it, but do understand if it's not possible right now. Can't wait to see the next update though, those new towns look amazing!
DarkEspeon
2025-01-12 06:18:35 +0000 UTC