The future of Greenworks addon

1 favourites
From the Asset Store
Data+ is the best Data Management solution for Construct 3. It contains 4 Addons (Plugin & Behavior).
  • Ashley

    The latest Greenworks addon for C3 works with NW.js version 0.71 and Steamworks SDK 1.50, both of which are pretty outdated. And looks like the Greenworks project has been abandoned, so there will probably be no new versions.

    It's quite worrisome that in order to make games for the largest gaming platform we have to rely on a bunch of old libraries which may stop working with any new C3 or Steam update.

    Do you have any plans on releasing an update to Greenworks or making a new Steam addon with more features?

    Tagged:

  • Try Construct 3

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

    Try Now Construct 3 users don't see these ads
  • I'm interested in it too. I would not like the Steam to disappear, like the consoles

  • I've been thinking about the future of the desktop exports, especially as I'd like to support other stores like the Epic Games Store too, but the current approach of relying on the current set of third-party tools isn't working out (as noted Greenworks is essentially abandoned and I don't believe any Epic Games equivalent exists).

    TBH I'd prefer to move everything over to the Windows WebView2 export option. I've been impressed with how well WebView2 works, and it has the official backing of Microsoft, who have a lot more resources than the NW.js team (who seem to have been struggling to fix even serious regressions lately). It would be more feasible to develop our own Steam/Epic integration for the WebView2 export option as we already have a custom container app around the WebView2 control.

    The only downsides are:

    • Currently WebView2 is Windows only, but:
      • their roadmap does say macOS and Linux support is planned
      • Our stats show the vast majority of NW.js exports are for Windows anyway, so maybe it doesn't matter
    • The Steam Overlay doesn't appear with WebView2 apps, and the command-line workarounds for NW.js don't seem to work for it. I already reported this to Valve, but there's been no progress yet (and my past efforts to get them to fix things have been fruitless, which is why there's a bunch of quirks with NW.js that Valve never fixed).

    So it's a bit of a mess, but so long as the existing stuff keeps working I don't think there's any major urgency. As ever it's also a lot of work whichever path we take and with our limited resources we'd have to delay or cancel some other planned features or tasks to work on this. I'd be interested in thoughts on using Windows WebView2 for Steam publishing, assuming we got it to work - would the lack of macOS or Linux support be significant?

    I'd add it should be possible for third-party developers to step in too - there's nothing stopping a third-party developer (or contracting someone to do the work if it's that important) to write the necessary integration for the existing NW.js export. That includes forking and updating the existing Greenworks code which should provide a fairly mature starting point.

  • Thanks for the detailed answer!

    Yeah, with the new File System plugin the NWjs kind of becomes obsolete. I would switch to WebView2 if it had Steam support.

    EDIT: I just realized that File System plugin only has access to "picked" files. This is a big limitation. I haven't seen games which display a system file picker dialogue in ages, it will look very unprofessional!

    I'd be interested in thoughts on using Windows WebView2 for Steam publishing, assuming we got it to work - would the lack of macOS or Linux support be significant?

    I think it is significant. Large publishers want to cover all platforms, it will be a big problem if the game doesn't work on MacOs. There is also a growing number of Steam Deck players, so Linux support is pretty important.

    I'd add it should be possible for third-party developers to step in too

    Yeah, I was going to ask - maybe you could team up with someone like Chadori or Mikal to develop a new Steam addon?

  • Yeah, I was going to ask - maybe you could team up with someone like Chadori or Mikal to develop a new Steam addon?

    It's an option (or just bite the bullet and do it myself), but for the time being I want to see what happens regarding WebView2 support, as that would change the direction we go in.

  • I usually don't do Mac exports, but I always do a Linux version (statistically there are more Linux Steam users than Mac), especially nowadays with Steam Deck.

    I haven't tested WebView2 yet, but I think there are a few main things to consider:

    1. The obvious Steam overlay and SDK support.

    2. File handling should have more features. Getting the OS %USER% and %APPDATA% directory and saving/loading files directly to them without having to select the folder manually.

    This is crucial for Steam cloud save support and for managing local game data.

    3. It should work well with video capturing apps, such as OBS and the built-in Nvidia recorders. I'll point out that capturing from NWjs is smoother than from a chrome browser. Not sure why that is.

    4. Control over the window, such as setting the window size or starting the app maximized.

    5. Fullscreen command should work without user input.

    Last but not least, performance should be at least equivalent to NWjs.

  • WebView2 with Linux/MacOS support in future sounds very promising!

    But until then, to lose Linux support would be a big deal, as mentioned with Steam Deck and such.

    EDIT: I just reread what Ashley wrote and realised its likely pointless to spend time implementing other export just to eventually move yet again.

    Would Electron be a worthy temporary solution until WebView2 is supported on all desktop OS's? Though I guess this would just move us to a bunch of different potential issues, or maybe even the same exact issues as NWJS. Or maybe another alternative altogether, just to tide us by if NWJS is not seeming to resolve major issues?

  • If the steam overlay in WV2 does not work, it turns out that remote play together will not work? This, of course, is not very good

  • So potentially there will be no steam or Epic for Construct 3 in the future?

    Yeah web tech is truly awesome :D

  • So potentially there will be no steam or Epic for Construct 3 in the future?

    Yeah web tech is truly awesome :D

    I don't think that's what's been said.

    Ashley's reply says "It would be more feasible to develop our own Steam/Epic integration for the WebView2 export option" and such, and the consideration of them creating their own Greenworks fork. Seems their goal is to support Steam PLUS more store options.

  • Would Electron be a worthy temporary solution until WebView2 is supported on all desktop OS's? Though I guess this would just move us to a bunch of different potential issues, or maybe even the same exact issues as NWJS. Or maybe another alternative altogether, just to tide us by if NWJS is not seeming to resolve major issues?

    I don't understand why you decided to discard this idea. Electron is still the industry leading standard and widely used to distribute desktop apps with many active developers and guaranteed long-term support because of its community.

    Node Modules which the Greenworks addon relies on aren't supported by Webview2 either. I'm not aware of any alternatives besides using the feature incomplete Steam Web API.

    Ashley I'm aware that this could be one of those "grass is greener" situations but has this ever been on the radar for Scirra? Electron is feature complete, supported by Greenworks and has on-par performance with Webview2.

  • > Would Electron be a worthy temporary solution until WebView2 is supported on all desktop OS's? Though I guess this would just move us to a bunch of different potential issues, or maybe even the same exact issues as NWJS. Or maybe another alternative altogether, just to tide us by if NWJS is not seeming to resolve major issues?

    I don't understand why you decided to discard this idea. Electron is still the industry leading standard and widely used to distribute desktop apps with many active developers and guaranteed long-term support because of its community.

    Node Modules which the Greenworks addon relies on aren't supported by Webview2 either. I'm not aware of any alternatives besides using the feature incomplete Steam Web API.

    Ashley I'm aware that this could be one of those "grass is greener" situations but has this ever been on the radar for Scirra? Electron is feature complete, supported by Greenworks and has on-par performance with Webview2.

    Very good point, later this year when my finances are better, I was planning to spend money for a 3rd party dev to create a node module addon, they've looked at this and said they can do it, but I did not consider this at all - that I could pay for this but subsequently lose this and all ability to achieve what this plugin could achieve if WebView2 was the only export option. (If nwjs was deprecated but still possible to export to, then, well, I would rather not use it, I want to be up to date and using the most recommended approach that works best - but then no node modules...).

    It's all tricky to think about, my project in particular is over a year in, and heavily relies on NWJS plugin. I could move it all to file system plugin but that's a huge project in itself since the actions/conditions are not one-to-one replacements. I wonder if electron would be pretty much identical to NWJS with it's read/write actions and such.

  • my project in particular is over a year in, and heavily relies on NWJS plugin. I could move it all to file system plugin

    I thought this too, but from what I understood, the File System can only work with files the user has picked. It's a huge limitation. Unless it works differently in WebView2 export, I don't see how it can be used in a commercial desktop game.

  • TheRealDannyyy - Electron is architecturally pretty much the same as NW.js and so has the same shortcomings. These days the node.js layer of NW.js/Electron is pretty much entirely redundant, which makes it more or less deadweight and a significant and unnecessary complication for integrating features like Steam support which have to go through this layer. It also seems to have the limitation that you have to rebuild the addons for every new node/Chromium build which is a real PITA - most of the time you can just write something and it keeps working long-term, but this means it quickly goes out of date without constant active maintenance.

    Compare that to WebView2 where we already have our own simple, minimal C++ wrapper, which we could directly integrate with the Steamworks API - no middle layers and it wouldn't need updating with every version. IMO that's a much nicer architecture and puts us in full control of the Steam integration.

    However rest assured that nothing will be deprecated or removed until there is a suitable replacement - I think we will have to keep using NW.js and node addons for the time being, until at least things like Steam Overlay support and unrestricted file system access can be implemented for WebView2.

  • Interesting and useful to know, I'll stick to decision to pay for the development of that nwjs node module plugin. It does sound much cleaner with Webview2 overall, hopefully it evolves soon enough.

    Lacking the knowledge of how this all works, don't suppose there's any sort of interactivity between Webview2 and the local machine, similar to how "node modules" provides interactivity beyond the NWJS window?

    The node-module plugin I was hoping to acquire would essentially communicate with a local application that the user would have running in the background (the app coming from an official company).

    Again I lack the knowledge, but lets assume this company provides a C++ API to communicate with their official local app. Could there be a way for C3 Webview2 exports to take advantage of this and allow us to do API calls through C3 events, thus communicating with an application on the user's local machine?

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