Jump to content

Sign in to follow this  
Dominique_K

WebAssembly

Recommended Posts

Hey, @Lorby_SI¬†@SteveW¬†a little¬†refreshing course for your fellow simmers would be welcome here¬†ūüėɬ†!

We also made lots of progress on WebAssembly support, which is the technology that will allow the porting of native code to our platform.

  • Upvote 2

Dominique

Simming since 1981 - Prepar3D v3 on a 4770 @ 4.4 GHz and a 1080 @ 2560*1440 - Warthog HOTAS - MFG pedals -

 

Share this post


Link to post
Share on other sites
Posted (edited)
2 hours ago, domkle said:

Hey, @Lorby_SI¬†@SteveW¬†a little¬†refreshing course for your fellow simmers would be welcome here¬†ūüėɬ†!

We also made lots of progress on WebAssembly support, which is the technology that will allow the porting of native code to our platform.

Hello Dominique,

Sorry, can't really comment on this. As the snippet says, the WASM integration is not there yet. So there is no way of knowing what the actual implications will be.

https://webassembly.org/

This is pure programmers stuff. Speculating now: it will probably affect (replace?) all programmatic content (gauges, systems simulations, tools) that previously ran as a DLL inside of the simulator. Or something equivalent to the P3D PDK (=low level access to certain internals of the sim). But I really don't know.

Best regards

Edited by Lorby_SI
  • Like 2

Oliver Binder

LORBY-SI

Share this post


Link to post
Share on other sites

Interesting to note the reference to the new aircraft editor. Presumably this will be along the lines, if not better, than the one already available in another flight sim?


Give people power to really test their personality.

Share this post


Link to post
Share on other sites

Normally we might program a web page with java script to do something, maybe run a game. That web page code can be run in a browser with the html or on the browser core with COM manipulated by a third party program. So that we see it in the browser or we see a window with perhaps a game run from a third party program, the same web browser core is in use. Very simply WebAssembly is a way to use the web browser core to run software written in regular languages rather than web code like javascript. This will be using the hardware available in the same way a desktop program will use it so as to be capable of best performance possible. Being on the web, the process already has good access to client server functions, for example being connected to Azure or some multi-user back end.

  • Like 2
  • Upvote 1

Steve Waite: Engineer at codelegend.com

Share this post


Link to post
Share on other sites
6 hours ago, domkle said:

Hey, @Lorby_SI¬†@SteveW¬†a little¬†refreshing course for your fellow simmers would be welcome here¬†ūüėɬ†!

We also made lots of progress on WebAssembly support, which is the technology that will allow the porting of native code to our platform.

Thanks Domkle for creating the new thread, I asked this question in the main update thread last night, but no one answered my question.


Main PC: AMD Ryzen 3800X, GIGABYTE X570 Auros Ultra, 32GB DDR4 3200 MHz RAM, Samsung 850 EVO 500GB SSD, SAMSUNG QVO (1TB) SSD, 2 * 1 TB M.2 2280 Nvme SSD, Toshiba (4TB) HDD, WD (2TB) HDD, PALIT GTX 1070* 8 GB vRAM, CORSAIR H100i GTX Water cooler, SAITEK X55 JOYSTICK/THROTTLES, SAITEK YOKE, 2 * SAITEK throttles, SAITEK PEDALS

*Money from Grandstand seating from Silverstone F1 due to race being cancelled refunded and transferred to 30xx fund.

Share this post


Link to post
Share on other sites
Posted (edited)
1 hour ago, SteveW said:

Normally we might program a web page with java script to do something, maybe run a game. That web page code can be run in a browser with the html or on the browser core with COM manipulated by a third party program. So that we see it in the browser or we see a window with perhaps a game run from a third party program, the same web browser core is in use. Very simply WebAssembly is a way to use the web browser core to run software written in regular languages rather than web code like javascript. This will be using the hardware available in the same way a desktop program will use it so as to be capable of best performance possible. Being on the web, the process already has good access to client server functions, for example being connected to Azure or some multi-user back end.

Thank you,  Steve and Oliver. So far I am with you (or I rather presumptuously think so). Lets suppose we have an avionics gauge written in C++ . Why would you use WASM to port it into a web environment ? Where would be the web environment in the future FS20 ?

