Advanced SDK Urgently Needed for Aircraft Developers

Hello all! I wanted to share some thoughts regarding SDK development and the high level of importance that it has to the entire flight sim community. This will be a bit of a read, but want to provide some background information to frame my discussion.

I have been flight simming for approximately 15 years, since I was in my early teenage years. Flight simulation gave me a huge passion for aviation, even though nobody in my family has any involvement in flying. It was a window into the whole world of aviation that I am extremely happy for. That passion that it created led me to pursue aviation as a career, and now I am a professional pilot thanks to flight simulator. My first two years of flight simming I had no idea that there were “payware” type addons. I just flew the default airplanes and had a moderate amount of interest. Then around 2007 or so I made my first payware purchase, the Level D 767. Many of you that had FS2004/FSX back in those probably remember the aircraft well. That is what took my simulation to the next level, and really forced me to really dive in the books and become a better pilot.

With the release of the new MSFS, there is an enormous opportunity here. More people have now been introduced to flight simulator than ever before. The week of release, there were tens of THOUSANDS of viewers on twitch checking out the sim. There is a huge opportunity here for us as a community to multiply our size and player base exponentially, and to keep new flight simmers engaged. Being a real world pilot I have always tried to fly the most realistic payware aircraft possible. These give the most systems depth and I always look for a “study level” type simulation. I am not alone in wanting these “study level” planes in the new MSFS. There are thousands of other flight simmers just like myself that are waiting on the sidelines for our favorite developers to be able to create and release their aircraft. I do not have any personal development experience, but I have done a lot of research into this topic ever since the release of the new sim. I have great relationships with some of the developers and hear their thoughts and concerns with the SDK for the new sim. The trend has been very consistent from what I would consider the “Titans” of the “study level” industry such as A2A, PMDG, FSLABS, Leonardo(Maddog), etc. etc. The consistent message is that the SDK for MSFS is not yet advanced or matured enough to create the high fidelity true study level simulations that many of us love, and that keep people new to flight sim ENGAGED for the long run. Default level aircraft will typically only hold a new flight sim player’s attention for a few weeks, maybe months, but if our industry’s top notch developers can get a QUALITY SDK with detailed documentation in front of them so that they can get their products created and out the door, then that is going to provide content for people new (and old) to the industry to be able to enjoy.

I have experience with many sims over the years, and most recently have primarily flown P3D, and Xplane, like the majority of everybody else. There is a large number of us that purchased MSFS, enjoyed the beautiful visuals and weather for a couple weeks, and then went back to Xplane 11 or P3D because there are simply no study level aircraft available. The sooner that Asobo can get an advanced SDK in the hands of developers, then they can start getting products out to people so that they can get fully re-engaged back in the sim. I have recently come back to MSFS and tried both the FBW A320 and the Working Title CJ4, and they have really highlighted what the sim is capable of and just how beautiful of an environment there is to explore, but WE NEED SOME AIRPLANES! :smile: Not just any airplanes, but ones that our favorite developers can sink their full swath of resources into, thanks to an advanced SDK created by you. The developers need the tools that they require to get their content released. There are multiple developers that have visual models already fully done and ready to go, but they can’t do their advanced FMS/Electrical/Engine programming with the current state of the SDK. This should be an absolute top priority for Asobo to really turbocharge this community and help it keep up the momentum to grow with study level aircraft for years into the future.

TLDR: Asobo, you have done great work visually on this game. It is truly a visual masterpiece and I still can’t believe while I am flying on the CJ4 just how good it looks. I would have never thought 10 years ago that we would have had such a great looking simulator. Thank you for your efforts so far, but it is absolutely paramount that an advanced SDK be released to third party developers with good documentation so that they can release those true study level aircraft that so many of us enjoy, and that will keep people engaged on your sim for years.

There is also a pending wishlist post that could use some votes to help perhaps bring some additional attention from Asobo on this matter. I do wish a member of their team would give us some detailed feedback regarding truly what their roadmap is on getting the documentation and tools to developers that are needed.

https://forums.flightsimulator.com/t/put-more-effort-in-sdk-development/300454

23 Likes

Oh mate, such a long text wall. Let’s get to the point.

11 Likes

See TLDR I made at the bottom.

Yeah sorry, even that was too long for my eyes lol
I hope they help you somehow though

1 Like

I agree i was really excited in the sim for two days then lost interest because the lack of rotor craft.
Apparently the hold up in getting helicopters in the game is the SDK. the sim is beautiful but as i am a Commercial fixed wing pilot IRL flying fixed wing in the sim is a little mundane to me. Hopefully the problem will get resolved soon and we can see some great add-ons from third party vendors.

1 Like

