Game stutters a lot when it runs under target frame rate, even at 90FPS!

0 favourites
From the Asset Store
Full game Construct 2 and Construct 3 to post on Google Play

    Technical question, when my game runs at 120FPS vsynced it runs really smoothly: gyazo.com/189e268714c8fe8ed52e574814e9a356 (you can see the fps on the top left!

    When the FPS drops below 120FPS everything beginns to jitter like crazy. All i do is moving the Car on the X axis and let the 3D cam follow. Everything is done with delta time, and the cam even lerps. But it looks like the car does jumps left and right: gyazo.com/0da31039ec1b9c255ae62f7bb06de737

    Any ideas what this could be?

    Another Problem with the cordova export debug APK:

    On my tablet the game runs smooth with 60 FPS in the remote preview, but as soon as i do a debug APK Cordova it does not get over the 44 fps mark. Which would be still fine as it also uses less processing power (maybe energy saving android shit) however, bcause of the issue with the jankyness it gets unplayable! Same Problem on my smartphone, it runs at over 100FPS but it janks like hell! (galaxy s22 plus)

    When i make the cam static the effect is less noticebal but you can still see the car jump arround a bit. gyazo.com/466280241d42ca1dcc7843231e550ca9

    The problem with this is, its still 90FPS so it should be DAMN SMOOTH even if 30FPS are missing... I dont get whats going wrong here

    Here you can see the issue isolated, top left is fps next to it CPU: gyazo.com/6506c45ee5372c1c4f500b1ade22e6e2

    If i dont use delta time the jumping becomes less noticebal, at least its playable, the obvious problem is we cant FPS lock a game: gyazo.com/41735fd4af6d4c607047f04f5283e680 (moving without deltatime)

    So on my pc it runs on 144 on my phone at 120 and on my tablet at 60/40FPS... i rly thought till 2023 construct would have overcome those problems but it still seems not to be possible to make an "ambitious" game in it

    EDIT: OK, there MUST be something wrong either with Chrome or the Engine... I tested the unlimeted mode, no Vsync and it still stutters like HELL with over 2000 FPS... what the hack?

    gyazo.com/12f9dc0994d2bcd742a102f6816e39ce You can see a bad one at sec 4-6

    I am thankfull for any ideas about this issue.

    Note: I rly love construct and i made a lot of advertising over the years, but i beginning to ask if the engine will ever be really usable. Its just to frustrating spending days trying to fix and issue just to find out that there is nothing you can do about it. Or maybe i am just using it wrong...

    Chrome Performance record: gyazo.com/d08684e40bd079577784c7335e5844f7

    Fooling arround with the settings a lot the issue disapears on PC when i turn off "WebWorker" and when i put the compositing morde to low latency. Changing either of those regardless of combination makes the issue reapear in a multi mmonitor setup. I guess thats some kind of problem with the grafics card driver... So after analyzing a lot i figured the stutter is pretty much "normal" as not one but several frames are skipped in a row. So there is the answer why it lags, when fps go from 110 to 90, because he skipps 10 frames in a row! (Without reason, no spikes in CPU TIME)

    So far so good, now the real question is why has the cordova export a far worse performance than the webpreview?

    Is there anything i can do about it or do i have to make my game "less abitious" or just not dev for mobile? I mean, a google play release would be nice after all...

    (Old) refferences:

    construct.net/en/forum/construct-3/general-discussion-7/game-performance-android-sucks-155097/page-10

    construct.net/en/forum/construct-3/general-discussion-7/chrome-mobile-vs-apk-160701/page-6

    construct.net/en/forum/construct-3/general-discussion-7/stutterring-reads-60fps-169596/page-4

    bugs.chromium.org/p/chromium/issues/detail

    bugs.chromium.org/p/chromium/issues/detail

    Was this fixxed? Is it back? It seems like those thread die and vanish into nothingness as people give up fixing this?

    Another finding: on my Galaxy, when i cap the framerate to 60 (down from 120) It runs perfect.

    So in short:

    As long as the game can run at the target framerate its smooth. As soon as it is 5 FPS under the target framerate it stutters like hell. It seems this is comming from a pattern of skipping several frames in a row. Eg target is 120 FPS game runs at 105 fps it looks like this: 60Frames generated 10 frames skipped 40 frames generated 5 frames skiped 15 frames generated | next cycle

    The issue would be the same for the remote preview i guess but there the games just runs at 120FPS without problems. Same on my lenovo tablet with 60fps.

    Hear hear!

    Construct 3's mobile department is hopeless, no one is even bothering to check for any issues.

    It is pointless to argue since it's apparent that the Construct 3 developer isn't even aware of the issues or chooses to ignore them. So many people have tried and just gave up.

    Most tests the Construct 3 developer makes are about how fast JS is in the web, since that's what he only ever truly does. And then advertise how fast JS is, and make it look like even mobile is as well. Not after those benchmark tests that have no relevancy to actual issues of performance stability and performance throttling on mobile builds.

    For new users, if a game isn't as simple as Flappy bird or Angry Birds, then don't bother making it. If you think performance will get better after export, you'll be surprised it will be at least 30% worse after export than preview. And that's before the stability issues.

    Back in 2016, the Construct 3 developer said devices are getting more powerful and the performance will get better. Well, that's true, but not that you will benefit from it, Construct 3 performance is getting worse.

    Every tick needs to be light on mobile, but even the actual event sheet is so heavy and bloated, it's almost like a JS sandbox. I've fixed that by coding with JavaScript, but wait until you hear about a bigger problem, refresh rates on mobile.

    The browser is still as slow, but the demand for graphics is getting higher. Dealing with 60Hz on mobile exports is bad enough, but now we have 120Hz, and the Construct 3 developer is acting like it's no big deal, they made another product Animate since they probably feel like they have so few things to improve in the actual game engine.

    And then we suggest for frame rate locking, and the Construct 3 developer indirectly says it is a horrible idea for some technical reasons in which Chromium doesn't support, yet other engines like Phaser support. We then get linked to that everlasting Chromium issue that everyone already abandoned, forgotten or worked around.

    What's worse, is that people who either are clueless or only exports to web, web mobile or desktop, will also reply and say that the performance is fine, making us getting ignored even further. That is until they have to experience it themselves, and then be the ones to complain in the future.

    It's so easy to brush something off you don't experience or care.

    Well, thanks for your input, that sounds very demotivating... Yea i never got the reason for constrcut animate... I mean its a company and fixing every issue might not be reasonable from a business perspective, after all, you and me are still subscribed... sooo, yea. As much as i love constrcut it goes for me like this:

    Have 10 ideas, throw 9 away, programming 1, at some point running into performance issues, making it a steam game, not realeasing it bcause its to bad XD So on PC the issue seems not to be to bad, bcause we have the performance but the mobile market is still way more interesting for smaller projects... So i dont get it, if its the same, just a headless chrome in the background, why is it so bad then? And why is there no option to limit the tick/frame rate? I mean with everythign constrcut can do fixing bugs should be the top priorety. I get it that its maybe chromes fault or cordovas fault but i pay for CONSTRCUT not for cordova or chrome... So i expect it somewhat to work as advertised.

    If even the basics not working after all those years, idk what to say anymore.

    Anyways, i will test through some other options before giving up. But regardless of what i do something seems to be always not working. For example the fog exponential does not work for the node js or webview export but is working just fine in the preview...

    Hear hear!

    Construct 3's mobile department is hopeless, no one is even bothering to check for any issues.

    It is pointless to argue since it's apparent that the Construct 3 developer isn't even aware of the issues or chooses to ignore them. So many people have tried and just gave up.

    Most tests the Construct 3 developer makes are about how fast JS is in the web, since that's what he only ever truly does. And then advertise how fast JS is, and make it look like even mobile is as well. Not after those benchmark tests that have no relevancy to actual issues of performance stability and performance throttling on mobile builds.

    For new users, if a game isn't as simple as Flappy bird or Angry Birds, then don't bother making it. If you think performance will get better after export, you'll be surprised it will be at least 30% worse after export than preview. And that's before the stability issues.

    Back in 2016, the Construct 3 developer said devices are getting more powerful and the performance will get better. Well, that's true, but not that you will benefit from it, Construct 3 performance is getting worse.

    Every tick needs to be light on mobile, but even the actual event sheet is so heavy and bloated, it's almost like a JS sandbox. I've fixed that by coding with JavaScript, but wait until you hear about a bigger problem, refresh rates on mobile.

    The browser is still as slow, but the demand for graphics is getting higher. Dealing with 60Hz on mobile exports is bad enough, but now we have 120Hz, and the Construct 3 developer is acting like it's no big deal, they made another product Animate since they probably feel like they have so few things to improve in the actual game engine.

    And then we suggest for frame rate locking, and the Construct 3 developer indirectly says it is a horrible idea for some technical reasons in which Chromium doesn't support, yet other engines like Phaser support. We then get linked to that everlasting Chromium issue that everyone already abandoned, forgotten or worked around.

    What's worse, is that people who either are clueless or only exports to web, web mobile or desktop, will also reply and say that the performance is fine, making us getting ignored even further. That is until they have to experience it themselves, and then be the ones to complain in the future.

    It's so easy to brush something off you don't experience or care.

    Bingo!

    I only develop for mobile. And Construct 3's performance on mobile is very-very bad. I literally have to change my plans to make things run better on mobile

    But why is it so bad, from what i read and understand Ashley does a lot in the performance departement. I can remember from a few years back that with intel XDK stuff ran nearly like native apps. Jea not 100% but maybe 75%... What happened? And can we do something about it? XD

    I think one of the first things that come to mind is to limit the fps... However i dont get why the hangs / stutters are so bad... When i play another game and it runs at 40FPS it still looks good, but with construct it seems more than one frame is skipped in a row and then there is this big stutter / jumping happening on screen... I mean when from 120 frames 10 are dropt in a second it should be hardly noticebal, but in construct games it looks horrible. I did a lot to optimize, going so far making a "spaning que" in an array so that only one object is spawned per tick...

    It runs somewhat ok now, but it seems like especially 3d requires a lot more cpu power...

    I do agree that a frame limiter would be great, and I do see other engines that have this (you mentioned Phaser, also GDevelop allows you to choose a maximum FPS). I trust that Scirra haven't implemented something like this for a fair enough reason, whether it's chrome interfering with how C3 is designed, or whatever it may be. But at the end of the day, I would love to give people the ability to choose to have vsync/frame limiters on or off, much like all games allow you to (I always have vsync off whenever I play games, especially rhythm games or quick-reaction games such as platformer or FPS games).

    On my own project, a desktop rhythm game, I have different settings for visuals, and when on "Ultra", I do see jank when cpu and gpu usage are both about 60% and the FPS is always stable, maybe dips lower by 1 FPS now and then. Whilst I could optimise my game and visuals, the thing that teases me is that, the jank is significantly lowers when vsync is set to "ticks only". I have not been able to reproduce this in a minimal project though. But when I can just flick a switch to turn vsync off and get the smoothest experience, it makes me wish we could just set a max FPS cap and be done with this, allowing the player to decide whether they want to use vsync or not, limit FPS or not. I have a 240hz monitor, and playing on ultra, some players may wish to lower the max FPS, just to keep the FPS stable, but I can't expect players to have to go into their computer settings to lower their monitor hz just to play. I really do wish there was a max FPS cap option.

    I do not agree about Scirra being unaware or choosing to ignore the issues, and I don't agree with Construct Animate consuming Scirra's time, and I am someone that is currently not the target audience for CA - you have to imagine that since CA is literally C3 but with different things enabled/disabled, the development process must be very trivial rather than Scirra starting with an entirely new base for CA - not to mention that most updates get applied to C3 too, and only video exports have been the unique feature for CA so far. Also, if Scirra do work on a CA-only feature, they always seem to multitask and add a bunch of other fixes and changes within an update, so it's not like C3 gets abandoned whilst they work on CA. If Scirra turned a blind eye to issues so that they can work on CA, then yeah that would be a problem, but so far I have not observed this. Assuming those starred chrome bugs end up with a solution from Google, I'd bet that Scirra would be straight on this.

    But! The thing is, yeah, some of those chrome bug reports haven't been updated for months now, so it does give a sense of "what now?", like are we relying on chrome devs to resolve this, which have no timeframe or deadline or anything, whilst C3 devs (particularly mobile devs) are patiently waiting and we are all at the mercy of Google? If they cannot resolve anything, is it up to Scirra to find a workaround or solution? I do not know.

    Fooling arround with the settings a lot the issue disapears on PC when i turn off "WebWorker"

    There is a known issue with the Android WebView where it is janky when using worker mode. However the default settings do not use worker mode. You will only run in to this if you manually change the project 'Use worker' setting from 'Auto' to 'Yes'. If you leave it on its default 'Auto' or 'No', it should work OK.

    I'd like to point out that the existence of such a bug does not mean that HTML5 or our hard-working team are somehow useless. In fact I have already done significant work to investigate this very issue in order to file that issue with Google. All software has bugs and nothing is perfect. On the whole I do believe Construct and browser performance are outstanding these days.

    I'd add that a great deal of work has been done on this in the past, and we do work really hard to ensure there is great performance on all platforms. However in this case the bug is caused by the Chromium browser engine and therefore it's out of our control - only Google can fix it. However the issue is easy to work around and the default project settings are not affected. Further please note that in general it is usually impossible to help without the details requested by our bug report guidelines. We need all that information to be able to help, and if it's omitted all we have is guesswork.

    I totally agree with Chadori:

    The mobile department needs quite a big rework is not only stutters:

    1-Stutters

    2-Frame cap

    3-Memory management to give total control over what assets are loaded at the start of the layout to make the loading faster for games that have many assets

    4-Effects:

    What's the point to have effects if we cannot use them on mobile?

    In my 7+ years, I have never used effects because the performance is really bad. And now that I really needed a water effect just to make a minimum underwater effect the phones are getting really hot, the phones are quite powerful, including iPhone8 and any model after.

    There is no reason why it couldn't handle it, as there are just two sprites objects in the same layer and I apply the effect to the layer to save performance:

    CPU = 5

    FPS = 60

    But still, the phones are getting hot not sure why as you can see the stats are super low.

    These are to name some of the most important.

    Back in 2016, the Construct 3 developer said devices are getting more powerful and the performance will get better. Well, that's true, but not that you will benefit from it, Construct 3 performance is getting worse.

    I say the exact same thing, this point from that time it stuck in my head as I believed that will be the case as it makes sense that phones get better so fewer issues we will have but now the phones are super powerful and they cannot get any better so it should be no reason for any performance issues stutters or any other issues.

    Also, if Scirra do work on a CA-only feature, they always seem to multitask and add a bunch of other fixes and changes within an update, so it's not like C3 gets abandoned whilst they work on CA. If Scirra turned a blind eye to issues so that they can work on CA, then yeah that would be a problem, but so far I have not observed this.

    I think there is a misunderstanding with this concept as we dont judge if they are capable to work on both products, what we are saying is that any time spent on that new product could be used to improve C3 which there are many issues to fix like the ones I mention above. If C3 had no issues or just minor problems then it wouldn't look as bad working with a new product, so you can understand the frustration of many users, especially when they dont have new employers as they said when C3 was in beta they will add in the future when the user base grows, so were already in the future and the userbase grew but we didn't have any improvements on those issues. After all, we are just asking that after working on those Games for years which is a big sacrifice, the only thing we ask is that the games run decent when you release them, I think everyone will be happy with that and probably you wouldn't see users completing about the products etc...

    -I didn't see any advertising for C4

    -Or we dont have roadMap

    So the question is are these issues gonna be resolved or not? maybe dont reply on (Chrome + Cordova) and try something else.

  • Try Construct 3

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

    Try Now Construct 3 users don't see these ads

    I understand, and I shared the same frustration when CA was first announced, but after thinking about it, I don't really feel that way anymore. I mean, whether they're working on CA, or more 3D features, or whatever new C3 feature, then this could always be perceived as "why spend time on these features, when there's major bugs to fix, such as the jank issue?". I personally wish they would focus on the event sheet editor as top priority, but many would disagree (and for good reason, since jank is an unacceptable issue when releasing a game). When there are major bugs with C3, you tend to see hotfixes get released ASAP, which is good to see, especially if it is a bug that affects saving project files or something, but some bugs are either not clear to Scirra (hence them asking for bug reports, I know this jank topic comes up a lot, but I don't know if anyone has posted a bug report), or Scirra are at the mercy of those chrome bugs being answered.

    I agree with the "employing new staff" point, hopefully that's incoming, as this seems like a win win, allowing staff to focus strongly on specific areas of programming or research and such.

    Hypothetically, let's assume they stopped focusing on CA and even new C3 features, and let's assume they got some new staff, and then they focused 100% of their attention on this jank issue - Judging by what has been said, I think we would still be stuck, as it relies on these chrome bugs to be answered(?) If there was a solution or workaround, I like to believe that Scirra would be trying that solution now, or at least working towards it, and Ashley mentioned they have indeed done work towards this (although the issue continues, so yeah, get dem bug reports out there). If it is the case that we truly are at the mercy of those chrome bugs being answered, should Scirra find a completely different approach? Maybe, maybe not. Do other HTML5 engines like Phaser or GDevelop suffer the same issues? I have no idea, but this could be good to demonstrate to Scirra.

    I 100% agree with having choice for vsync and frame limits, and I definitely can see the benefits for both PC and mobile if this was implemented.

    I was under the impression Android performance was generally working fine for most people, as my own tests look fine and I hadn't seen any complaints about it for a long time. The problem in this thread appears to be enabling worker mode, which runs in to a known issue. Turning it off (which is the default) should mean problem solved.

    If not, please file an issue following all the guidelines! I'm not telepathic so I can't solve problems by reading descriptions or watching videos, we need the details requested by the bug report guidelines to investigate, and I don't believe any Android performance issues have been submitted that way lately, so as it stands we have nothing to investigate.

    Think we should have more staff to work on Construct? Then we need to grow the business, and a new product is potentially a great way to do that. If it went well it could double the size of the business - perhaps even more if it's a hit - and we could hire more developers as a result. Alternatively we can do nothing and remain a smaller company with limited resources. So if you want us to grow, it makes sense to be in favor of new ventures like Construct Animate.

    Regarding the Mobile Export and Performance issues, i'm thinking about something for a few months.

    What about a new way to export to Mobile Devices that would consists in a default "empty" IOS/Android build where we would just embed a web export we host somewhere else?

    The "empty" IOS/Android would just launch "Android ads"/"IOS ads" when the embeded web export calls it. It would listen for stuff that triggers in the actual Web game.

    The only thing we would need to do is :

    1. Generate an "empty" IOS/Android app
    2. Export the actual game to web
    3. Host the web export somewhere
    4. Change an URL value in the "empty IOS/Android app" to put the right link of the game, so the Web export is embed in the Android app
    5. Publish on IOS/Android

    There would be many benefits :

    • better perfomance (web export are way better than mobile exports apparently)
    • very low app download size (the game is hosted in web so it's not part of the downloaded app)
    • 1 single export to many platforms
    • no need to update on IOS/Android/Web each time, we just need to update the game where it's hosted in the web

    I've seen several apps doing this so their download size from the store is only something like 15-20 mb, and they're really performant.

    Jase00

    I do not agree about Scirra being unaware or choosing to ignore the issues

    On my own project, a desktop rhythm game, I have different settings for visuals, and when on "Ultra", I do see jank when cpu and gpu usage are both about 60% and the FPS is always stable

    Of course you don't, I reckon you mainly export to desktop.

    This is exactly it, no one in other platform exports have any idea. They think the same performance issues they have on desktop or web are the same, it literally isn't. You can still make rhythm games on desktop and reach 60% CPU usage while playable. However, mobile can reach 5% CPU usage and already starts lagging, because there is performance throttling and horrible stability issues.

    The desktop export is very powerful, not because of your device performance, but the browser itself, yet you still complain about performance issues. Imagine our case with weaker devices, very problematic browsers and zero engine features to alleviate it.

    You shouldn't use your case as a reference to our issues. This toxic positivity just makes our situation overlooked even further.

    If they cannot resolve anything, is it up to Scirra to find a workaround or solution? I do not know.

    Please just don't make it worse, ignorance of mobile issues and trying to make it look alright is a quinquennial problem now.

    The Construct 3 developer isn't aware, and after reading posts like this, we'll surely be pushed back from scratch again.

    Jase00

    > I do not agree about Scirra being unaware or choosing to ignore the issues

    > On my own project, a desktop rhythm game, I have different settings for visuals, and when on "Ultra", I do see jank when cpu and gpu usage are both about 60% and the FPS is always stable

    Of course you don't, I reckon you mainly export to desktop.

    This is exactly it, no one in other platform exports have any idea. They think the same performance issues they have on desktop or web are the same, it literally isn't. You can still make rhythm games on desktop and reach 60% CPU usage while playable. However, mobile can reach 5% CPU usage and already starts lagging, because there is performance throttling and horrible stability issues.

    The desktop export is very powerful, not because of your device performance, but the browser itself, yet you still complain about performance issues. Imagine our case with weaker devices, very problematic browsers and zero engine features to alleviate it.

    You shouldn't use your case as a reference to our issues. This toxic positivity just makes our situation overlooked even further.

    > If they cannot resolve anything, is it up to Scirra to find a workaround or solution? I do not know.

    Please just don't make it worse, ignorance of mobile issues and trying to make it look alright is a quinquennial problem now.

    Agree with each & every alphabet

    And number of object spawning each second is NOT only & the perfect way to figure out performance of a game engine. One can't even use a effect in mobile games whereas that same device rocks complex 3d games with ease.

    Even changing layout is very laggy & headache for me

    Could the guys downvoting the Mobile Export with Web Export embedding idea explain why they think it wouldn't work ? I'm probably missing something.

    Because it looks like it would solve several issues including that performance thing everybody is talking about ?

    I'm actually also thinking Mobile desserves more love and that suggestion is helping at least with the performance issue of Mobile Export.

    As some people pointed out the C3 engine is rock solid for Webs but Android/IOS export are bad, so if Mobile Exports are in fact Web Exports it would literally solve this issue in a easy way on top of many other benefits. (no need to update the game on both stores each time + very little download size = low barrier for a user to download the app while browsing the stores)

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