Instead of doing concrete assignments of flights to aircraft, flights are scheduled for a certain type of aircraft. Actual flight assignment then happens automatically whenever flights are booked into the system and those assignments might actually change over time as new requirements arise (delays, technical issues, etc.).
Auto-ops will also automatically cancel flights when it can’t find a good solution, for example when an aircraft breaks down and there simply isn’t a replacement available.
Why?
This is essentially a base feature for a whole range of interesting features that would make the game a whole lot more dynamic while not burdening the player with micromanaging the operations of their airlines.
One benefit of this feature from day 1 would be that one could create a long-range schedule comprised of destinations a single aircraft cannot fly a return trip to in a single day. As long as you have a large enough pool of matching aircraft, auto-ops would pick an available aircraft every day and try to make sure the schedule is executed as planned, all without the player manually having to manage these assignments or having to build a shifted flight plan for several aircraft by hand.
Beyond that, this feature would allow for all sorts of dynamic effects on aircraft operations:
Long delays being compensated with a (spare?) aircraft on the pool which takes over the following flights
An aircraft breaking down with technical issues is replaced by another one
Effects of strikes being handled automatically (still costly, but no manual interaction required)
Actual maintenance blocks (A to D checks) scheduled automatically.
An aircraft could be taken out of rotation to install a new cabin.
When?
Implementation could start at any time, no technical dependencies.
To add to this, a similar framework could be applied to crew scheduling like it is done in real life. A pool of pilots with certain type ratings at a base, some of whom call out some percentage of the time.
A LCC may choose to have less reserve pilots on base while a full-service carrier may choose to have more.
Good tradeoff mechanic that would make actual use of the reserve pilots.
I think this would be brilliant. Is the number 1 reason i stop playing the game once i branch into long haul. The micro management is too tedius to carry on playing.
This mimics more closely real-world airlines. They have a schedule and then assign aircraft to that schedule. This would make it harder in some ways, calculating the aircraft needed to satisfy the schedule without excess aircraft, but it would also elevate it to much closer to the real airline operations
This is a good idea but I’d implement it in another way. I dislike the idea of the system automatically assigning planes, this would be very complex to manage (it’s not just about having enough planes but timing the flights so not too many of them are at the same time).
Instead my proposal would be to have an “X-day” schedule defined by the user. Instead of Monday, Tuesday, Wednesday, etc there would be day 1, day 2, day 3 and so on until the number of days user chose is fulfiled. The schedule would be then created the same way it currently is. User would then asign the number of aircrafts matching the number of days the schedule has. For example, a 4-day schedule (roster) would require 4 planes and these would rotate on the roster.
As a simple example, you could make a 2-day schedules and assing two planes to it, let’s call them AAA and AAB. On 3 June, AAA would fly Day 1 schedule and AAB would fly Day 2 schedule, on 4 June AAA would fly Day 2 schedule and AAB Day 1 schedule, and on 5 June we’d go back to the same assigment as on 3 June. This is scalable to any number of days (for example 3-days schedule, 5-days schedule or whatever).
I feel like this is easier to manage than the original proposal. Besides, this model also has the advantage that it is theoretically possible to assing multiple plane types to the roster. For example, my 8-day European roster could have both A320 and B737 assinged to it if I wish so for whatever reason.
Edit: In theory there could also be a disbalance of the aircraft and days. For example, in of the games I have a couple of routes that don’t have enough demand for a daily service so there could be something like having an 8-day schedule with 4 planes, leaving each route served every second day. But this is more complex to solve if the number of days is not divisable by the number of planes.
I think your suggestion solves a different but of course related problem. The point of auto-ops would be that the system can respond to things that aren’t scheduled by the user. So maintenance blocks, ad hoc transfers to compensate for an AOG etc.
But that’s just the system-side of things…players will almost certainly need new “pool-based scheduling tools” to fully utilise auto-ops, akin to what you described. Because at some point, someone still needs to estimate whether the given fleet is large enough to manage a given schedule. Or whether the given schedule can realistically work with the given amount of aircraft.
Not sure how you define a certain type of aircraft, but I hope it’s not like each type model in the game right now is defined as one type, like the seating config (I really hope one day we can just copy the same config over to another model if the cabin size is the same). I think we need the flexibility of having an HGW model fulfil a BGW flight when needed or maybe even a different model type, e.g. a 350 fulfil a 330 flight. To achieve this, I guess you might need to select the alternative models that could be used for the flight, and the flights would be delayed if the turnaround time of the backup plane is longer
So far I was thinking “IATA Aircraft Types”, as that’s what typically is listed on a real-world schedule. But even with that there could always be different capacities due to cabin layouts, so in theory, a player could always dump any given type into a pool and hope for the best
That said, there will have to be some way to specify the intended capacity of a flight on a schedule without having to force the player to assign an explicit aircraft (which would go against the whole idea of auto-ops). Then auto-ops would have to try to minimise over- and under-capacities of already bookable flights once the flight takes off. Example: Flights are scheduled to operate with (the capacity of) an A321 but when the flight is supposed to take off, only an A320 is available, meaning some pax will have to stay behind. I need to be careful not to overpromise on anything here, because this stuff turns into hairy optimisation problems rather quickly
In theory, a booking class feature could allow to make specifying capacities 100% flexible (just set whatever capacities you want on a per-flight segment-level), but that might be more flexibility (and work) than players can and want to handle.
i think there is a difference between scheduled and unscheduled events: for scheduled events, the aircraft type should be somewhat constrained, e.g., IATA aircraft type, because there will be scheduling and booking consequences, e.g., turnaround time differences; for unscheduled events, the aircraft type really should be flexibility or maybe even defined by the player. If I only have an A350 available for an A321 flight, you might be able to choose between cancelling the flight or running it with an A350 but with severe capacity and turnaround differences. I think it is critical to be able to select this because it will impact smaller airlines more than larger airlines. If I have 10 A320s and 10 A350s, I can choose to either have one A350 to spare with a much higher leasing cost but able to operate most flights, or I can choose to have one A320 and have no spare for A350 and accept cancellation for A350 flights because range-load combination using A320 might make no sense, or I can choose to have one A320 but always run A350 flights if possible but with severe load restriction. I think all of them are a valid option based on the kind of flights you are operating and what kind of airline rating you want (obviously, you will more likely get more unhappy pax with the second option).
I think it is desirable to make the scheduling easier if you start to have regular checks (scheduled events), but I think for the unscheduled events, letting the code to do everything might be too restrictive