Don't laugh at me if these questions don't make sense (don't laugh too hard anyway) and feel free not to answer if you would breach a NDA.

Edited by domkle
  • Like 1

Dominique

Simming since 1981 - Prepar3D v3 on a 4770 @ 4.4 GHz and a 1080 @ 2560*1440 - Warthog HOTAS - MFG pedals -

 

Share this post


Link to post
Share on other sites
6 hours ago, domkle said:

We also made lots of progress on WebAssembly support, which is the technology that will allow the porting of native code to our platform.

From that I believe we can deduce:

The new MSFS SDK will mainly support custom code in high level, interpreted or JiT compiled languages. Maybe C# like Unity? Maybe Typescript?
That was probably done to increase system stability, so that a bad add-on wont crash the entire sim
However, the companies wanting to do a quick-ish port probably pushed back on that decision, leading to Asobo having to figure out a way to run legacy code in a sandbox
WebAssembly is one way to do that. Ignore the "web" part; it supports non browser embeddings.

  • Like 2

Share this post


Link to post
Share on other sites
1 minute ago, nickhod said:

From that I believe we can deduce:

The new MSFS SDK will mainly support custom code in high level, interpreted or JiT compiled languages. Maybe C# like Unity? Maybe Typescript?
That was probably done to increase system stability, so that a bad add-on wont crash the entire sim
However, the companies wanting to do a quick-ish port probably pushed back on that decision, leading to Asobo having to figure out a way to run legacy code in a sandbox
WebAssembly is one way to do that. Ignore the "web" part; it supports non browser embeddings.

Thanks Nick, the pieces of the puzzle come together now.


Dominique

Simming since 1981 - Prepar3D v3 on a 4770 @ 4.4 GHz and a 1080 @ 2560*1440 - Warthog HOTAS - MFG pedals -

 

Share this post


Link to post
Share on other sites

The regular browser is just a facility to use the same functionality.

A third party program can use the core in its own window.

In this case below an application is giving access to the VATSIM prefile page without the user having to run their browser and navigate. The form is pre loaded with instructions because the full web functionality is available without a browser running:

vatsim.jpg

These techniques are evolving so that complex systems become easier to program. The same window could show a complicated gauge with or without connection to internet resources with full access to the hardware 3D graphics, sound and so on.

  • Like 1

Steve Waite: Engineer at codelegend.com

Share this post


Link to post
Share on other sites
50 minutes ago, nickhod said:

From that I believe we can deduce:

The new MSFS SDK will mainly support custom code in high level, interpreted or JiT compiled languages. Maybe C# like Unity? Maybe Typescript?
That was probably done to increase system stability, so that a bad add-on wont crash the entire sim
However, the companies wanting to do a quick-ish port probably pushed back on that decision, leading to Asobo having to figure out a way to run legacy code in a sandbox
WebAssembly is one way to do that. Ignore the "web" part; it supports non browser embeddings.

That makes a lot of sense I think. Historically, allowing addons to run as unchecked code in the FSX process has been a source of stability problems - and when there's a crash, it can be hard to say what caused it.

Another reason could be future proofing. The code for FSX addons is tied to a particular processor architecture - Intel x86. WebAssembly runs on other processor architectures too, so it would allow an MSFS addon to run on a new architecture without having to recompile it.

Share this post


Link to post
Share on other sites

From what I've been reading, and depending on how you look at it, there is a bit of a downside to WebAssembly. In the past, most devs who have made any even remotely complex aircraft have needed to write hooks to read values that the game does not expose. As WebAssembly modules run in a sandbox environment, I believe this significantly limits what a programmer can do outside of the API. This is great, as it prevents malicious activity. It's also bad, as it could limit innovation and really specific types of add-ons from being possible.

That said, if Asobo provides a proper API for all of the stuff devs have had to hook in the past (ex. weather and terrain data to create weather radar and terrain radar), it shouldn't be much of an issue.

  • Like 1

Brandon Filer

Share this post


Link to post
Share on other sites
6 hours ago, eaim said:

Thanks Domkle for creating the new thread, I asked this question in the main update thread last night, but no one answered my question.

Well, I answered you just a few hours ago, but you haven't read it yet... I basically same the same things that nickhod and Steve W wrote.

  • Like 1

Fr. Bill    

AOPA Member: 07141481 AARP Member: 3209010556

Interests: Gauge Programming - 3d Modeling for Milviz

Many Thanks to All That Donated To Our Server Drive!

Share this post


Link to post
Share on other sites
1 hour ago, n4gix said:

Well, I answered you just a few hours ago, but you haven't read it yet... I basically same the same things that nickhod and Steve W wrote.

I did read it, I then had to go out, thanks anyhow for answering.


Main PC: AMD Ryzen 3800X, GIGABYTE X570 Auros Ultra, 32GB DDR4 3200 MHz RAM, Samsung 850 EVO 500GB SSD, SAMSUNG QVO (1TB) SSD, 2 * 1 TB M.2 2280 Nvme SSD, Toshiba (4TB) HDD, WD (2TB) HDD, PALIT GTX 1070* 8 GB vRAM, CORSAIR H100i GTX Water cooler, SAITEK X55 JOYSTICK/THROTTLES, SAITEK YOKE, 2 * SAITEK throttles, SAITEK PEDALS

*Money from Grandstand seating from Silverstone F1 due to race being cancelled refunded and transferred to 30xx fund.

Share this post


Link to post
Share on other sites
17 hours ago, domkle said:

porting of native code to our platform

That is false unless it's very simple processing or one interprets "porting" very very loosely.  I thought we're not supposed to talk about this level of detail here per NDA?

Cheers, Rob.

Share this post


Link to post
Share on other sites
33 minutes ago, Rob_Ainscough said:

That is false unless it's very simple processing or one interprets "porting" very very loosely.  I thought we're not supposed to talk about this level of detail here per NDA?

Cheers, Rob.

He's quoting the latest update from Asobo, so the statement itself isn't covered by the NDA.

Share this post


Link to post
Share on other sites
Guest
This topic is now closed to further replies.
Sign in to follow this  

  • Tom Allensworth,
    Founder of AVSIM Online


  • Flight Simulation's Premier Resource!

    AVSIM is a free service to the flight simulation community. AVSIM is staffed completely by volunteers and all funds donated to AVSIM go directly back to supporting the community. Your donation here helps to pay our bandwidth costs, emergency funding, and other general costs that crop up from time to time. Thank you for your support!

    Click here for more information and to see all donations year to date.
  • Donation Goals

    AVSIM's 2020 Fundraising Goal

    Donate to our annual general fundraising goal. This donation keeps our doors open and providing you service 24 x 7 x 365. Your donation here helps to pay our bandwidth costs, emergency funding, and other general costs that crop up from time to time. We reset this goal every new year for the following year's goal.


    22%
    $5,585.00 of $25,000.00 Donate Now
√ó
√ó
  • Create New...