NW.js had a raft of other issues that regularly caused all sorts of problems and we had to work around, notably including relying on an undocumented feature to support the Steam overlay (via a Chromium command-line flag) which broke shortly after we moved off it and it took several months for a fix - so that would have been a significant problem had we stayed with it, but nobody noticed as we had already moved off. There are still a bunch of outstanding issues that were filed long ago such as #6485, #7658, #7659, #7685 and #8162. Things that broke in the past include gamepads (more than once), WebGL, file dialogs/file system access, a whole bunch of crashes that never happened in real browsers, performance issues, and regressions. Other issues with NW.js include:
- Continued support for important features like Steam Overlay support relying on undocumented features that could break or be removed at any time without warning and with no workaround (at which point we'd probably be forced to move off to another technology anyway)
- Infrequent/poor enough maintenance that I suspect it may be retired at some point soon
- Bundling all of node.js significantly increasing architectural complexity for no benefit (as Construct no longer needs the node.js part at all), can cause weird bugs, and presenting a significant hurdle to conveniently integrating SDKs like Steamworks
- Bundling the entire browser engine with the game (adding 100-200MB of file size)
- Asset bundling relying on extracting a zip on startup, which is too slow to be usable for large projects - our own asset bundler is directly readable and so far more efficient on startup
- No support for bundling in to a single EXE file, as the latest release supports (with a small file size too)
In short from our point of view NW.js was kind of a nightmare to support, actually - it didn't "just work", it was a constant source of problems, had limitations we couldn't work around, and was risky as we had no way to guarantee long-term support for things like the Steam Overlay.
Contrast that to the current desktop exporters - as of the latest release we have support for the Steam Overlay, a pretty comprehensive Steamworks plugin using our own simple and lightweight extension system, support for file system access including accessing known folders like 'Documents', support for windowing features, support for pointer lock and gamepads (via GameInput for Steam on Windows, for the time being), a high-performance custom asset bundling format, support for exporting a small convenient single EXE file, and more. In short I think we do cover everything NW.js used to, and then gone further with additional improvements. There's a few things that would be nice if it was smoother, but overall I'm happy we made the change, and I think by now Construct's desktop exporters are in a better place than we had with NW.js.