Guide: Fix Jank in r190+ Node-Webkit Export

0 favourites
From the Asset Store
You can become a REAL game developer. Learn the basics and get resources that will let you get profits from your game!
  • It's looking like we are a long way from a smooth running version of node, short of using 10.5.

    It's very disappointing, because it infers all those clever people working on chromium... didn't even play test games on it, else they would have noticed the obvious stutter.

    I was showing my C2 build preview on chrome to my nephews the other day, first time they seen it... 5 seconds in, they said "its a bit jerky, whats wrong?"...

  • I just don't get why this isn't farther up the priority list. I thought Google wanted us to move toward rich web, cloud computing, and browser based why is this fundamental display glitch still around?

    I really don't have anything against the devs, and it may very well be a difficult problem to solve. I'm just baffled that this hasn't commanded a higher priority.

    When simple games drop frames on a powerful laptop/desktop, it's hard not to come away with the impression 'This isn't ready for prime time'. It reflects bad on us -- the developers trying to create content to power the rich web -- and in doing so, damages people's perception of the browser as a new kind of OS, one of Google's primary goals.

    It's frustrating because it feels so damn close with Canary...

  • Prominent

    I'm 99% sure that the same approach would work with the mac and linux exporters. Basically, delete the contents of the new mac32 or linux32 folders, copy in the files from the old. There are no 'old' 64bit exporters, as chromium 35 didn't have a 64bit version.

    I can't test on mac, and I haven't tried yet on linux, so if either one works, please let us know.

    Be aware that node-webkit on linux is still suffering from a missing dependency on newer versions of linux. My understanding is that this problem will be around for awhile yet. See here for more details: ...

  • TiAm , that seems a bit outside my understanding. I guess I'll have to wait to release on those platforms.. Or just release the jittery versions and update them later when things are fixed.

    I don't know what files to replace. Would it work if I reinstalled the old version of construct that used the 10.5 node, and then copy those.. then reinstall the new construct2, and then paste over them? Or are there specific files I need?

  • Prominent

    Just look at my original post. All you would be doing is copying the mac files instead of the ones for windows.

  • TiAm , alright, I replaced the osx32 files, and I had a friend test it on his mac. It worked for him, so I assume it was successful!..

    I still have to find someone to test the linux version.. but the issue about the missing dependency for newer versions of linux is worrisome as I'm not sure how to create that shell wrapper thing- if that can be done in windows, or if I need linux to do that?.. if I release on linux, would that be required?

  • Prominent

    You cannot release for Linux until the dependency on the obsolete library is fixed in newer NW versions. If you want to, you have to follow their tweak to fix the problem.

    Currently, the export as is without the fix, is broken on many Linux OS and has been broken for a LONG time now.

  • Alright, thanks for the help guys..

    I managed to get it running on windows/osx/linux with node-webkit 10.5

    I used Hexedit to change the 0 to a 1, allowing it to run on newer distributions of linux.

    At this point, I am prepared to release the game, but will spend a little time seeing if I can polish anything else or improve anything that could use improving.

  • Would you be kind enough to write a little "how to" thread so we all know how to export for linux? That would be a fantastic christmas gift : )

  • Aurel , I'll write one based upon what I understand, which probably isn't much, but it might be useful to some who are a bit hesitant/unsure about it. Give me a few moments to write something up.

    edit: alright, here is a link to the thread describing what I did..

  • Been following the numerous threads on this whole chrome stutter thing.

    Since we target Windows 8 we use IE for all testing.

    Now due to the holiday break I decided to run one of our games in Chrome, and - the stuttering, whaattt!!! - Chrome is completely broken.

    The fact that this has been going on for months now, and still hasn't been addressed by the big guns does not (IMO) bode well for our chosen dev tool - C2.

    Either Google don't care, can't fix it, or the problem lies only with C2 builds - either way it leave all Devs in this circle in a precarious position.

    Sadly since Node depends on Chrome, export to desktop is also flawed.

    This is a crying shame, give the brilliant work-flo of C2, and its very quick update cycle, only to be ruined by third party requirements.

    This could be the first time in history, where you have to display a banner in your game that reads: "You are running your game in Chrome. Please note that this game requires IE for smooth performance!"

  • Try Construct 3

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

    Try Now Construct 3 users don't see these ads
  • Like you, plenty of other people have noticed this problem and have reported it to Google as well. It does beg some serious questions about the risks of being totally reliant on unpaid 3rd parties for the quality of your work... The bug report here has been progressing slowly.

  • michael

    Chrome is the dominant browsers, for Win 7/8, so its the goto browser for testing for most of us. This isn't a C2 problem but... it is a C2 problem in the end, because we rely on these end tools to export.

    HTML5 is designed for the web, fine, we get that, but this situation is critical because the web (Chrome & Firefox being the bulk) currently is broken for HTML5 games.

    So atm, here's the export options:

    Chrome Store = can't use WebStorage, no functional IAP system. /seppuku

    Firefox Market = forget about it, performance is horrendous and stutters like mad.

    Direct HTML5 for browsers = If they are on recent Chrome or Firefox, its unplayable due to stutters.

    Android = wrappers rely on Chromium, its also affected by the stutter bug. Crosswalk is also plagued with security flaws that flag your app to be removed by Google. You just hope players don't mind the stutters. Maybe its on mobiles so they aren't as hardcore as PC gamers are about such things... :/

    iOS = CJS WebView+ which uses WKWebView, great when it works, but its got a major flaw of losing save data to iOS8's auto-clean process when devices run low on storage. O_o

    Finally, direct PC/MAC/Linux export: Use an older NW else risk the stutters. Sadly Linux is still broken due to NW not updating library dependency. Looks like PC/MAC with NW 10.5 is the only viable option, even-though its not optimal (Steam Overlay, Cloud Save?)..

  • There's nothing unsolvable here, we should see improve through 2015 and beyond

  • Browsers are going to keep breaking from here to forever. What gets me is Ashley updating to a version of node that had severe, obvious problems. And sticking with it for no apparent reason (It has 64bit export! More bits!).

    It's easy enough to swap, but we shouldn't have to bother. I've said it before: C2 ought to commit to maintaining compatibility with the last 2 or 3 versions of node-webkit.

    Intel XDK, for example, allows you to export with stable, beta, and alpha versions (all based on different versions of chromium). IIRC, you can also choose to export using older stable versions. Bottom line: you have a choice.

    It's worth saying that chrome 39, the current stable, isn't bad. It's not completely smooth, but it's not as inconsistent as Canary, which, in its defense, is an alpha release.

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