Android Performance Issue even with 2 Simple Small Physics Objects

Hello,

I conducted a small performance test on my P30 Pro phone and was surprised by the poor performance (apk file).

I merely created a small simple ball and had it collide with another body using Physics Engine 2.0. On the PC, it runs smoothly as expected. However, on my P30 Pro, it stutters, even though it consistently shows 60 FPS just like on my PC.

Can someone give me a hint as to what might be causing this?

Attached are all the settings for the test. There are no additional events besides the configured behaviors.

This is what the test looks like in HTML5: https://gd.games/instant-builds/99f8f8fe-f77e-4759-8218-0cea38a5d480 As expected, it runs smoothly on the PC.



That’s weird. On my game, I have 10 objects with physics, which sometimes all collide with each other. And it works great on android. If you wan to test on your mobile : Jupiter Dive proto 2 by vfabien21 5 (there is a download link for androïd). Try to move around the boxes and push them against each other, to see if it works correctly.

The only difference I see between our projects, is that none of my objects avec “Can sleep” activated.

Do you have any events ?

Just checked out your Jupiter Dive game. I like the concept, being a lazy turd I maximized the screen and missed the instructions at first.

1 Like

Blockquote Do you have any events ?

No other events.

With your type of game, this issue may not occur. Generally, I observe these non-smooth movements starting at certain speeds, which don’t necessarily have to be high. I have also conducted other tests without the Physics Engine, and the problem remains the same. For example, if I continuously move an object by 5 pixels each time, it appears smooth on every PC at 60hz but not on my phone, even though the P30 Pro is not a slow device.

Hmm. Actually I realize that the movement in not that smooth on android. I did not really realise it because things move when there is the finger on them, so we don’t really look at them. But if they were the thing to look at, it would indeed feel jerky.

Hi, I was wondering if you get the stuttering on your phone when you open the game link in your phone browser.

I tried to build a project exactly like yours, and then one with 7 balls/squares (though only 3 show on my phone unless I’m in split screen). Then I put them on my low low low end Android. It cost less than lunch. I’m not sure how the stuttering compares with what you’re getting because you didn’t upload that. Mine looks more sluggish in the video, especially the one with 7 balls, but I think that was because I was recording

I think this is exactly what is happening to me. Have you tried previewing via WIFI/LAN? Just to know if it happens exactly like me and if this is probably due to a bug in the APK build or not. In my case, when I generate the preview and view it on the cell phone (preview over WIFI/LAN) the game runs smoothly, but in the APK, the game it has these small jumps.

NOTE: I clarify that I do not have any physics behavior attached to the objects (physics engine 2.0).

Yes, exactly, the stuttering on my phone looks just like the example in your video when I use the apk file. I have tested both cloud export and manual export. The result is the same. And as mentioned, the stuttering occurs even when I don’t use the Physics Engine.

When I access the HTML5 link with my phone, everything runs absolutely smoothly.

I have now also made a comparison with Clickteam Fusion 2.5, even though I will not be using the product due to many issues. Nevertheless, the ball in this apk file also moves absolutely smoothly, just as it should.

I hope a developer will chime in here. There is increasing suspicion that a needless and massive performance problem may currently be preventing the development of even remotely competitive games for Android with GDevelop. That would be a great pity.

1 Like

Sorry, this seems to be the problem I’ve been highlighting for a while. Have you tried a preview over WIFI/LAN? When I run the game from the cell phone using the address provided in the preview over WIFI/LAN, the game runs smoothly. When I run the APK on Android with the same cell phone, these constant stutters or small jumps happen to me (even deleting all the actions and things that demand resources). The FPS does not drop below 56, however this keeps happening.

Sorry, I had missed your previous question.

Yes, the WIFI/LAN Preview works perfectly smooth. I believe it’s a simple HTML5 preview, just as if one were to open my link to the pure HTML5 version (see above). Both work flawlessly on the phone. So yes, it must be an issue with the APK build, as you wrote.

In the meantime, I have tested Construct 3. Interestingly, the exact same problem occurs, and the Construct forum is full of user reports about it. It seems to be a Cordova issue. The Construct developers claim they cannot reproduce the problem, which is very hard to believe, as it affects many phones. I already know of this issue on Samsung, LG, and Huawei phones. Could you write to me with which phones (model names) you have already tested it on? Could other users here also post their phone models where they experience these stutters?

I hope the GDevelop developers do not react as passively as the Construct developers have. This is a fundamental and I believe massive problem that could have a huge impact on the future success of GDevelop.

To test my games I use a Moto G31, which is the reference cell phone from which I consider that my games should work perfectly.
I was reading and it is true that it may have to do with the Cordova compiles. My game generates a very uncomfortable feeling with these stutters even having more than 50 FPS. Maybe someone from the Gdevelop team can give us more accurate information about this.

It is quite noticeable that no developer has responded to this massive issue. I’ve also used other methods to bring it to the developers’ attention, but it was never addressed. I am now under the impression that the problem is indeed well known internally, but Cordova, with its numerous known performance bugs, seems to be the only Android export option implementable by developers for GDevelop. This approach, however, does not allow for the development of competitive Android games. Hence, GDevelop should not advertise for this. This likely borders on false advertising legally.