Refocus export direction? Webview2 no longer has plans for Linux or Mac support.

0 favourites
  • 6 posts
From the Asset Store
Controller Support ,TouchScreen Support , Keyboard Support , Action Platformer, Lots of Animations
  • Should C3 refocus the export options for desktop/steamdeck? Webview2 no longer has plans for linux or mac support.

    nw.js and electron support windows, mac fat binary, linux/steam, so seem like good candidates, as far as I know, only nw.js/electron windows really supports overlays

    Other options, Tauri?

    In terms of steamworks support which is somewhat related to export, greenworks has started updating again with later versions of nw.js, which is nice. Greenworks and Greengrinds addons work with this.

    Another option is:

    github.com/ceifa/steamworks.js

    Which works well on electron (and can be compiled for nw.js with a few hacks). It has more features vs greenworks and is actively supported. Electron supports overlay on windows. Another benefit of this build is that it is agnostic in terms of recent nw.js releases, you don't need to update with every new release.

    MS notice on cancelling Mac and Linux dev for webview2:

    github.com/MicrosoftEdge/WebView2Feedback/issues/1314

    Thanks to Salman_Shh for pointing out this post.

  • I saw the news about WebView2 and it is disappointing - it would have been great to have WebView2 running on Windows, macOS and Linux. It'd have been a consistent approach which makes it as easy as possible to port between platforms with a broad feature set. Unfortunately Microsoft kept us waiting for a few years promising future support before then retracting that, so we had worked on a long-term plan that isn't going to work out any more.

    I have been considering our options for the long term. I would prefer to ultimately move away from NW.js and Electron. The whole node component of these frameworks is both redundant and a major complication to supporting things like Steamworks. The node APIs are really complicated and difficult to maintain - I'm not sure what the situation with Electron is, but for NW.js every native addon has to be recompiled for every new version, which makes maintenance way more painful than it needs to be. Maybe things would be a bit better with Electron, but we'd still have node sitting in between native code and web code which makes everything harder. This blog outlines how the Windows WebView2 exporter is our ideal architecture: node is not involved at all - it's basically a webview that talks directly to our own simple extension system that involves posting JSON messages, and means we can write our own native integration with things like Steamworks, and they are forwards compatible so require minimal on-going maintenance. It's much much nicer than having to deal with node and our hope was to roll that out to macOS and Linux too.

    On macOS we already have the WKWebView export option, and it's possible we could add our extension system for that export option too. I was hoping to use WebView2 as it uses the Chromium browser engine and has better features for things like file system access. We could probably set that up and work around the missing features, although it will be more difficult.

    These days I think Linux support is actually more important, as it's what we need for Steam Deck support. NW.js does the job there for now. But we could perhaps look in to using something like WebkitGTK to essentially build a custom in-house wrapper for Linux, and then integrate our extension system for things like Steamworks support. This is a significant project and I don't have much Linux development experience so I'd have to get up to speed on that, but I think that's our most likely future direction, as a minimal in-house wrapper like we have with Windows WebView2 is actually much easier to customise and maintain. This is all long-term stuff though - it may be months or perhaps a year or two before anything appears on this front. For the time being we'll get by with NW.js.

  • It would be great to have the thinner versions of standalone executables, I do hope that this improves. I think someone in thread also mentioned github.com/servo/servo (will start taking a look at this myself.)

    At least webview2 got us a path to publishing to xbox (even though restricted to Creator instead of the main game store, due to MS limitations.)

    In terms of the issue of requiring specific versions of greenworks for specific nw.js versions (and electron versions), I have found that steamworks.js does not have this limitation for both nw.js and electron. One compiled binary works for various recent versions of nw.js and electron. It is also under active development. I have a fix to make it work with nw.js (and will make a PR for rs package that needs the change.)

    It has more features compare to greenworks. Perhaps create an open source version addon for it? I have a start of one that I used for experiments.

    github.com/ceifa/steamworks.js

  • Is the plan to have one export option for each platform, but with a unified extension system ?

    - MS WebView 2 for Windows

    - WKWebview for MacOS

    - Custom wrapper from WebkitGTK for Linux

    But all of them would support the same extension system as MS WebView2 already supports ?

    Would the custom Linux wrapper help for Steamdeck support ?

  • Yes, broadly speaking that's the plan. We're currently working on a new Linux wrapper with the long-term aim of improving support for the Steam Deck by using the same extension system as WebView2 to provide Steamworks integration. If it works out, we'll then likely extend the extension system to macOS WKWebView as well. After that (very long term here) I'd want to drop support for NW.js if possible, but that depends on any outstanding compatibility issues. But if our own custom wrappers can do everything NW.js can, and with easier maintenance and better customisability, then I don't think there's any reason to continue supporting NW.js. But anyone using NW.js now shouldn't worry - this is long term speculation, we're going to keep supporting NW.js for a while yet and only switch over if we have new options that cover everything people want.

  • Try Construct 3

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

    Try Now Construct 3 users don't see these ads
  • Lol I'm already hyped even though it's long term! Very motivating and useful to know it's on the cards (assuming all goes as planned!).

    You can count on me as a tester for Linux! I found nwjs to be poor performing on Linux, despite investigating this and changing nvidia drivers around and such, yet same device booted into Windows, nwjs works perfectly fine.

    But yes, if I'm understanding correctly, this makes it a unified plugin system for all 3 desktop builds? If so, I imagine this makes it more alluring for addon devs to explore and make other third party addons (moreso addons that interact with, for example, other software installed on the device).

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