Sign in to follow this  
kencnnrs

Question for Developers

Recommended Posts

This is mainly directed at Ryan, Robert, etc, but welcome all to chime in with opinions.  Without naming names, I was wondering what PMDGs stance was on developing products that include an independent FDE (flight dynamics engine) like in other recent releases.  I, personally, have come to like it, but just wondering if PMDG have any plans to look at this in future developments.  Thanks.

 

Just seen there was another post about this already, should have looked before posting, my apologies.

Edited by kencnnrs

Share this post


Link to post
Share on other sites
Help AVSIM continue to serve you!
Please donate today!

Here's a few quotes from Ryan on it that pretty much sums it up.

 


No, we're not doing this for multiple reasons:
 
1. We already do something quite similar - the NGX is already completely "fly by software" - we intercept the joystick prior to FSX and modify the inputs behind the scenes to produce things FSX can't normally do. Remember that the guy who programmed these algorithms here is an engineer with a PhD in computational fluid dynamics - I've seen people who appear to think we're just using FSX defaults or something and nothing could be further from the truth. This guy designs these types of mathematical physics models in real life industry. Simply put, using some other FDE would be pretty redundant here, Vangelis is already doing a ton of work of his own that's similar to this. It isn't just the flight modelling either - we do almost everything on its own outside the sim - fuel, pneumatics, autobrakes, electrical etc - it's all custom. Apparently we need to highlight this a bit more in the marketing we do, because a lot of people seem to be under the assumption that we aren't doing these things when in fact we were one of the pioneers of it going all the way back to the first NG we did in 2003.
 
2. The jet modeling in FSX is not nearly as bad as the free-rotating turboprop is. We can get very very close by tweaking/massaging the FSX model into doing what we need and it'll do 99% of the envelope right on the numbers from Boeing. Edge of the envelope is extremely difficult even in multimillion dollar full motion level D sims. I've personally seen level D sims completely "spazz out" and require reloading the situation if you get it into certain edge of the envelope states that it can't process. (it just starts flipping around unrealistically like crazy, it's pretty funny actually) Separated airflow/high AoA/stall physics is not something that is easy to model at all even for the best simulations in the world. Unless you are a Boeing test pilot, stalling a 737 or 777 is absolutely the last thing you'd ever want to do in the real airplane anyway.
 
As an aside on this - I've seen some people make claims in the past week to the effect that the NGX doesn't "feel" realistic. The idea that a large swept wing jet should fly in a similar manner to a smaller and much lighter straight wing turboprop is something that doesn't make a whole lot of sense. The weight and the way the wing of a larger jet works is going to smooth out a lot of that "loose" getting-thrown-around-by-the-airmass type feeling you get in a smaller plane. You can feel this difference as a passenger even - a couple months ago I got off a 757 straight onto an ERJ-145. There's a very pronounced difference there - the 757 feels very stable and has that almost "on rails" thing going on.  It's a big airplane that's displacing a ton of air and you don't notice little bumps and gusts. The ERJ on the other hand is more like a turboprop - it's small, has a straighter wing, and you feel the airmass a lot more. We had a ton of real life pilots on the 737 test team (and even more on the 777 team), we got to fly the full flight simulators ourselves, Robert himself has an ATP and has flown large jets. etc. I don't think we're wrong about how they fly after all of that.
 
3. To do this sort of thing you have to run FSX in what amounts to slew mode where the external FDE is just positioning the plane where it wants it based on the algorithms - this breaks compatibility with a ton of addons and hardware that read information out of the FSX flight model, causes the aircraft to not respond to the FSX weather events like turbulence, and so on. We're definitely not willing to do that - we'd have a ton of complaints if we did with how big our market is.
 
