Most transportation games are super shallow:
- trains simply turn around on the platform
- there is not enough road traffic to actually necessitate advanced traffic planning, or then the driver AI is too stupid to make use of more complicated traffic solutions
- airplanes simply clip through each other
- pedestrians are just decoration that is randomly generated when the player is looking
- people are not individual agents
In factorio, trains are done quite well, except that the trains can drive curves with arbitrary small radii at arbitrary high speeds.
In cities skylines, road traffic is done relatively well, but vehicles are not simulated at any depth, and behave dumber than human drivers.
In workers and resources soviet republic, there seems to be a nice people simulation, but the traffic and train simulation is super basic.
In transport fever, laying rail tracks at low curvature and inclination and creating roads with low inclination is interesting, but the rest of the simulation is super basic.
Is there any game that simulates the different modes of transportation and their interaction well?
- pedestrians should halt traffic when crossing a crosswalk
- road traffic should be smart about choosing lanes
- trains should be forward only, unless there is locomotives or drivers stands at both ends
- planes should follow reasonable holding patterns over airports and have vertical separation on routes
And many many more things. Designing a good transportation network is challenging in the real world. Why can’t we bring that real challenge into games?
I hear you, I feel you, and I want the same, but…
I want more. I want pedestrians to step off the curb a little early sometimes, to take risks when things seem safe. I want people driving to be distracted and run a red light or even hit a car or pedestrian. I want the grade of the track and rain to impact the acceleration and deceleration of a train. I want card driven late at night to have a higher rate of intoxicated drivers and to get stopped by police.
The simulation could go deeper. The angle of the track at a turn could increase or decrease the safe turning speed for a train. The time since the last rain would change how much current rain makes the road slippery due to oil build up. People going home from a football game at a stadium would start bunched up together and saturate public transport and roads unless you put extra services on. Maintenance issues caused by you penny pinching would manifest in a range of ways from a minor difficulty getting to speed to derailing a whole train. Neglected IT systems could have ever increasing outages. Outsourcing development of your infrastructure could lead to increased cost over time especially if the cost of switching was high.
At the same time the increased use of public transport would lower the number of visits to the emergency room for asthma attacks. Making extra services available for big events would reduce the number of altercations and following that incarcerations. Everything could have flow on effects not by having them hard coded but by having natural reactions in the way entities interact. Someone is more stressed because industrial noise is happening close to their house late at night? They are more likely to be hasty crossing the road and get hit by a car.
Most of this is too big for a single developer or even a fairly good team, but the description of the interactions could be done at higher levels by having summary interactions, more general things like good or bad mood, short or long travel time compared to expectations, and rates of interactions rather than actual events playing out. Still, it would be awesome.