0 Favourites

Construct 2 vs. Unity

  • 2 years ago Ashley wrote:

    "Our profiling has shown it's not unusual for even a fairly complex game to spend 10% of the time on the logic, and 90% of the time on rendering - even when hardware accelerated! (...) This is partly why using a scripting language like Javascript is still fine for games. You'll see some benchmarks showing that in places C++ is 5-10x faster than Javascript. So porting our entire engine to C++ would get you up to a 10x logic speedup. But as we've seen that will often have no effect at all on the framerate. That's part of the reason we're happy to stick to a pure Javascript engine without diverting our limited resources to native ports: it's fast enough."

    https://www.scirra.com/blog/83/optimisa ... -your-time

    Now we will have 2015 and there are still problems with smooth games both on mobile and desktop.

    If it is not about logic, but rendering then why Unity can be super smooth, but bigger C2 games - not really?

  • well, browsers (or wrappers), have their own rendering engine, which explains the difference greatly (for instance, the current version of node webkit and chrome have rendering issues that really are problematic, smoothness being completely impossible, maybe crosswalk inhereted that bug too), on the other hand, IE seems to be pretty fluid, basically it is not really a performance problem, it is just that the current rendering method of chrome is an "epic fail" if I can say so (three months ago for instance, we did not had that problem), as for performances wise, I do not see really anything wrong with it currently, crosswalk did a good job (until recently maybe?) to have smooth gameplay on every game I tried, where canvas+ was jerky all over the place (this seems to occur only on some devices If I believe what others says), but then again wrappers are secondary, and I think the fact every wrapper suggested by scirra relies one way or another to chrome only was really a bad choice (it is a freaking html5 engine, why should we have to rely on one specific engine that may fail us once again), heck, even the fact scirra recommands only a specific list of wrappers is questionnable.

  • 1) Unity has a higher percentage of professional developers using it. This means fewer Unity users sabotage their own app by making newbie coding mistakes that hurt performance. For example this developer knows what they are doing with C2 and can make a quality game because of it (http://www.the-next-penelope.com/)

    2) Any changes made by the browser developers automatically effect C2 because the browser is the host for C2 apps... good and bad. Native apps made from scratch do not have this reliance on a third party (the browser developers).

  • And this is why, I suspect, that Unity has its own (annoying) web player.

  • szymek We're going through a rough patch because the Chromium team decided to go brain dead and not even test games properly (else they would notice the jitters immediately!!).. hopefully the problem will be resolved soon, because it worked just fine prior to the recent updates. NW 10.5 is buttery smooth. So whatever they did, they broke smoothness (vsync related), so they should be able to un-break it.

    Crosswalk is affected because its Chromium based, usually a few versions behind.

  • Silverforce

    if Chromium affects both mobile (Crosswalk) and desktop (Node-Webkit) exporter, then maybe Ashley IntelRobert and Google should do something with that? Co-operate? Work together?

  • Construct 3

    Buy Construct 3

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

    Buy Now Construct 3 users don't see these ads
  • At this point in time there are 3 main reasons games don't get to run buttery smooth (as far as I'm aware):

    1) GPU blacklisting: although this is becoming less serious over time as old devices die out, it's still not too hard to find old Windows systems or old Android phones where the GPU is buggy and prone to crashing, so the browser falls back to software rendering.

    2) Synchronous Javascript compilation. While most JS engines compile code concurrently, apparently they still have some key points which still run synchronously, so block the game while it does whatever it needs to do. I think this only affects mobile, since most desktops are simply fast enough to do that work in <16ms and not drop a frame. Javascript engine improvements should resolve this, we have open bugs with browser vendors for this type of issue.

    3) V-sync quality. This is a passing issue in Chrome (the Chromium team is aware of it and are working to fix it) and Firefox (which to me looks already fixed in Nightly), and is made worse by the fact the latest node-webkit is based on Chromium 38 which has the bug. This will be fixed in due course as subsequent Chromium and node-webkit updates come through.

    There's nothing unsolvable here, we should see all three points improve through 2015 and beyond.

  • 3) V-sync quality. This is a passing issue in Chrome (the Chromium team is aware of it and are working to fix it) and Firefox (which to me looks already fixed in Nightly), and is made worse by the fact the latest node-webkit is based on Chromium 38 which has the bug. This will be fixed in due course as subsequent Chromium and node-webkit updates come through.

    There's nothing unsolvable here, we should see all three points improve through 2015 and beyond.

    The problem is that the bug went unfixed for multiple Chromium releases since 38. That means the next NW on 39, 40, 41 are still affected with this horrible game-breaking flaw. We have to stick to NW 10.5, which is fine for the MOST part, except the lack of Steam Overlays due to being stuck on Greenworks v3 Alpha (since each Greenworks is NW version specific).

    The same also applies to Crosswalk since they are a few Chromium versions behind, they still have to go through a very jittery versions before there's light beyond this tunnel.

  • Silverforce

    maybe Ashley should do something more than submitting bugs (as a almost anonymous person) or asking C2 users to submit bugs? Maybe Scirra should co-operate with Google?

  • One of issues that has come up with janking. Is due to relying on the browser fixed time step. However Unity isn't free from the janking time step. Unity however doesn't rely the guarantee of 0.16 time step. unity actually corrects it's janking time step with a variable smoothing time step that done int he Unity engine. C2 relies on the browser rather than using the wallclock to provide dt security.

    Unity has a ton of developers working on the Unity Engine. C2 has one. Scirra is hiring, but it seems London just doesn't have enough JS programmers.

    In the mean time you MIGHT be able fix your own janking to a degree. Modify the timescale based on the dt. I off hand don't know the formula, but I'm sure this can be figured out.

    http://www.blitzbasic.com/Community/pos ... opic=70275

    http://forum.unity3d.com/threads/imposs ... ty.141417/

    http://www.reddit.com/r/Unity3D/comment ... a_2d_game/

    The reason why Unity published game have less logic time errors is because Unity offers developers far more options and timing control. While also writing there own timing features.

  • Silverforce

    maybe Ashley should do something more than submitting bugs (as a almost anonymous person) or asking C2 users to submit bugs? Maybe Scirra should co-operate with Google?

    What does "co-operate" mean? Google is about x1,000,000 bigger than Scirra. Google does what Google wants to do when they want to do it. Scirra cannot push Google around. Google provides a forum for third parties to submit issues and that is as far as ANYONE can go into the internal processes of Google.

  • From what I've experienced, most times these "bottlenecks" are user related.

    What's really surprising is that it seems to happen so much in an engine that was designed to make it easier, and leave out the code altogether.

    Or could it be that its just easier to blame the engine?

  • From what I've experienced, most times these "bottlenecks" are user related.

    What's really surprising is that it seems to happen so much in an engine that was designed to make it easier, and leave out the code altogether.

    Or could it be that its just easier to blame the engine?

    Even though C2 events are not traditional "code" they are still "logic" and code is just one way to express logic. Professional developers not only memorize code, but also get good at logic in general.

  • Kind of a rock, and a hardplace.

    You can limit what the user can do, to keep them from making mistakes.

    That in turn limits the functionality.

  • Though C2 has the JavaScript plugin API so you can actually do both. However HTML5 still requires the dependence on the browser developers... and mostly they are concentrated on non-game uses for the browser.

Jump to:
Active Users
There are 1 visitors browsing this topic (0 users and 1 guests)
Similar Topics Posts Views Last Post
Unread hot topic Locked topic
0 Favourites
Construct 3 any news?
889 125,593
uzumiapps's avatar
uzumiapps
Unread hot topic
353 32,079
yojona's avatar
yojona
Unread hot topic
313 26,486
Juryiel's avatar
Juryiel