4. Running more processes like this on top of what FSX is already doing is not going to improve framerates. I suspect their FPS are higher largely because their VC has a lot less clickspots, animations, draw calls and texture resolution than then NGX does, not because the flight modelling is somehow granting it a ton more frames. As well done as their simulation is, it's also a fact that a Q400 is a much simpler airplane (in real life) than a 737 or 777. Full geometric path VNAV that takes into account both altitude and speed with all manner of soft and hard constraints, variable target descent speeds and limits, autothrottle logic etc is very heavy math. (There's all kinds of calculus and differential equations involved in doing it) Look at what our LNAV is doing too - all the turn prediction curve drawing etc - those aren't static things that get drawn once, they're dynamically generated based on the current flight situation and get recalculated with every "tick" of the aircraft's system timers. Again, very heavy math that the Q400's route line drawing doesn't have to do.
 
To sum up - I do really like what Majestic's done - I've been flying it a lot since it came out, but this kind of flight model thing as it's implemented in the Q400 is not something we're going to be pursuing for all the reasons listed above.
 
 

We *do* do things to the FDE outside the sim. Yes, it's still technically "using" the FSX FDE but we're adding a lot to it externally and doing unconventional things - this is the whole "fly-by-software" idea I mentioned in my original comments about this. The idea that some of you seem to have that we're using stock or generic FSX airfiles that are unrealistic for an airplane like the NGX or 777 is completely bogus. There's a ton of reprocessing and modification going on behind the scenes to get the desired performance and effects.
 
