• Which the release of FS2020 we see an explosition of activity on the forun and of course we are very happy to see this. But having all questions about FS2020 in one forum becomes a bit messy. So therefore we would like to ask you all to use the following guidelines when posting your questions:

    • Tag FS2020 specific questions with the MSFS2020 tag.
    • Questions about making 3D assets can be posted in the 3D asset design forum. Either post them in the subforum of the modelling tool you use or in the general forum if they are general.
    • Questions about aircraft design can be posted in the Aircraft design forum
    • Questions about airport design can be posted in the FS2020 airport design forum. Once airport development tools have been updated for FS2020 you can post tool speciifc questions in the subforums of those tools as well of course.
    • Questions about terrain design can be posted in the FS2020 terrain design forum.
    • Questions about SimConnect can be posted in the SimConnect forum.

    Any other question that is not specific to an aspect of development or tool can be posted in the General chat forum.

    By following these guidelines we make sure that the forums remain easy to read for everybody and also that the right people can find your post to answer it.

AI and ATC SDK

I was wondering what is possible to do and what is not possible to do via the P3D/FSX SDK and FSUIPC regarding AI traffic and ATC features.
For example, can you assign a runway for an AI to land depending on wind?
Any insights on the restrictions of both SDK and FSUIPC are appreciated.
Thanks
 
As far as I have seen it is currently not possible to externally instruct anything to AI pilot or the ATC system. You can take over control of the AI plane removing AI pilot and ATC from the picture, completely fly it externally or slew, then give back control to AI system. That much is probably at present all you can do. Hooks to the AI-ATC logic have been requested several times since p3d launch, but little has changed in this from FSX. Perhaps the AI pilot and ATC are too intermingled that it is difficult for LM to provide any connections from in between.
 
Last edited:
Thanks @him225

As far as I understand, I think that this slew solution works pretty well. What are the downsides ? Maybe performance wise ?
 

=rk=

Resource contributor
There is no performance impact for using slew. However, you will not be able to slew a different runway assignment. So were you to slew the AI over to the downwind runway, as soon as you release it, it will diligently attempt to complete it's ATC assignment.
 
Thanks =rk=

So once it starts taxing, if you restore back the slew the AI attempts to fly the default ATC assigned path?

So how addon manage to bypass this?

Any other limitation in those workarounds ?
 
Thanks @him225

As far as I understand, I think that this slew solution works pretty well. What are the downsides ? Maybe performance wise ?
The sounds of that AI don't work or get fixed to the moment it changes to slew. Since the AI is not flying, you will need to emulate all the smooth pitches and rolls as well on turns etc to make them look acceptable in the air.

Thanks =rk=

So once it starts taxing, if you restore back the slew the AI attempts to fly the default ATC assigned path?

So how addon manage to bypass this?

Any other limitation in those workarounds ?
As long as it is still in the air perhaps, if you bring it to the ground it would probably come to a standstill on releasing control.

The addons usually end up emulating all phases of flight gate to gate. eg AIController program which attempts to actually fly in most parts but ATC goes completely silent, or other primarily ATC addon programs that work by slewing. The other issue with this might be complication with p3d AI flightplan scheduling system which decides when to spawn new or command ground AI for next flight that you may have to take into account.

In my opinion in current state the most workable solution is the method of the old AISeparation program which simply slews back AI to desired separation and leaves the rest untouched. This leaves everything functioning as usual. I have had much success with the setting of: 6, 7, 5, 10, 8, 10 if you are interested in looking at it. The program is old with some bugs and could still use some more refining (such as simconnect use than fsuipc, separation distance based on AI model/speed, work with user aircraft) so it still ends up letting some go-arounds occur when too many AI in conflict. The limitation that remains is if arrival AI happen to crowd a particular runway which depends on its geographical location relative to departure airports, then there will be prolonged delay as arrivals cant be distributed to other runways as before without breaking the whole system. This can be improved a bit by taking over control of AI at the end of rollout upto the exit taxiway to speed up its runway exit which can appreciably increase arrivals handled, an alternate would be to find a hack for ai player dll to increase taxi speed in general similar to FSX. Feel free to ask if you have questions on use of aiseperation.
 
Thanks both.

I am working on an undocumented workaround for this problem.

Let's say I am able to load a FP to an AI and then I am able to change that flight plan as required. By this way you can make longer legs, maybe inject holds and even simulate a STAR by modifying the existing legs (shorten them or extend them or dynamic add an additional leg)

Would this close this gap ?

Thanks
 
Last edited:

=rk=

Resource contributor
As long as it is still in the air perhaps, if you bring it to the ground it would probably come to a standstill on releasing control.

The addons usually end up emulating all phases of flight gate to gate. eg AIController program which attempts to actually fly in most parts but ATC goes completely silent, or other primarily ATC addon programs that work by slewing. The other issue with this might be
Thanks, but if you're going to answer questions asked me, please do so with some measure of authority, guessing wont tell us what happens to a slewed plane. You've established your authority based on experience with Flight Simulator AI Traffic Separation, which was released for FS2004. Please name addons that usually end up emulating all phases of flight that you refer to, thanks.
Let's say I am able to load a FP to an AI and then I am able to change that flight plan as required. By this way you can make longer legs, maybe inject holds and even simulate a STAR by modifying the existing legs (shorten them or extend them)

Would this close this gap ?
I think you are going to want to follow up on this search and explore some of the products and talk to actual users. Bear in mind that most ATC addons like VoxATC focus on the user cockpit environment and do little to change the functionality of default AI/ATC interaction, while most AI addons, like MyTrafficX, recreate the AI fleet and airports and do very little in terms of ATC, sometimes adding a few user features.

