Flutter Web use WebAssembly renderer, deprecate and remove the HTML renderer.

0 favourites
  • 2 posts
From the Asset Store
Customize the animation of character when item changed
  • Flutter is Google's framework for crafting native interfaces on iOS, Android, web, and desktop. I just stumbled across this news:

    medium.com/flutter/whats-new-in-flutter-3-22-fbde6c164fe3

    Although I am not a fan of the latest technology, the performance comparison between WebAssembly renderer and Canvas renderer is very interesting. Does this mean that C3 can have another option to try when exporting to multiple platforms?

    and I recall that when C3 runtime was first released, Ashley discussed the choice of WebAssembly in this blog - The future of the Construct 3 runtime(2017). I wonder whatAshley thinks about this, 8 years have passed, does you have any new views?

    Oh, It seems that there will be force majeure compatibility issues.

    All browsers on iOS are required to use WebKit, and can't use their own browser engine.

    docs.flutter.dev/platform-integration/web/wasm

    <Apple broke WebAssembly and are leaving it broken>

    Here are some additional articles about flutter

    link 1: ☂️ Intent to deprecate and remove the HTML renderer in Flutter Web #145954

    link2: Flutter Docs: Web renderers

  • Try Construct 3

    Develop games in your browser. Powerful, performant & highly capable.

    Try Now Construct 3 users don't see these ads
  • I don't think what Flutter does is that applicable to Construct - it looks like a very different thing, being primarily a native-based framework using the Dart programming language, and having the option to compile for the web. That makes it a very different situation to a web-first framework like Construct. For example perhaps Flutter fundamentally works by running their own programming language and outputting directly to a surface of pixels, and everything else (input elements, text rendering, layout, interactivity etc.) they built themselves on top of that. In that case, it may well be easier to make a web port by ditching HTML/JS/CSS and compiling Dart to WebAssembly that outputs to a canvas element as the surface of pixels. However I believe that would be a poor move for any web-first framework like Construct. HTML and CSS provide superpowers for layout, styling and interactivity. For example something as seemingly straightforward as a text input field is actually a formidable project, as described in this blog - it is far, far better and easier to just use a HTML text input field.

    Is WebAssembly faster than JavaScript? There's a great blog post on the subject: Is WebAssembly magic performance pixie dust?. tl;dr - the answer is basically "no". Carefully written high-performance JavaScript is basically just as fast, and avoids any performance overhead of having to transfer things into and out from a WebAssembly module, and we've spent years carefully tuning our codebase for maximum performance. For example despite the fact GameMaker's GML language is compiled to C++, JavaScript is way, way faster. You don't have to use WebAssembly to do that. It may well be the case that Flutter previously had a pretty inefficient Dart-to-JavaScript compiler, and found that converting Dart-to-WebAssembly produced better results - in that case it may well be good for them and something they will highlight, but it still has little relevance to a tool like Construct.

    WebAssembly excels at using smallish C++ modules on the web. We've used WebAssembly for Construct's physics engine for years, as the original Box2D engine was written in C++. We also use WebAssembly in the editor for converting and optimizing PNG, WebP and AVIF images, as well as transcoding audio. So we do make use of WebAssembly, but just in the few areas it's best suited for.

Jump to:
Active Users
There are 1 visitors browsing this topic (0 users and 1 guests)