From what I’ve learned talking to the FlyByWire devs, the SDK does have some limitations and bugs, but it is quite advanced already, and it is entirely possible to create study level aircraft with what we have. The issue is the devs themselves. I am not a developer myself, but from what I understand, many of the legacy P3D and FSX devs such as PMDG want to be able to simply port their current code to the platform, which right now is not possible. Aircraft such as the PMDG 737 or FSLabs A320 run much of their systems externally from the simulator, such as the flight model. MSFS does not allow this, however, the SDK does provide the tools to create just as advanced systems within the sim. It is not a case of the SDK being incomplete, its just that developers have not had the time to adapt to the changes that MSFS has brought. I believe the work that WorkingTitle and FlyByWire has done is proof to show that the SDK works fine.

14 Likes

I create add-ons myself and feel the SDK definitely needs more attention, at least the light row object for taxi lights seems to work properly now.

The advanced SDK is already available, with several limitations of course.

The third party developers just don’t see the financial benefit of rewriting their entire codebase in the new modern languages and prefer to sit around, exert their market influence, and get Asobo to add support for their dinosaur-era code, so they can resell you the exact same product once again.

The SDK’s of previous flight sims also had limitations, but the developers worked around them and made awesome addons. They don’t seem to want to do it again.

18 Likes

Yeah pretty much. This is detrimental to the MSFS ecosystem as a whole, because in general, focusing on backwards compatibility with legacy systems and code will always hold you back from innovation.

There are only a handful of relatively small issues that block progress with the SDK at the moment, but the SDK is still enough to create a “study-level” aircraft, as the community likes to call it (personally not a fan of the term myself - it is far too subjective).

20 Likes

:joy: lol…

I’ve always thought that the whole “modern” vs. “legacy” language debate is somewhat nonsensical. At the end of the day, all software is nothing more than zeros and ones and it doesn’t much matter which language was used to create it. Sure, JIT compilers can optimize for platform differences, but when we are dealing with a common processor architecture, such differences aren’t likely to be significant. Yeah, the architecture astronauts can argue all they want, but the end user isn’t going to care. Want to know why Microsoft went down the Javascript/HTML road? It had nothing to do with anything technical. It was simply because that’s what the college kids wanted to code in (because it was “cool” and didn’t require understanding pointers), so the decision was about nothing more than keeping Windows development relevant to the latest crop of developers.

While I agree that it is certainly possible to create high end aircraft with the existing SDK (modulo a few frustrating missing features), it isn’t as if porting existing add-ons to the new architecture is beneficial in any meaningful way. Javascript/HTML with Coherent Draw are cool and all, and if somebody were starting from scratch they might well want to choose that approach, but there is no compelling reason to throw out code that works and completely rewrite it just to use the shiny “modern” technologies. IMO, MS/Asobo made a mistake in not providing a path to easily port existing add-ons. WASM sucks, period, and that won’t change even if a “full” WASI layer gets implemented. The idea that it is useful for porting legacy code is a joke. Give developers back the ability to ship dlls with full access to the Windows API.

As a consumer, I’m not worried about add-ons crashing MSFS. I just want realism. The market will sort out sloppy products. Meanwhile trying to support cross-platform add-ons is a solution looking for a problem. Let the add-on developers decide for themselves whether they want to support cross-platform if and when the X-Box version releases.

So I tend to agree with the add-on developers who don’t want to rewrite their stuff just for the sake of rewriting it. It sucks, it is expensive, and if they end up doing it, it will only be because the market forces them to. Maybe consumers will benefit because a bunch of technical debt gets cleaned up in the rewrite, but the more likely scenario is what is happening now: developer response to the architecture will be tepid and the demand for highly realistic aircraft will be much slower being met than it otherwise would have been. Aircraft will still be more expensive than they otherwise would have been because they had to be redeveloped from the ground up. Moreover, since developers are being forced to front the costs (again) of developing new old aircraft, finances will play a huge role in what gets developed and when. Companies are likely to wait and make certain that there is a market before risking the necessary development funds. Unless and until X-Plane and PMDG markets are no longer viable, I suspect many developers will hold off entering the MSFS market.

The frustrating thing is that there is no good reason for this, beyond executive-level stupidity. Whether all add-ons work on X-Box isn’t going to affect that side of the market one iota. X-Boxers that buy MSFS are going to be first-time flight simmers and they aren’t going to understand the role of add-ons before they buy. In reality no serious simmer would buy on X-Box anyway because nobody wants to be stuck with hardware that they can’t upgrade. In the worst-case, I’m wrong and the X-box market will provide a real incentive for developers to invest in a rewrite. Meanwhile, add-on developers should be given the tools to effectively service MSFS customers in the only market that currently exists–which is PC.

3 Likes

Last night (about 24 hours ago), there was literally only 4 live stream on the entire Youtube streaming MSFS with less than 150 viewers in total.

You would think after a big update there would be more activity.

I imagine people will fly around the sim themselves to experience the update rather than watch someone else fly around on a stream

