Since the ability to create light (GA) aircraft was added to Traffic Global, there have been a lot of questions about what decisions lie behind the created flights, and a lot of people assuming that it’s a simple case of filling all GA parking at all airports all the time. In every other aspect of the flight simulation world the constant battle-cry seems to be “more realistic”, so just filling everything up all the time really isn’t going to cut it, and that means that there’s more to the GA creation than meets the eye.
Think about the GA traffic at your local airfield. Is it the same on weekdays and weekends? Night and day? Good and bad weather? A private jet charter hub and a short runway grass strip? Busy flight school versus bush strip? Well, the good news is that Traffic Global doesn’t treat these equally either. The bad news – they always come in pairs – is that it can be hard to see what the rules are. Thinking about it though, that’s not all bad news because it means that the artificiality is mostly hidden as well.
So what are the rules?
First up, each airport nearby is checked to see whether it has suitable parking (GA-specific or unrestricted) and suitable flow rules. In other words, can GA land, park and take off again? If the airport can be used, we go ahead and try to create some traffic. How? Beware – randoms ahead.
The first random is to choose how much traffic. In short, every GA-usable parking spot in an airport has a good chance of having a plane assigned to it, that is based in this airport. Each plane then has a schedule created for it according to more weighted random choices. This means that most airports should be moderately busy most of the time, but not oversubscribed. The aircraft doesn’t belong to that parking spot, it’s just a way of counting spaces.
Next, we choose an aircraft type based on the parking spot size and, because these can be pretty random depending on the airport designer (I’ve seen farm strips with class F parking, for example), we also check for the length of shortest usable runway for each aircraft type.
Now we have a particular aircraft type. If that type has a livery that’s marked as being specific to this airport’s ICAO code, then that livery has a very good chance of being chosen before anything else is considered. Otherwise, a random livery is chosen.
Each airport has a small chance of being a flight school. This is done in a way that appears to be random but actually isn’t – any given airport will either be a flight school or not every time you use X-Plane. This is where the “FlightSchools.csv” file comes in – you can say in simple way whether an airport really is or really isn’t a flight school. But what does this mean?
Actually, not much. The next stage after choosing an aircraft and a livery is to choose a flight type, which is either private or flightschool. Flight schools will still have a proportion of private flights, maybe from people who just use it for hangarage, maybe private hire. Private aircraft also have a very small chance of being from a foreign country.
Next up – and finally for the preparation – we have a pilot skill level which will obviously be lower for students than for qualified pilots but, again, is basically random.
We now have:
- Enough aircraft to make the airport busy but not full
- Those aircraft will be able to take off from the shortest usable runway
- Any liveries that belong only to this airfield are heavily favoured
- Each aircraft is set to either flightschool or private ownership
- Each aircraft is assigned a virtual pilot with a specific skill level
The last two are a little out of place because in reality they could be different for each flight, but for various reasons doing it this way round makes the book-keeping much easier and, in the words of an ex-colleague, is good enough for government work.
Now we’re ready to actually create some flights. See? I said there was more than just “fill all parking, fly somewhere else”!
Now we fill each aircraft’s diary. We choose a starting time, probably after the later of sunrise and 8AM. Especially skilled pilots might rarely start before sunrise. Some time is added for changeover to prevent aircraft being back-to-back busy all the time. Then we choose – random again – the activity type for this specific flight.
The first option is that the plane’s just not in use at this time. That’s more likely for a privately-owned plane than for a flight school/hire plane, and more likely on weekdays than weekends.
The next option is for a point-to-point flight – basically flying from the current airport to another airport and landing. That’s more likely for a privately-owned plane than for a flight school plane.
The third option is for the plane to be flying circuits. That’s more likely for a flight school plane than for a privately-owned plane, and only so many planes can be set to fly circuits at a time.
The final option is for a local area training flight; basically flying about to random locations within a few tens of miles of the airport. Private planes will tend to fly a bit further away from the home field.
So, we now have a purpose and a duration for the first flight of the day. This plane may land at the home airfield, or somewhere else. Now we basically keep going until we reach the end of the useful day, sometime after 5PM or sunset if it’s earlier. Again, especially skilled pilots may fly after sunset. The last flight of the day will always end at the home airport.
Finally, each flight is assessed before it would start taxying to see whether the skill level of the pilot is suitable for the current conditions; in other words, in bad weather, many private flights will just not take place.
It’s worth repeating that the “FlightSchools.csv” file (which lives in “X-Plane 11\Resources\plugins\Traffic Global”) only affects whether a specific airport hosts a flight school as well as private planes, and the effect of this is only to slightly bias some flights towards training and circuits rather than flying to other airfields. The number and types of aircraft is completely unaffected.