Ashley's Recent Forum Activity

  • I think everyone's jumped to conclusions on this. The profiles actually show that GC is not the cause. The profiles show a long frame, and only a tiny amount of time taken up by GC. For example the profile posted by TheRealDannyyy shows a frame taking 68ms, but GC only taking 8ms of that. Why didn't it schedule another frame in the remaining 60 ms? It looks like it could have done, because it wasn't busy doing GC, but it didn't. Right now we don't know why, but it is too early to blame GC, especially since it looks like GC finished quickly with plenty of time to spare.

    At 60 FPS there is 16ms per frame. A demo like 'endless runner' does a tiny amount of work per frame - let's be pessimistic and say it takes 4ms of time per frame. This leaves another 12ms idle while it waits for v-sync. The browser knows it has 12ms idle, so it does increments of GC work in that time, since it essentially hides the work in otherwise idle time so it doesn't affect performance. So an 8ms period of GC could be the GC working exactly as intended, doing increments of work in the idle time between frames. I don't think there's reason to be suspicious of any GC times under, say, 14ms.

    We don't know what's causing the jank yet, but it won't help anything to prematurely accusing GC without sufficient evidence. It could indeed end up being GC, but the evidence doesn't suggest anything out of the ordinary yet. This also means it's also definitely too early to insist on changes to the engine - especially since I've seen browser engineers specifically advising not to try to keep objects statically allocated, since it can actually prevent JavaScript engines better optimising code.

    Identifying the cause of issues is surprisingly complicated, which is alluded to in this blog post.

    As ever the best approach is to find a way to reliably reproduce the issue (to the best extent possible anyway), and the fact I can't reproduce it suggests it's a device or system specific issue, so we should probably start collecting system specs and look for patterns in specs where the issue can be reproduced.

  • I can't reproduce any issue on my system with Chrome 69 - it's perfectly smooth even in fullscreen, and there is no GC coming up in the profile at all. In the past jank issues have been more to do with the OS, graphics driver, or browser v-sync schedulers or compositors anyway. You could prove GC by using the performance timeline in Chrome and looking for what it's doing in the time periods when it janks - the sawtooth shape graph is normal for a garbage-collected language and doesn't itself prove anything.

    Citing articles from 2013 will be missing the past five year's worth of GC improvements in browsers: most of them are now generational, incremental and concurrent - specifically designed to avoid more than a few milliseconds of pause at any one time, specifically to guarantee a smooth uninterrupted 60FPS framerate. If they can't do that, it's probably a bug with the browser's GC.

    Either way - v-sync scheduling or GC - it's not something we directly control, so your best bet is to collect evidence identifying the GC (if it is), and file a clear bug report at crbug.com. There seems to be a tendency to post long, complaining forum threads on our forum when there's nothing much we can do about it - if you're actually serious about sorting it out, reporting issues to browser vendors is the way to go. In the past they've fixed similar issues quite promptly (e.g. this issue which they first submitted a patch for within 2 days).

  • It's best to file website issues here now: github.com/Scirra/Construct.net-website-bugs

  • The engine does it for you automatically.

  • Have you tried it? You could just make a quick test and check.

  • I'm not convinced the idea of "easy as Construct but with 3D" makes sense. For 2D, most people can draw some basic images and do a bit of simple math to help things interact. With 3D, how many people can quickly throw together a 3D model? How's your math for things like vectors, matrices and quaternions? The bar is higher, and I'm not sure there's much an easy-to-use tool can do to hide that, without turning in to a bit of a disappointing cookie-cutter engine.

  • That version of Chrome is over two years old. It's the last version for XP and Vista, both of which are now out of support - they're not even getting security updates any more, so will be getting less and less secure to use. Nobody supports them any more, and I'm afraid neither will we.

  • The Custom Movement behavior does expose the various tools used for the algorithm, hence using it as a workaround.

  • Which browser and version are you using? It correctly detects support for me in the latest Chrome, Firefox and Edge.

  • Try Construct 3

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

    Try Now Construct 3 users don't see these ads
  • Construct 2 is now on long-term maintenance support. If you need better support you should upgrade to Construct 3.

    The problem is that the "Set angle" action can make the player overlap the ground, which is not allowed by the Platform behavior. This causes it to activate its emergency "get me out of here" routine. This typically produces poor results, but by chance the previous algorithm worked well in this case. We recently adjusted the "get me out of here" routine to better handle the common case of moving walls. This improved a number of games, but in this case, prevents it working as well as it used to. Since we have to pick which way works, I think we have to go with the current way, since it's important the Platform behavior works well with moving walls. The good news though is you can get the old routine back by adding the Custom Movement behavior to the player, and after the "Set angle" action, use "Push out of solid (nearest)". That's exactly what it was doing before and gets it working again in the latest release.

  • I'll add it to the list. Best approach for other browser makers is to file an issue on their trackers and see if they pick it up.

  • Install any available software updates for your phone. The Chrome version is out-of-date. The latest versions support the games just fine.

Ashley's avatar

Ashley

Early Adopter

Member since 21 May, 2007

Twitter
Ashley has 1,772,976 followers

Connect with Ashley

Trophy Case

  • Jupiter Mission Supports Gordon's mission to Jupiter
  • Forum Contributor Made 100 posts in the forums
  • Forum Patron Made 500 posts in the forums
  • Forum Hero Made 1,000 posts in the forums
  • Forum Wizard Made 5,000 posts in the forums
  • Forum Unicorn Made 10,000 posts in the forums
  • Forum Mega Brain Made 20,000 posts in the forums
  • x126
    Coach One of your tutorials has over 1,000 readers
  • x74
    Educator One of your tutorials has over 10,000 readers
  • x5
    Teacher One of your tutorials has over 100,000 readers
  • Sensei One of your tutorials has over 1,000,000 readers
  • Regular Visitor Visited Construct.net 7 days in a row
  • Steady Visitor Visited Construct.net 30 days in a row
  • RTFM Read the fabulous manual
  • x42
    Great Comment One of your comments gets 3 upvotes
  • Email Verified

Progress

32/44
How to earn trophies

Blogs