It looks like your plan is to establish a virtual identity for each airplane in the way AI Flight Planner works. I caution you to keep that identity in some sort of raster table format, meaning only a few unique values for each AI vehicle. If you make actual virtual airplanes for the flight simulator to render, you'll quickly run out of memory. AI traffic is much more like a flock of birds, or even an amoeba, than it is like a collection of airplanes.
Ultimately, it's a simulator. In order to immersively simulate flight, there has to be traffic. Clicking a slewed plane and directing regional traffic tend to break that immersive feeling and you'll want to address that aspect.
 
Thanks. I will do some research and also speak to some of the developers as well.

Last question:

I understand AI Flight Planner uses compiled BGLs to set up AI FPs.

With the current state of the SDK/PDK, can you dynamically change Flight Plans once is sent to the AI?

Thanks
 
Thanks both.

I am working on an undocumented workaround for this problem.

Let's say I am able to load a FP to an AI and then I am able to change that flight plan as required. By this way you can make longer legs, maybe inject holds and even simulate a STAR by modifying the existing legs (shorten them or extend them or dynamic add an additional leg)

Would this close this gap ?

Thanks
Not sure this will work since p3d ATC stops following the flight plan routing at T/D which goes as far as 80nm from destination airport and starts vectoring from there both user and AI aircraft.
 
@him225 the waypoints of a flight plan and the vector atc data are, in memory, the same.
The whole idea is to try to control these on the fly to try to simulate real behaviors.
My only question is, in case of land operations for example, how to control the turn rates and so on, so as to be able to do accurate flight paths, if necessary
I really don't know much on these so I am investigating
Is there a way you can change the turns? Is it hardcoded ?
Thanks

Edit: Found this but no conclusion http://www.prepar3d.com/forum/viewtopic.php?t=6627
 
Last edited:
@him225 the waypoints of a flight plan and the vector atc data are, in memory, the same.
The whole idea is to try to control these on the fly to try to simulate real behaviors.
My only question is, in case of land operations for example, how to control the turn rates and so on, so as to be able to do accurate flight paths, if necessary
I really don't know much on these so I am investigating
Is there a way you can change the turns? Is it hardcoded ?
Thanks

Edit: Found this but no conclusion http://www.prepar3d.com/forum/viewtopic.php?t=6627
If you are not planning to have the p3d ATC involved then it may not come as an issue, as the default ATC does not refer to navdata or the flightplan for vectoring purpose and uses hard coded vectoring based on runway heading such as for 30deg ils interception.

For quirks regarding maneuvering you may want to contact the developer of this program who dealt with much similar problems: https://www.avsim.com/forums/topic/...e-to-gate-control-open-betacontrol-open-beta/
 
Thanks I will be contacting.
The whole idea is to use the ATC/AI framework and inject legs/vectors on demand.
I will speak to this developers and see if makes sense to them.
Thanks
 
Thanks I will be contacting.
The whole idea is to use the ATC/AI framework and inject legs/vectors on demand.
I will speak to this developers and see if makes sense to them.
Thanks
Have you checked this with fsx/p3d, does the atc vector ai to the injected legs while in proximity of the airport?
Under AI control you wouldn't be able to do much about the aircraft turn rates, you could however try taking over the control momentarily to fly any steep turns then release when the turn completes. Since you would only be assisting with the atc intended path it shouldn't cause any complication.

Regarding the landing runway assignment in case of multiple runways I have found you can control it to some degree via changing the location where AI gets spawned which in turn depends on the last waypoint of the flight plan if it has a flight plan when it gets injected, the active runway with centerline passing closest to that point is assigned for landing. This could be useful for load balancing if you could inject a custom flight plan to an AI before it gets spawned. It is possible to do this in a fixed manner with UT2 by compiling new schedules with custom flight plans. One issue I have seen with this is if AI is spawned too close to the intended centerline it will steep dive then roll on the ground up to the runway.
 
Thanks him225. I am researching on this rate of turns and PBH limits.

I have not heard back from the developers still. I will let you know how it goes
 
him255 I have been working in the ATC/AI internals and have gathered enough information on the functionality.
I have couple of questions: 1) via Traffic Explorer utility you are able to see the eroute and landing phase - among others. When you mention ATC vectors, you mean the switch from entorte to landing? Can you clarify?
2) Also the pattern phase - is this related to circuits ?
Thanks
 
1. In the sim the switch to landing from enroute status occurs when AI intercepts the ils. I was referring to the point of decent from cruise level shortly after which ATC assigns expected approach and runway then starts vectoring i.e. giving various headings and altitudes away from the flight plan path towards ils interception (which is the ident fix point and altitude in the afcad ils header of the runway). The status remains at enroute in this while.
2. Yes this is probably related to vfr type ai flight plan where AI follows a rectangular circuit to landing with atc instructing enter base, downwind etc, not heading and altitude as in ifr. I have only seen enroute and landing status for ifr arrivals.
 
Thanks him255.
How can you check if in 1) the route followed is a result of an IFR plan let's say or an ATC vector given to that AI? With Traffic Explorer this is not possible ? Any other way?
Also, when you force a landing in an enroute AI, the AI starts a vectored path?
Thanks
 
There is no in sim indication for this. You will have to be familiar with the airport airspace and its arrival procedures to have an idea, start experimenting with different runways at an airport you are most acquainted with. There is also a trick to load a multiplayer session flight in solo mode as an atc controller where you can see AIs on the radar and listen to the atc, display airspace waypoints etc on radar screen to have a better idea. You will find that as soon as p3d atc starts giving arrival aircraft a heading after notifying the expected approach it has stopped following the flight plan path. It is easy to figure out as p3d atc generally detours from flight plan much before STARs, etc usually start their turns.
From what I remember force landing directs AI to a direct path towards indent fix and its altitude of selected runway immediately for interception from its current position without role of atc.
 
Top