FS#266 - Aircraft queueing patch

Attached to Project: OpenTTD
Opened by CobraA1 (CobraA1) - Friday, 04 August 2006, 20:49 GMT
Type Patch
Category Vehicles
Status New
Assigned To No-one
Operating System All
Severity Low
Priority Normal
Reported Version 0.4.7
Due in Version Undecided
Due Date Undecided
Percent Complete 0%
Votes 0
Private No


This patch introduces aircraft queueing - when an aircraft cannot land at the runway, it is placed into a
FIFO queue so it can land the next time around. This helps alleviate the problem of slower aircraft never landing because faster aircraft hog the landing strip. In addition, the height of the aircraft is adjusted to make it easier to select individual aircraft while in the queue. Helicopters form their own queue.

This patch also introduces elements to expedite the clearing of the queue:

-Instead of circling the entire airport, which takes a long time, the incoming paths of the airports has been
adjusted so the aircraft circles in a smaller path in front of the landing strip. This is the only part that cannot be modified or disabled in the patch dialog box (because it is a direct modification of the airport state machine, it is difficult to make optional).

-The patch includes a modified form of Benben's speed patch, which allows the player to speed up aircraft to
more realistic speeds. Not only does this help clear the queue a bit faster, but this also fixes complaints
by players of aircraft being too slow - even slower than trains.
This task depends upon

Comment by CobraA1 (CobraA1) - Sunday, 03 December 2006, 06:59 GMT
Umm, how do I update my patch file? Well, I've attached a newer version to this comment, but I have no idea how to update the existing file.
Comment by bulb (bulb) - Saturday, 10 February 2007, 14:55 GMT
I regret to have to say that, but this patch is not of release quality. I have following objections against this patch:

- Realistic speed is 4x, not 8x.

- The aircraft queueing reduces throughput of airports, sometimes very significantly. This happens eg. if there is a lot of aircraft flying a short route and one flying a long route. The long-distance aircraft will be put into the queue too early, making the other aircraft wait until it arrives. Especially with slow aircraft and low planespeed settings.

- The same problem occurs with the prioritization of broken down aircraft. They are queued too early and block the airport traffic for time in which several aircraft could successfuly land.

- The queueing will not work well with airports with multiple landing runways, as it always insists on the first queued aircraft to land first. This will reduce usefullness of the extra runway significantly.

- The logic where aircraft get payment as if the transport time was as if they flew the original speed is weird. Correct rebalancing should be done via running cost.

- Reading of planespeed value from newgrf is not enabled. This is necessary for aircraft sets to adjust running costs appropriately.

- Acceleration is not adjusted with the planespeed, so with setting of 4, aircraft need 4 times longer time and 16 times longer distance to accelerate to full speed. With setting of 8 (which is bogus anyway) it is 8 and 64 times respectively; rather unuseable.
Comment by CobraA1 (CobraA1) - Saturday, 17 February 2007, 14:13 GMT
"Realistic speed is 4x, not 8x."

There's no such thing as realistic, actually. The speeds of *all* vehicles in OpenTTD are exaggerated and not realistic (OpenTTD would be unplayable if they were realistic). Will look for a different word to use.

"The aircraft queueing reduces throughput of airports, sometimes very significantly."

Not a bug. The patch is intended to address the problem of aircraft never being able to land; it it not intended to increase throughput.

Only a complete rewrite of the landing sequence, including getting rid of using the FSM for landing, will ever increase throughput. I currently do not have the time for such an extensive modification.

I may consider decreasing the radius in which aircraft can get queued.

"The same problem occurs with the prioritization of broken down aircraft."

I never really liked this feature in my patch, and am considering removing it. It is currently optional and defaults to off.

"The queueing will not work well with airports with multiple landing runways, as it always insists on the first queued aircraft to land first."

It *should* send the second queued aircraft to the extra runway. If not, then it's a bug.

The patch was created long before multiple runways existed, and I've never taken the opportunity to extensively test it with them.

"The logic where aircraft get payment as if the transport time was as if they flew the original speed is weird."

Ok. Will take another look at the calculations. If you have a suggestion for what the calculations should be, feel free to share it.

"Acceleration is not adjusted with the planespeed"

Ok, will take a look.

Thanks for the feedback; I will take a look at your suggestions, and feel free to make more or discuss existing suggestions. Unfortunately, the throughput problem is inherit to OpenTTD, and is not a simple fix. If I have time, I will design and implement new landing code to alleviate the problem, but it will be an extensive and time consuming modification, so I cannot guaruntee I can fix this with my current resources.
Comment by CobraA1 (CobraA1) - Friday, 29 June 2007, 08:51 GMT
Okay, since I don't know how to update my patch, I've attached the latest version to this comment. The latest patch can always be found at the OpenTTD thread:

Since it was such a large undertaking to update the patch to C++, none of the concerns have been addressed yet, except for the acceleration concern, which I changed while updating the patch. In addition, I did not include the prioritization of the broken aircraft in the update, since I was going to remove it anyways.

I will work on addressing the concerns better now that I have a patch that works with recent SVN updates.
Comment by CobraA1 (CobraA1) - Wednesday, 18 July 2007, 18:46 GMT
Improved patch; most issues should be addressed:

-"realistic" speed is now "fastest" speed.
-Landing sequence changed for single runway airports. This should offset any decrease in throughput.
-Prioritization of broken aircraft has been removed.
-Acceleration now scales with planespeed.

Apparently, some permanent form of the planespeed patch was introduced into the trunk at some time, making the planespeed part of this patch less useful. I'm thinking about possibly getting rid of it, or putting it in a separate patch.