> I think roads lie at the heart of every city builder. It’s the fabric on which cities are built.
To paraphrase the article, this is what urban planners have nightmares about. Roads (as in: things made for cars) aren't the fabric of a city, streets (as in: things made not only for cars, but also for pedestrians, cyclists, public transport etc.) are. See also: https://en.wikipedia.org/wiki/Stroad
I had never considered there is a difference between the two words, but Wikipedia backs it up:
> The word street is still sometimes used informally as a synonym for road, but city residents and urban planners draw a significant modern distinction: a road's main function is transportation, while streets facilitate public interaction.
Even with this clarification, though, I think you unfairly characterise the quote from the article. Modern society has an insane demand for transportation. Roads – the medium on which we transport things – are the fabric on which cities are built. Not just inside the cities, but the vast network of roads outside the city, that feed it.
Before the 1900s, we weren't able to build cities far from water because of their demand for transportation. We can today, and it is only because of roads we are able to do that.
I think American society is very much road-focussed, having lived there for a couple of decades. I think UK (and European in general) society is very much street-focussed.
A lot of that comes down to geography - the UK is a high-density population compared to the USA but the impact on our lives is significant. In the US, I would drive everywhere. Literally everywhere - to the shops, to the library, to the beach, everywhere. Yesterday I took my son to his archery practice, we walked along the coast road for about 20 minutes, and picked up a "Mr Whippy" 99er ice-cream (yes, even in the cold weather) along the walk back. It was pleasant, and healthier.
This may be true, but I think the points made in the comment you are responding to are nevertheless true for UK and European cities as well. Roads have been a fundamental part of the development of modern towns and cities throughout the Western world.
USA cities are low density because they are road–focused
The United States emerged during a period of abundant frontier land, which normalized the idea that ordinary people could own large, independent plots. This contrasted sharply with Europe’s older, land-constrained settlement patterns. That early culture of space and ownership later interacted with industrialization, the automobile, and government policy to produce the low-density development that characterizes much of the U.S. today.
Another interesting fact about plot sizes in Europe: You can see within an area which kind of inheritance law was in place: If farming plots are large, usually the oldest son inherited everything. If they are small, they were evenly distributed.
Source: https://www.sciencedirect.com/science/article/pii/S026483772...
When you go into the Northeast, a lot of narrower roads were planned for slow-moving horse-drawn carts.
Exactly go Worcester, Providence and Boston and be in awe at how fucking horrendous the maze is.
Boston is only horrendous in a car. Walking around and taking public transit in Boston is very nice. OTOH Providence feels like it's designed for cars, much easier to drive there but always need the car around and their highways and roads are terrible. There's a ton of highway to split the city. Worcester is less highway constricted but still definitely need a car to get around and I still can't figure my way around.
The vast, _vast_ majority of such infrastructure was turn down in the 60s to make way for the almighty automobile.
The number of places in the north american continent that retain their street focused infrastructure is pretty much countable on one hand, and most of that is being terribly managed.
Horse-drawn carts are not any narrower than cars are, and many place (e.g., the Marina District of San Francisco) designed in the horse era have very wide streets.
Pretty much any car that's bigger than a subcompact is wider than a horse drawn cart.
Yeah, maybe I'm overly pedantic, but the author is also overly pedantic about the curvatures of streets/roads in games, so... :)
But, to continue with the pedantry: the Romans already built cities far from (navigable) water. There have been roads since antiquity, then since the mid 19th century it was first the railways that made it easy to transport passengers and goods over large distances. The current version of roads being the main/only form of transportation only came about in the 1950s.
Slight correction: It was the 1830s when the railroad arrived that we started to be able to build cities far from navigable water. (navigable is important - if your water can only support small boats your city will be smaller than if it can support large ships). Trucks in the 1900s allow the same thing, and have enough advantages that we would use them for smaller cities, but large cities are still going to get rail transportation. And water transport is still powerful enough that the largest cities still likely need it even though it isn't a strict requirement.
>Modern society has an insane demand for transportation. Roads – the medium on which we transport things
Why do you say it like roads are the only option? Its even far from the most effective option. You mean rails?
Railroads are roads.
Only by name.
rail-roads
is in the name mon ami
Not in other languages. In German, for example, it would very weird to think of railroads (Bahn/Eisenbahn/Bahnstrecke) as roads (Straßen). Would you also claim that a hedgehog is a pig?
But autobahn is a road, no?
> Before the 1900s, we weren't able to build cities far from water because of their demand for transportation.
Incorrect.
In the 1800s the train took off as a primary form of transportation. By 1869, we'd completed the first intercontinental railway in the US which ultimately opened up the economy between the east and west.
Sears flourished as a company because of the train.
It wasn't roads which ultimately opened up mass transport, it was rail. It wasn't until the 1950s that rail was ultimately de-prioritized and roads were prioritized.
I hope the water comes to the city through a pipe and not with trucks on roads.
I believe they have referred to the transportation possibilities the water allows rather than the possibility to transport water (which was possible at scale way earlier)
We finally have water–powered cars?
Roads are important for a good transportation infrastructure. However, cities in north america are overreliant on them. In European cities public transit is also important and in my opinion even more important than roads. Cars are not useful in cities compared to public transit / bikes / walking if the city is designed for humans and not cars. ( and yes, you still need roads for delivery and people who sometimes have to transport heavy things).
There is a lot more than people to move around a city. Transit is more visible and yes europe does well there - but freight is less visible and europe isn't doing as well there.
> Modern society has an insane demand for transportation. Roads – the medium on which we transport things – are the fabric on which cities are built. Not just inside the cities, but the vast network of roads outside the city, that feed it.
This is a very American point of view IMO.
Cities are built on streets first and foremost. Otherwise you end up with strip malls separated by endless swaths of car parks.
As for transportation, we have to separate cargo from people, and inner city from inter-city.
For people inside the city you have multi-modal transport options. Walking, biking, busses, trams, subways, commuter trains, taxis, individual cars, ferries.
For intercity people you have trains, planes, boats, busses, individual cars.
Most inner city cargo can be handled by smaller trucks going from warehouses to specific places in the city. And for smaller cargo like mail I've even seen small scooters and cargo bikes.
For inter-city you once again have multi-modal transport (depending on the city). Trucks, rail, cargo planes, boats.
Even the US was built on railways, not on roads. Roads are the "backbone of cities" only if you make them one, as the US has done
The same insights still hold true for streets and paths. Of course a single human or even bicycle can move with fewer constraints than a car, but a stream of humans won't. When we design pedestrian infrastructure with sharp corners people either cut through on the inside, creating desire paths on unpaved surface, or the inside section that lies on the paved path but outside the circle-section-path becomes a low-traffic zone, a place where people sit down or put up food carts or whatever
In remembering that cities are not roads alone, but also streets, paths and tracks, there is a lot of potential for this approach to building all of them
Yep, good point. I am myself a huge fan of livable oriented infrastructure (bike lanes, pedestrian paths, public transportation) but the hard truth is that roads were initially designed for carriages and later for cars. A though I recurrently have is how would a city designed from scratch by a civilization that uses only bikes and walking look like?
Why should you use only bikes and walking? Cars/trucks have a role to play, it's just not the most efficient to move the majority of the people from one point to another. Simple examples: ambulances, firefighters, police, cranes.
True. I mostly meant not personal vehicles, so jut buses, trams etc. I supposed emergency services will use those dedicated lanes. or maybe civilization is so advanced those will be served via flying only. Idk just since fiction thinking.
I will just say the Streets of San Francisco were almost all built by civil engineering principles, even those from the 19th century. If you want some sim SF or NYC, this guy is on the right track by not having fakey roads.
Urban planners lose sleep over stroads for very good reasons but from a simulation and tooling perspective, streets still need a shared geometric backbone
I don't think that much is shared between streets and roads. Roads need all the details about curvature in the article so car traffic flows efficiently. Compare that to the beautiful but narrow streets of a Mediterranean town. Buildings are rarely parallel, angles are odd, but everything is on a human scale, and it just feels good to walk around.
>You see, the shapes of roads in real life come from an underlying essential fact: the wheel axles of a vehicle. No matter how you drive a car, the distance between the left and right wheels remains constant. You can notice this in tyre tracks in snow or sand. Two perfectly parallel paths, always the same distance apart maintaining a consistent curved shape.
Emphasis mine - that's not really true
- Cars have differentials, so the wheel speed can differ between wheels
- Steering geometry isn't parallel! The tyres turn a different amount when you turn the wheel
- Unless you're going in a straight line, cars don't go where the tyres point! Tyres 'pull' the car towards their slip angle
What you will actually see in tracks in snow or sand is non-parallel tracks, describing curves of different radii. You can also see this in racetracks, where the path more closely resembles the limits of car physics without care for passenger comfort or tyre wear. The example 'fail' image looks not dissimilar from a hairpin turn.
Author here: i agree the article oversimplified here and in practice vehicle tracks can sometimes be non concentric. But it has nothing to do with differentials. Differentials just allow wheels to rotate at different speeds (as perimeter of a smaller radius circle is smaller the outer one). Non parallelism usually comes from the Ackerman steering or slipping. But rear tracks of a vehicle going slowly through sand will always be concentric. Parallelism is important for engineers because it also allows multiple vehicles to go in parallel on a multi lane road. You can see how that is failing with bezier paths in the CS2 ss in the article. Also hairpin turns are usually designed with arcs in mind as well
Railroad cars don't have differentials and travel on parallel tracks. How?
https://www.reddit.com/r/Skookum/comments/47sbri/richard_fey...
For those that don't read the link, by having conical wheels.
See https://www.thecontactpatch.com/ for some interesting reading material related to that.
The author might get a kick out of an upcoming game called Junxions, which is a sandbox game to just do that... create road junctions.
The subreddit is here: https://www.reddit.com/r/Junxions/
Sure they teased that they've made their own solution, but I think Junxions should scratch the itch of most of us here interested in this kind of game.
Hello, I am the creator of this road system. The thing is that I myself don't even know what I want to do with it. lol. Maybe an asset or a game (a bit scared to jump in a full fledge game to be honest).
I am a fun of Junxions my self which follow closely. But the approach in my system if very different. Junxions creator uses the same kind of node base/bezier shapes paradigm where intersections happen as node graphs and not automatically as collisions between road segments. It's hard to explain but I am planning to dive into more details on why those two approaches are different in my next blog deep dive.
> The thing is that I myself don't even know what I want to do with it.
Embrace the next challenge: Instead of roads on parabolic (Euclidean) geometry, have roads on elliptic (non-Euclidean) geometry, like the surface of a sphere. Plus, on a sphere every line is already a circular arc anyway (no matter if straight or bent, the difference is just the center, radius and normals). Thus, this system of circular arc segments really lends itself to such a space.
Little prince style micro planets with their own miniature infrastructure will always have a special place in my heart. Half a year ago I started with laying out the basics https://github.com/Lichtso/bevy_ellipsoid_billboard https://github.com/Lichtso/bevy_geodesic_grid but got distracted by fixing some engine bugs in Bevy along the way. That reminds me I have to update to the newest engine version ...
anyway you can find some of the roads on spheres stuff here: https://github.com/Lichtso/bevy_geodesic_grid/blob/main/src/... it can not only generate the extrusion mesh but also calculate how the mesh overlaps with a geodesic grid of triangular tiles on the surface.
Go full science fiction and enable vertical or even upside-down roads for a 3D experience. :-)
Imagine an environment where ground/walls/ceilings always have gravity and one can build literal city mazes in horizontal and vertical directions. All that traffic going everywhere, oh my..
Sounds pretty fun! Do you have any screenshots to show?
Thanks for references! I initially considered bevy for this but I was a bit scared it was not mature enough. How do you find it now?
Really depends: In some areas it is quite advanced (rendering) and in others it is lacking / underdeveloped (editors / tooling). But there is an incredible amount of progress and also churn in keeping up with that.
If someone just wants to zen out building perfect merges, Junxions looks great. If someone wants to fight Bezier math demons at 2am because offset curves keep exploding… this article probably hits closer to home
There's so many things in games that are taken for granted at play time but which actually take a lot of thinking and work to get right. Roads for instance aren't something which your typical player will look too closely at... but they will notice if they look or behave in a way that seems wrong.
I've been playing Kingdom Come 2 of late, and I find it's natural to just kind of take the world they've created for granted - just like we do the real world. But when you actually stop and look you have to consider that every one of the finely crafted details was built by someone's sweat and tears, be it artists, programmers, or designers at edit time.
No wonder it's an industry of crunch, the work involved can be uniquely daunting.
Another area of hidden complexity is doors in video games. Almost no game has life sized doors because they introduce gameplay issues, almost all doors in video games are at least 30% bigger than in real life and you see an overabundance of sliding doors vs swinging doors because of the complexity swinging doors bring to video game physics.
https://lizengland.com/blog/the-door-problem/
https://www.ign.com/articles/putting-doors-in-video-games-is...
This was also confirmed by a Valve developer recently about a bug in HL2:
https://mastodon.gamedev.place/@TomF/115589925206309168
Also in their VR titles Valve made all doors swing in both directions because that feels more natural to players when there is no haptic feedback from not being able to push open a door.
The scale difference mentioned in gp isn't just doors though but any structure you can pass through. Many games houses with larger interiors than exteriors and video game ventilation ducts are comically large.
That's an impressive bug hunt. Same code, different behavior. I can't imagine how much time the guy spent on finding this one. And how much satisfaction once he finally nailed it.
Ah yeah, this is actually part of why I never complete games.. I spend so much time messing around looking at all the cool little details, exploring the environment and generally "experiencing the place" moreso that pursuing game mechanics or completing levels/quests/etc. ... some of my favorite games, I've played probably like 1/4 of lol
> There's so many things in games that are taken for granted at play time but which actually take a lot of thinking and work to get right.
I have a small list of these things in game dev. Over the years, I found some games that were more playable (in my opinion) than I thought they deserved to be. Kind of like a well written book with a bad story.
For me at least, the number one most important thing is how well the character -- person, car, spaceship, whatever -- moves. Does it handle well, as expected. I'm at the point where I think this may be the single most important aspect of a game that finds itself in a competitive space.
I think blizzard stands out for this with Overwatch and World of Warcraft. They avoid the jerky start and stops with their characters. Their characters feel both performant and natural at the same time, adhering to reality but breaking physics as necessary (air strafing for example).
Building out roads correctly feels like an offshoot of this for games which include cars. A car should be able to navigate a turn without going through weird contortions as it hits pinch points, or unnatural wiggles when roads join.
I absolutely love how Skyrim's world is built. A lot of details that would fly past most players' attention are quite thought through. How roads connect, where do rivers intersect, where do lakes get their water from, in which direction do they flow etc.
Yep, the most impressive work in games is the stuff players never consciously think about
This is interesting, I look forward to reading more. But I think it’s wrong, if you want to represent reality.
Real cities were all built in the past, for older vehicles, which moved at different speeds, and were controlled by drivers with different goals from today’s drivers.
So, if your game has bad and unsafe road designs, which have been partly retrofitted to reduce the worst problems, then that is accurate.
A game with optimal roads is not an accurate simulation of reality.
A professional modern road designer will simulate the expected movement of vehicles through a new or redesigned road, to try to discover major problems.
They look for problems with turning radius, visibility, stopping distances, and interactions with other road users.
I believe that a game designer could offer to do the same.
The game could draw a good algorithmic road shape first. But next offer the player an option to run a simulation of individual traffic movements, to discover serious issues, and let the player know about problems.
To the OP, I suggest this simulation approach, not trying to discover flawless algorithms. That’s not how it happens in the real world.
Several comments have suggested similar issues.
That sounds more like a traffic simulation tool rather than a game.
Simulation games are very popular these days.
Articles like these are the reason I continue to check hackernews.
Author please keep writing.
For sure I will. Thanks a lot for your interest. To anybody's disappointment, I didn't even know Hacker News was a thing until I saw a ton of traffic coming from it. But I guess I'll be more active here since there are a lot of like-minded people.
People who made tools that generate roads using circular arc spines unite: https://devforum.roblox.com/t/new-geomtools-plugin-quickroad...
Hackernews is notorious for causing outages when a link to a self hosted site trends.
Beware if you post article's in there.
I also do graphic processing and now with ML, contact me if you ever want to share though, contact via my profile
> Hackernews is notorious for causing outages when a link to a self hosted site trends.
This made me briefly nostalgic for the old glory days of Slashdot, which is the first place I recall that would cause the "hug of death".
I believe the hug of death is Reddit, Slashdot was slashdotted.
/. affect was a real thing for sure. I'm not sure it happens much on HN.
My guess is a combination of tech being better and HN having lower volume vs peak /. (before digg&reddit).
[dead]
"Do 99% of city-builder players care what shape the corner radius of the intersection has? Most likely, no."
Finally, I am part of the 1%!
Once you do care, there's no going back
In 3D games, something that's key for roads to look/feel realistic is to have small amounts of banking here and there all over the place - as opposed to just having a crude categorisation where there are flat roads on one hand and ramps on the other.
If you don't do that then large parts of the game world end up seeming like ice rinks with roads painted on them.
Bézier curves - specifically for things like roads where you want a single definition of the road/path and an extended image that obeys that path, turning it into a pair of offset-béziers aren't the easiest thing to work with. They collapse to a visually unattractive solution at extreme boundary conditions (such as a tight turn)
You can see it in one of his examples where the bézier curve has an inflexion point which crosses over itself on a sharp bend. I ran into this while writing Azoth [1] last year, when wanting to be able to overlay paths with blending into the background at the sides, and curving around existing features on a game map. To solve the problem, I simplified it, and there's an (animated) example of how I got it working here [2]
[1] https://github.com/ThrudTheBarbarian/Azoth
[2] https://github.com/ThrudTheBarbarian/Azoth/blob/main/Documen...
Be like the Romans - make them all straight lines :-)
Of course the Romans didn't give a shit who's property rights they might be violating. I live in Lincolnshire UK, where Roman roads are still used. The last one that got changed was years ago when they had to put a kink in Ermine Street (now the A15) at RAF Scampton when they extended the runway to accommodate Vulcan bombers.
The romans did care about property lines! Romes’ second aqueduct was held up when land owner Crassus refused to give up private land for its construction. Check out the article for a fascinating read: https://en.wikipedia.org/wiki/Roman_aqueduct
What an ugly attitude for the landowner to have held. There should be a word for that.
In my area, streets are often church tower to church tower. From the middle ages. You can nowadays drive these streets and the middle line indicators align perfectly with the church tower showing up. I think the church /church based government share that property right understanding of the Romans :)
In my early days someone told me generating roads is a non-trivial problem and I thought that was bollocks so I spent 4 months smashing my head against a wall to prove them wrong!
>A clothoid gradually increases curvature over distance.
This seems complete overkill? I remember smoothing between tangents of two circles to mostly solve roundabouts. I had to cheat for 3+ lane roundabouts but it worked for any semi-realistic road.
>Just simple rules stacking on each other that result in beautiful patterns. I can’t explain why, but seeing those structures always felt good.
I think in 2026 it's safe to blame your autism. I do. Nobody likes Factorio because it's a good game. We're here for the lines and grids.
Ahhh.. this is a writer after my own heart. Absolutely brilliant write-up. I had the same obsession with roads, from SimCity onward; they're the circulatory system of any city, and never in the history of cities or the history of circulatory systems have the vessels been straight lines. The streets of a European or Asian village usually tell a story about how roads were built over the fastest footpath from the outskirts to the center, then over time amended to go around some buildings that were built in the way. Whereas roads in rural parts where I come from run in long straight lines and then suddenly swerve to get around a piece of land that a farmer wouldn't sell. But grids only exist in some parts of the few cities that were built mostly by colonial powers, or developed later with master planning. And even those grids usually split from their original orientation to becoming north-south at some point in in the city's development, leading to the interesting downtown triangle blocks of cities like Portland, San Francisco, Los Angeles, Seattle, New York. Other cities started to grid around their core footpath villages, like Madrid, Barcelona.
The cities I find the most interesting (for roads) are the ones which kept gridding out in new directions to follow the course of a river. Cities like Buenos Aires, New Orleans, and Saigon, where the original paths followed curves around the river bends, resulting in multiple intersecting grids.
The intersections and division boulevards between grids are, of course, the most beautiful and architecturally interesting parts of any city. They are where the blocks are strangely shaped and the buildings can't be rectangular, and usually where every inch of land is at a premium as well. It would be nice if a city-builder could simulate that aspect of urban growth: The shift from village center to grid, and old grid to new grid.
Very happy reading this because I was always thinking exactly the same about historical games. One of my turn offs for any historical city building is when they are grid based. I always found that to be highly unrealistic, but I yeah, was aware that it was just some unneeded complexity and just my nerdy nitpicks. The point you make would’ve actually been a strong argument in my article. Too bad I didn’t have the inspiration to include it. The way historical cities developed in an ordered yet intricate way without any central planning (same as ant colonies) is actually very fascinating and I might write about this at some point.
Regarding modern roadways and viaducts that pass around medieval city cores, it's fascinating how they can be seen and still not seen. I tried to do this in Cities Skylines II for awhile, building very narrow streets in "organic" city centers with low-to-mid density, and then transitioning to a new city grid around the old center. Finally, superimposing highways and tunnels without destroying the original historical core. There were some beautiful results, but the traffic jams were astounding, even with limits on the city center roads and highway exits. This is the way cities actually grew, so to me it's much more interesting to simulate than a "perfect" city built all at once. One thing that was fun in SimCity 3000 was that certain technologies didn't become available until you had a certain population. I would almost wish that a city-builder now would allow you to take that to the extreme: Spend 200 years with horse-drawn carts before you can pave a road, and then figure out what to do with the mess. But more than anything: Oddly shaped buildings that fit into oddly shaped lots, which are not limited to hotdog stands.
Haha. I myself tried to play CS like that. Start with a historical core. The thing is the way the game is implemented buildings only have rectangular footprints while in reality buildings occupy the spaces more organically. I actually spent quite some time on google maps trying to see what pattern historical buildings followed to fill in spaces but couldn't get a definitive answer. I drafted it at some point in sketchup. Here is the result
https://imgur.com/a/procedurally-generated-buildings-that-or...
https://www.redblobgames.com/articles/curved-paths/
Yes, I don't even know how I didn't know about this at the time of wiring the article. But a must read for sure!
Thank you very much... Ineffably magnificent, as always...
Related: https://www.pushing-pixels.org/2014/04/04/the-craft-of-scree... (The craft of screen graphics and movie user interfaces - interview with Jorge Almeida...)
One may also be interested in Egregoria (https://github.com/Uriopass/Egregoria). This is a 3D city builder written in Rust, with particular attention to roads. I have never used the project (because it would not be useful for what I usually do), but I have been following its development at the beginning and I think it is quite cool stuff.
I was fascinated by them since reading a guide for Cities: Skylines that said that roads were like trees. There's a trunk that moves large amounts of nutrients and little branches that distribute the nutrients to the leaves. Such simple rules, but such complex and deterministic results.
I studied urban planning back in the university and one of the classes was road design. Though I forgot most, one part of the class was about how to design roads with curves that's safe for cars. This post just brought that memory back to me.
One game that had a different perspective (first person mmo), but a fun network of road building in a simulated wilderness .. Wurm Online
Not just roads! I made a small train game for a game jam, and I used splines for the tracks to get them done quickly. It did the job, but they looked wrong to me. So I revisited it a few weeks later and looked into arcs and clothoids as well. I replaced the splines with some basic code using arc and the result looked so much better.