The main point is that there's more than one way to skin a cat here folks. What Majestic did makes sense for a free-rotating turboprop - FSX's free-rotating turboprop model is very broken in FSX and they had to do what they did to make certain things work correctly. (and before anyone asks, the J41 is a geared turboprop and we were able to make it work with the aforementioned techniques because of how those engines behave, which is quite different from the free rotating ones) We don't think this technique makes a whole lot of sense for a jet airliner in FSX. If you run into icing in a big jet in real life you're about to lose your ATP license for flying headlong into a thunderstorm or for neglecting to turn on AI. (actually I'm not sure you can even forget to do that in the 777, the airplane may turn it on automatically as soon as it detects any buildup) Icing is a problem for smaller airplanes like turboprops flying at lower altitudes - not generally for big jet airliners.
 
Also, I've tried a couple times to get the ice to overwhelm the anti-ice system in the Q400 by flying it headlong into storms and stuff - nothing happens as far as I can tell. As long as you have the AI system on it always clears the ice. In real life you can overwhelm a boot system if you fly into really severe icing. Again - this is a simulator and there's always going to be limitations to everything vs. reality. You paid $50, not $5 million.
 
 
Sean Campbell
  • Upvote 5

Share this post


Link to post
Share on other sites

Already answered - thanks for quoting it Sean. What are the plural "releases" that do this by the way? I'm only aware of the Q400.

  • Upvote 4

Share this post


Link to post
Share on other sites

Already answered - thanks for quoting it Sean. What are the plural "releases" that do this by the way? I'm only aware of the Q400.

 

Wasn't sure if Majestic were the first to do this or not, so I just said "releases" to cover any other product that may have done it. 

Share this post


Link to post
Share on other sites

Ken-

 

Ryan has been pretty polite on that topic- which is important.  We have techniques that we use- and others have techniques that they use.  I think it would be inappropriate for PMDG to comment on the value of techniques used by other developers beyond observations of whether we do something similar or different.

 

Providing a qualitative opinion is unimportant- and it isn't helpful to guys who work hard at something like the folks at Majestic...  What works for us might not work for them, etc.  So our opinion of the individual choices they make isn't important.  What IS important is that we think they do good work- and we hope they succeed- because good products make for a healthy marketplace for all of us!

 

(I recognize that there are some out there who love to take shots at us- but seriously- we have all accomplished some things in life and at PMDG and we can't be bothered to pay it much attention...)

 

But lest I get side-tracked:

 

One irritant that we see now and then is a bunch of poorly informed conjecture from folks who largely don't have a clue how things are done will arrive in this forum waiving the marketing material from some other developer and begin singing about how some new technique is changing the world...

 

They are almost always wrong- and there aren't many techniques that we haven't tried/experimented with...

 

We have been doing a fly-by-software flight model for so long we actually had some internal debate as to whether it was five years or seven...

 

It makes me laugh out loud when we see folks proclaim that we could "unload" FSX to improve frame rates by moving something outside of FSX...   We have been outside of FSX since before anyone else decided to pitch the idea as a great marketing tool...and none of you even knew it. 

 

I suppose part of that is our fault:  Many of the techniques that we use are proprietary.  We don't describe them in detail because we don't want to throw too many bones to competitors.  We want them to succeed- but we don't want it to be EASY for them, after all.  B)

 

We tend not to do much bragging and our marketing technique primarily is to show you previews here in the forum and then stand back and let the product speak for itself.  Ultimately in the end-game, it doesn't matter if you know HOW we make our simulations high fidelity- it only matters that your experience with them assures you that they are high fidelity...

 

To put it another way:  Since 1997 we have continued to reach for higher and higher levels of fidelity- and ultimately it doesn't matter how we do it...  It just matters that we do.

  • Upvote 15

Share this post


Link to post
Share on other sites

Possibly the most diplomatic man on AvSim. ^

 

 

Sent from my Apple communications device.

  • Upvote 6

Share this post


Link to post
Share on other sites

Pmdg, on the topic of what other devs are doing i noticed one recently release aircraft has included their own sound system outside of fsx which leads to an interesting feature of the sound always working without needing to focus on fsx the entire time (for ex. Alt+tabbing out of fsx to look at charts or pdfs) this for me is probably one of the best features of the aircraft . is there any chance pmdg in future would look at implementing a feature similar to this?

 

Personally for me that feature increases immersion immensely (sorry for bad spelling currently on phone)

 

 

Bob kermin.

Share this post


Link to post
Share on other sites

Our sound system aside from the engines is already completely custom/external. We just set it to follow the normal rules for window focus so that you don't hear the panel/ambiance/wind sounds continue after clicking away and losing the engines. There's actually a utility available that can stop FSX from ever losing sound focus though - you could try that out. http://www.flight1.com/products.asp?product=soundstream

Doing fully custom engine sounds (which would make our sound system completely external) is something we've talked about but there's major issues that would have to be overcome. Chiefly among them is that there's no way to determine absolutely where the camera position is in X,Y,Z space to be able to blend different sounds and do directional audio stuff the way that the default FSX engine soundcone technology does. If we can't determine camera/head position then we'd only be able to do a single sound that plays regardless of where you are around the aircraft or in the VC and that wouldn't be an improvement over the default.

  • Upvote 4

Share this post


Link to post
Share on other sites

Our sound system aside from the engines is already completely custom/external. We just set it to follow the normal rules for window focus so that you don't hear the panel/ambiance/wind sounds continue after clicking away and losing the engines. There's actually a utility available that can stop FSX from ever losing sound focus though - you could try that out. http://www.flight1.com/products.asp?product=soundstream

bah, Every time I've looked for a plugin like that I've only been told that 'It can't be done', I'll check it out thanks! :Big Grin:

 

 

Doing fully custom engine sounds (which would make our sound system completely external) is something we've talked about but there's major issues that would have to be overcome. Chiefly among them is that there's no way to determine absolutely where the camera position is in X,Y,Z space to be able to blend different sounds and do directional audio stuff the way that the default FSX engine soundcone technology does. If we can't determine camera/head position then we'd only be able to do a single sound that plays regardless of where you are around the aircraft or in the VC and that wouldn't be an improvement over the default

 

Ah that makes sense, Thanks tabs.

Share this post


Link to post
Share on other sites

Thanks for the reply Robert.  In no way did I mean to insult PMDG or to imply that you were falling behind other developers in anyway.  I always felt that with each new product you deliver, you once again set a new bar for FSX development.   Since I do think your at the top of the FSX market, my OP was just meant to ask what you guys thought of it, and not a "Why aren't you doing it" kind of thing.  Once again, I apologize if anyone at PMDG took any offence to it.  Thanks guys

Share this post


Link to post
Share on other sites

 

 

As an aside on this - I've seen some people make claims in the past week to the effect that the NGX doesn't "feel" realistic.

 

I find it absolutely unbelievable that anyone could even suggest that the NGX flight model is unrealistic. I am not a real world airliner pilot, but there is just something about the flight model of this aircraft that shouts "this is real" at me every time that I hand fly it. In fact, it even seems to simulate "ground effect" (the way that an airliner "floats" above the runway as it struggles to lose airspeed). That may just be me, but I don't get quite the same impression with any other aircraft.

Share this post


Link to post
Share on other sites

 

 


Possibly the most diplomatic man on AvSim. ^

 

Aw man, I thought that was me!

(Joking)

Share this post


Link to post
Share on other sites

As an A&P mechanic with a run/taxi certification on most variants of the 737, I can say that the look, feel, and modelling of the PMDG NGX is second to none. Nice work guys!! On a flight from KSDF to KMCO last week, I encountered an auto press fail message which was easily reset. I'm waiting for my first pack or bleed trip though, as that is a comparatively common issue with the 737's. Regards.

Share this post


Link to post
Share on other sites

Thanks for the reply Robert.  In no way did I mean to insult PMDG or to imply that you were falling behind other developers in anyway.  I always felt that with each new product you deliver, you once again set a new bar for FSX development.   Since I do think your at the top of the FSX market, my OP was just meant to ask what you guys thought of it, and not a "Why aren't you doing it" kind of thing.  Once again, I apologize if anyone at PMDG took any offence to it.  Thanks guys

 

Ken-

 

No need to apologize- I understood what you were asking...

 

I was just editorializing a bit...

Share this post


Link to post
Share on other sites

Our sound system aside from the engines is already completely custom/external. We just set it to follow the normal rules for window focus so that you don't hear the panel/ambiance/wind sounds continue after clicking away and losing the engines. There's actually a utility available that can stop FSX from ever losing sound focus though - you could try that out. http://www.flight1.com/products.asp?product=soundstream

 

Doing fully custom engine sounds (which would make our sound system completely external) is something we've talked about but there's major issues that would have to be overcome. Chiefly among them is that there's no way to determine absolutely where the camera position is in X,Y,Z space to be able to blend different sounds and do directional audio stuff the way that the default FSX engine soundcone technology does. If we can't determine camera/head position then we'd only be able to do a single sound that plays regardless of where you are around the aircraft or in the VC and that wouldn't be an improvement over the default.

 

I'm very happy to find this post because yesterday I bought SoundStream but only to find out it didn't seem to work with the NGX. So...I went to Flight1's support forum and asked about this and the developer told me his application SoundStream doesn't work with the NGX and after that info I asked for a refund.

 

However after reading this and the way I understand it the sound from the engines in the NGX does keep playing even when FSX is not active/in focus, is that correct? Only the other sounds on the flightdeck etc don't play?

 

When I did a quick test yesterday after buying this SoundStream tool I never started the engines in the NGX so that would explain why I thought SoundStream didn't work at all with the NGX.

 

If someone could just confirm I understood this correctly and that the sound from the engines does play even in the NGX and when FSX is not the active application I would be very grateful and then I'll just go ahead and buy that SoundStream tool from Flight1 again  :lol:

 

Edited to add one more thing to PMDG, please consider an option if possible in the next servicepack/overhaul for the NGX where you can choose if you want all sounds to keep playing when FSX looses focus and not only the engines.

Edited by WebMaximus

Share this post


Link to post
Share on other sites

Yes, that's correct - you'll get engine sounds but not the other panel sounds. The 777 is fully compatible with it once SP1 releases and I'm sure we'll add same functionality when we update the NGX again.

Share this post


Link to post
Share on other sites
Full geometric path VNAV that takes into account both altitude and speed with all manner of soft and hard constraints, variable target descent speeds and limits, autothrottle logic etc is very heavy math. (There's all kinds of calculus and differential equations involved in doing it) Look at what our LNAV is doing too - all the turn prediction curve drawing etc - those aren't static things that get drawn once, they're dynamically generated based on the current flight situation and get recalculated with every "tick" of the aircraft's system timers. Again, very heavy math that the Q400's route line drawing doesn't have to do.

 

Being general here, none of what is described will hurt performance, and does not explain the lightness of the MJC Q400. As for clickspot count, animations, etc.. that is also irrelevant as there are over 300 clickspots in the CBs alone, and that discounts all the peripheral animations (sun visors, moving seats, side tables, etc..) in addition to everything else that is clickable to just operate the aircraft.

 

Whatever is making the Q400 "light" on frame rate is not due to simpler systems/FMS/ND drawing, as it is bogus to assume the Q400 is "light" in these areas (or conversely, that any PMDG product is particularly "heavy", either).

 

For kicks I removed all the systems programming from the 777, and got very similar frame rate to when it is up and running, strongly hinting the model is the reason for it being....slower. In fact, I couldn't see any real difference in performance at all. You can try it yourselves by removing all the 777 related DLLs.

 

Generally speaking, the systems are the least likely to impact performance of the simulator. Crunching numbers is what processors are outrageously good at, and the computers we all use today are blisteringly quick. What still kills perf today is graphics, which is why we have crazy parallel processing behemoths we call "graphics cards", dedicated to....graphics processing. The math involved in simulating an FMS etc.. is easy for modern hardware, and in fact is several times more powerful than the real hardware.

 

Airbus FBW runs on Intel 8086 and Motorola 68010 processors, several FMS use Intel 486 processor cores, for example.

 

The 777 first flew in 1994. EDIT: A quick piece of research reveals Honeywell used Motorola 68040 processors for the 777 FMS. It is trivial for modern processors to emulate these processors on modern hardware (but that would not even be necessary in terms of the systems programming we are discussing here - if you ever used an emulator to play old Nintendo games, you emulated the 68040 processor in software and ran machine-compatible code!). Writing the same software on modern hardware should actually be even faster due to advancements in the state of the art of processor architecture and design.

 

Best regards,

Robin.

 

Robin Goodchild.

Share this post


Link to post
Share on other sites

 

 


Airbus FBW runs on Intel 8086 and Motorola 68010 processors, several FMS use Intel 486 processor cores, for example.

The 777 first flew in 1994. EDIT: A quick piece of research reveals Honeywell used Motorola 68040 processors for the 777 FMS. It is trivial for modern processors to emulate these processors on modern hardware (but that would not even be necessary in terms of the systems programming we are discussing here - if you ever used an emulator to play old Nintendo games, you emulated the 68040 processor in software and ran machine-compatible code!). Writing the same software on modern hardware should actually be even faster due to advancements in the state of the art of processor architecture and design.

 

...and each one of those systems has its own processor, which FS does not allow.

 

Surprise!!!

 

...actually, no, that's not quite a surprise since we've all been suffocated by it for years now.  Nice try, but it's not at all comparable as far as levels of system processing go.

Share this post


Link to post
Share on other sites

...and each one of those systems has its own processor, which FS does not allow.

 

Surprise!!!

 

...actually, no, that's not quite a surprise since we've all been suffocated by it for years now.  Nice try, but it's not at all comparable as far as levels of system processing go.

 

Um...if you are doing your systems outside the sim and using only the core data (air data/position/velocities etc) then emulating separate processors is possible. IMO there is nothing that FS "does not allow". The only limits are skill and imagination.

Share this post


Link to post
Share on other sites

Um...if you are doing your systems outside the sim and using only the core data (air data/position/velocities etc) then emulating separate processors is possible. IMO there is nothing that FS "does not allow". The only limits are skill and imagination.

 

Unless you're sitting on top of some Flight Sim gold mine, your point isn't exactly realistic.

 

The current situation is one where FS itself is severly limited by not being optimized for a multi-core environment.  Regardless of how much you throw outside of FSX, you're still going to see a drastic performance bottleneck by how FSX behaves itself.  Even throwing graphics processing off onto a GPU doesn't help as much as it should.

 

His scenario referenced a situation where each one of those systems had independent processing on independet processors.  Those systems may communicate, but they're being run on separate processors (not even multiple cores of a single processor).  I was simply saying the comparison was not a fair one to make.

 

So, before you go asserting that it's all up to skill and imagination, I'd suggest you take a look into the matter more carefully.

 

Example:

FSX is limited by being a 32 bit application.  Have some clever "skilled and imaginative" way to get by that limitation?

Share this post


Link to post
Share on other sites

Unless you're sitting on top of some Flight Sim gold mine, your point isn't exactly realistic.

 

The current situation is one where FS itself is severly limited by not being optimized for a multi-core environment.  Regardless of how much you throw outside of FSX, you're still going to see a drastic performance bottleneck by how FSX behaves itself.  Even throwing graphics processing off onto a GPU doesn't help as much as it should.

 

His scenario referenced a situation where each one of those systems had independent processing on independet processors.  Those systems may communicate, but they're being run on separate processors (not even multiple cores of a single processor).  I was simply saying the comparison was not a fair one to make.

 

So, before you go asserting that it's all up to skill and imagination, I'd suggest you take a look into the matter more carefully.

 

Example:

FSX is limited by being a 32 bit application.  Have some clever "skilled and imaginative" way to get by that limitation?

 

Well depending on whether it is worthwhile or not (like the RXP GPS units) one could store data on a totally separate process and share that info with the simulator. That does take some skill.

 

As for external systems, when I say external I don't mean just running your own algorithms to simulate a system. If you know what you are doing you can run that system on a totally separate thread/core. I wouldn't be surprised if PMDG is doing just that. I know Majestic is.

 

Heck you could run that system on a separate computer entirely and make the 2 talk via network. If im not mistaken that's what most Level-D simulators are doing in the first place.

 

Put it this way:

 

The FSX process is like a pipeline. The length of this pipe is determined by CPU power and the diameter is affected by both CPU/GPU power and available memory. The destination of this pipeline is the final frame rendered. Each instruction involved is a processing center along this pipeline. This also affects the length of the pipe. For a given CPU power more instructions means more ETE.

 

However, you can handle instructions in another pipeline running in parallel. That pipe's destination is some point along the primary pipeline where it makes a turn and connects with the primary. This external pipeline could be just another thread in the FSX process for only calculation processing, or it could be some external process that stores a vast amount of data that would cause FSX to OOM instantly. Instead the connection it provides is for just one part in any location of that data for the sim to access. In any case, efficiency is improved. It does take some skill though to prevent collisions between the minions running through the pipes at intersections though :lol: .

Share this post


Link to post
Share on other sites

@Kyle: whether it is 1 processor of 50 processors doing the job, the point is a modern computer has more than enough horsepower to do what ALL those processors do per second compared to the hardware being simulated, with capacity to spare.

 

It's the old argument of this: is 5 processes running parallel faster than 5 processes running sequentially at 5 times faster than the time required?

 

e.g. Let's assume all processes take 10 ms to process on our parallel processor. Our parallel processor takes 10 ms to operate on 5 threads.

 

If our new sequential processor takes 2 ms to process each thread, and 10 ms total, is it slower? The answer is not as obvious as it first appears.

 

For the purposes of the kind of systems simulation we are doing, the answer is it makes no difference, but it depends on exactly what it is you're looking at.

 

Best regards,

Robin.

Share this post


Link to post
Share on other sites

Okay, but the problem is that both of your theories are neglecting the facts of FSX.

 

This is still FSX.  FSX is still limited by what's out there CURRENTLY.

 

So, while your theoretical debates are somehow impressive on their faces, they don't really get us anywhere.  We could certainly talk about the benefits of parallel versus sequence, or the theory of why apples are red, green, and yellow, but not purple.  Neither of those theoretical discussions are going to help us here, though.

 

The real aircraft is an entirely different beast than FSX.  You truly cannot compare them in terms of how data is processed and communicated, especially when it comes to the performance of the systems and processing.  Quit regurgitating theory that probably came from somewhere else and come with facts.  Facts are cool.

Share this post


Link to post
Share on other sites

Given that we are both programmers, I would hardly call this just plain theory...Not likely to lay bare the proof though as source code is rather precious.

Share this post


Link to post
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now
Sign in to follow this