Thread Rating:
  • 0 Vote(s) - 0 Average
  • 1
  • 2
  • 3
  • 4
  • 5
Connecting Traffic
#1
Is the game planning to leverage true connecting passengers (ex. Someone traveling Los Angeles to New York and open to connecting across multiple cities to get there)? By this I mean, will planes be full of passengers who are both traveling to a connecting city AND passengers who are traveling to their final destinations, or will it only leverage point to point traffic?
Reply
#2
The plan is to support at least 2-legged flights. With the goal being 3-legged. 3 or more legs may require GPU-Compute, manual SIMD tuning, or an accelerator add on card. (The latter would cost a few hundred bucks, so it might just be limited to persistent online games.) We also might run into ram issues.

Currently, I have a 2-legged system implemented, but it is not fully optimized. Thus, I am using 1-leg (point to point) for the time being to develop the rest of the game.

Once I get the rest of the game built up enough, I'll re-enable 2-legged flights and optimize the process to work reasonable well with just CPU processing. I'll come back to 3-leggs and more toward the end of the game's development.

There is a saying in programming, "Premature Optimization is the root of all evil."

Assuming I don't do GPU Compute, hand written SIMD, or acceleration cards, I may make the number of legs the game processes customizable. Core counts jumped from quad cores to 64-cores in GearCity's development time (2 Cores to 16+ Cores for most prosumers in that time frame). I suspect core counts will continue to increase over the next decade or two even though I am trying to make the game work well on my 8-core machine. The processing seems to scale linearly with core counts.

^Note, when I say leg I'm talking about a departure and an arrival, not a technical stop.
"great writers are indecent people, they live unfairly, saving the best part for paper.
good human beings save the world, so that bastards like me can keep creating art, become immortal.
if you read this after I am dead it means I made it." ― Charles Bukowski
Reply
#3
Will it be possible to enable 3-leg only for certain connections like: no working 2leg connection or no 2leg connection with lessen then X-hours transferring or bad quality rating?
Reply
#4
(08-06-2025, 03:47 PM)wasgehtdichdasan Wrote: Will it be possible to enable 3-leg only for certain connections like: no working 2leg connection or no 2leg connection with lessen then X-hours transferring or bad quality rating?

To be honest, I'm no where near that point. I got the initial code working for feasibility study 2 years ago. At first, it wasn't feasible to do the data grid system how I wanted to. (Required too much ram). I got it working, wrote the second leg code, and it required too much processing. That's where I am as far as passenger routing. There is a whole lot of optimizations and tweaks that can be done. I reverted back to 1 leg so I could work on the rest of the game, as there is no point in spending a whole lot of time doing optimizations on passenger routing when you can't do things like starting a company, buying aircraft, or making routes (as a player).

There should be an AeroMogul update on this subject. Look toward one of the first few.

Each leg increases the processing or ram requirements exponentially. I don't think splitting some routes between 2-leg and 3-leg would improve it. Instead, I will look toward improving cache (both CPU and game cache), flattening arrays for automatic SIMD optimizations, etc.
"great writers are indecent people, they live unfairly, saving the best part for paper.
good human beings save the world, so that bastards like me can keep creating art, become immortal.
if you read this after I am dead it means I made it." ― Charles Bukowski
Reply
#5
Of course it will improve it because you save a lot routes where you don’t need to calculate a 3rd leg because there are enough 2-leg connections.

It’s like a passenger: If you have for example 10 routes with good rating Birningham->london->New York you stopped checking if you find a 3-leg-route Birmingham -> London -> n (Amaterdam/Frankfurt/Paris/and so on) -> New York. So you can save the exponential n calculations…
Reply
#6
(08-08-2025, 04:30 AM)wasgehtdichdasan Wrote: Of course it will improve it because you save a lot routes where you don’t need to calculate a 3rd leg because there are enough 2-leg connections.

It’s like a passenger: If you have for example 10 routes with good rating Birningham->london->New York you stopped checking if you find a 3-leg-route Birmingham -> London -> n (Amaterdam/Frankfurt/Paris/and so on) -> New York. So you can save the exponential n calculations…

Routing system is much more complex and realistic than that. See the explanation of the data grid system in the past AeroMogul updates on the FBS forums.

But for a short overview, passengers generally don't care what airports they're going to. Their destinations are not airports. It's areas. I don't have the game in front of me right now, but using your example, Birmingham is well served by 3 airports. If the passenger is willing to travel a little, 7 airports, and infrastructure is good enough in the UK, they could save even more just taking a train to London, 8 airports. But then if they're willing to take a train for an hour, Manchester and Luton aren't out of the question. 10 Airports. On the other side, New York area is served by 9 airports.

For 2-legged flights, you have to work backwards and forward from these airports finding matches in the destinations at each ends. Then score those flights.

When you add a 3rd leg, you have to process every route that has services to the destination and departure area, and then process every combination of direct routes between those routes. Which even, if just a small subset of of grids need 3-leg processing, it's still quite expensive thing to do.

Looping through routes to find these matches is very expensive. As is sorting the results.

If it currently takes me 1 second to do 1-leg, and it takes me 5 minutes to do 2-legs, 3-legs would take 30 minutes (or more). If only 10% of the grids need 3-leg processing, it would still take 3 minutes.
"great writers are indecent people, they live unfairly, saving the best part for paper.
good human beings save the world, so that bastards like me can keep creating art, become immortal.
if you read this after I am dead it means I made it." ― Charles Bukowski
Reply


Forum Jump:


Users browsing this thread: 1 Guest(s)