I think the main reason people watch MSFS streams is to learn…currently there isn’t much to learn now as the pace of airliner development is pretty slow and what needs to be learnt has probably already been learnt.

I imagine there will be an uptick in viewers once the CRJ releases as people will turn to streamers to watch the process of how to fly it.

1 Like

The majority of flight sim streamers are on twitch I would say.

I’ve said this elsewhere but I’ll say it here:
I’m a dev on a team working on an A330, and I’m also observing the Working Title team’s findings.

The SDK is at such a level where a complex IFR-liner can and has been produced (the Working Title CJ4). While there are bells and whistles missing from the SDK (contrails and some details) it is NOT a limiting factor.

I believe that PMDG can absolutely support a fully working 737 “study level” NG now, here, and immediately, if they were willing to re-code/animate it according to MSFS format. As Iceman said, the titans of payware “study level” aircraft are simply not willing to move forward on a new platform and only focus on legacy systems and code.

By the way. The SDK is NOT the same as the platform. An SDK shows you the path; the platform is the path itself. You can do many things on this platform just by trial-and-error testing, but that doesn’t mean the SDK will tell you. I agree the SDK is not finished but it is NOT the limiting factor. Payware titans like to shift the blame to Asobo when its really them not willing to re-program. Aerosoft is an exception to this, they have embraced the new platform and made a (hopefully) amazing CRJ.

11 Likes

As long as the SDK documentation has many parts on “TODO” there is still a lot of work to be done by ASOBO. Until all parts have been added (some areas are completly TODO) it is almost impossbile for some develpers (that are not in direct contact with ASOBO) to even start working on addons… Developers are “building” their own documentation by simple try and error within the Sim.

IMO ASOBO should but out a roadmap for the SDK (when will be added what feature/documentation)

BTW: This is not just for payware developers, same goes for any freeware developer - We all are waiting…

You mention you’ve been around for many years simming, and that you only noticed “study level” planes in 2007,

If that’s the case you should also remember what 2004/fsx xplane & p3d was like running vanilla compared this simulator, don’t get me wrong I would love some proper study level planes but what I’m trying to say is if you go back through all simulators and look where they was this far into release, you’d probably find this is leaps and bounds ahead, and people seem to forget that, and the 2 major players in p3d which let’s not forget is based purely on fsx code, and xplane there are great study level planes but not in comparison to p3d

Some of the developers seem to be reluctant to learn the new scripting and would rather copy and paste

2 Likes

I cannot possibly disagree more with this statement. As the furthest thing from a language apologist or fanboy (and having cut my teeth on C and C++, and using those and a half dozen other languages professionally over the course of my career), there are absolutely significant iteration time advantages to the new technology stack. We’ve been able to do as much as we have with Working Title due in no small part to just how amazing the tooling and workflow is compared to having to wait out endless compiles and builds and coding Yet Another Presentation Framework in C++ (saying this as someone who really thinks fondly of my C++ days).

If I don’t like how something is displaying, I don’t have to go back into the code and change the pixel dimensions or rewrite my button display class (again) and wait for a DLL to build and then reload the plane. I can literally edit the CSS in real time and watch the whole thing update right now.

There’s no real reason for airplanes to need to have the entirely of Win32 as their API surface, that’s just not feasible in today’s (quite correctly) security minded times. Look at the shelling CDPR took for having effectively that available for mods. It’s a security nightmare. No application that’s sane should allow complete untrusted code execution.

Is there value in porting code just for porting’s sake? Not especially, I agree. But that being said, technology is always progressing. Crusty old code that relies on various goofy sim quirks and splats data into sim memory addresses is not something that should be part of any simulator platform. At some point a new crop of developers is going to spring up (like ourselves) who outpace the old guard and really embrace the platform, instead of relying on the same wacky simulator tricks from a two decades old product.

I really, really want to see the most positive and thriving third party ecosystem possible, and as such I really hope that change is embraced so those great companies who have taken us so far in this hobby don’t go by the wayside. There’s room for everyone but the pace of development and how fast you can innovate will be the key factor.

What everyone always misses is that the new technology stack makes aircraft development so much more accessible to those with less acutely refined developer skillsets. This can only mean that those folks who might be fantastic aviators but otherwise lack the knowledge to write a plane in C++ from the ground up can now enter the space, and that is so amazingly awesome I’m surprised it doesn’t get more lip service. There’s no value in making this stuff hard to do: quite the opposite: developing a plane should be something that is available for anyone, and this stack brings that reality quite close.

-Matt

23 Likes

And its going to get worse if there aren’t some 3rd party aircraft soon

The “TODO” fields you see in the documentation just means that the documentation itself hasn’t been written, not that it doesn’t already exist in the SDK. For example, HTML gauges in the docs are listed as “TODO,” but it is quite easy to look at existing code and provided samples and figure it out yourself. Obviously, it’s convenient to have proper documentation, but not necessary for any half-competent developer to figure it out.

8 Likes