Here’s the first road segment. The curve profile is varied with a shape key from concave to convex, controlled with a custom property. The width also has a custom property. It took some work to get the texture to not stretch when I scaled it wider but I got it sorted in the end. That’s not so obvious with this plain grey texture, but I was using a checker texture for testing. I also had some issues when I duplicated this segment, but got those sorted too.
I plan to add an intersection and some sidewalks. After that I’ll have to do some work on the textures. Due to the specific scaling requirements it’s a bit hard to use complex materials that other people have made, which usually use mapping nodes in various ways. I need to add a driver to the x-scale of the mapping node to get the texture to not change when the road gets wider.
I’m not really sure how far I can take this. I guess it will be a work in progress.