totallybueno

Poor performance on iOS devices (60fps Android vs 15 fps iOS)

Recommended Posts

Hi there,

I have a "more o less basic" game and now that is almost finished, I realized that the performance on iOS is ridiculously bad.

Running the game on old Android devices I get easyly 60 fps, everything runs smoothly, but the same game, running on an iPhone 7 (and obviusly on older devices) it´s gettting 15 fps, being and easy game on a much more powerfull device (good one, Apple).

The thing is, I read that maybe tilesprites (I´m using one) could "help" to this poor performance, but this is not the case, even without that tilesprite I´m still getting 15 fps...

Can anyone point to things to check? Stuff that affects only iOS? I´m not finding how to fix this...

Share this post


Link to post
Share on other sites

unless you provide a working sample of your test case it will be difficult to guess the problem, especially if it works smooth on old android and slow on iphone 7 which is pretty high end. Maybe check the Phaser.CANVAS tag when you create the game.

Share this post


Link to post
Share on other sites

I just uploaded a demo to http://totallybueno.com/demo/falling/

When I create the game, that tag is Phaser.AUTO, I tried with Phaser.WEBGL too but I have the same result... so fustrating...

And it seems with Phaser.CANVAS that performance is really good, thanks for the tip @totor.

 

I´m just curious, if someone can explain here why this happens, would be really nice... anyway, it´s working :)

Edited by totallybueno

Share this post


Link to post
Share on other sites

Tested on my iphone 5c, works flawless..... 98-99 draw calls looking at the canvas debugger in firefox (windows):


dc.PNG.1e5d1968dddbd42fa573c5cb29b1e889.PNG

Should not be required for this type of mobile game... you can try to fit all the seperate images into a single atlas.

Share this post


Link to post
Share on other sites

Also, for many of the world objects (mushrooms?) you should be able to do something like this:

var top = this.camera.view.top;
var bottom = this.camera.view.bottom;

manyObjects.forEach(function (obj) {
  obj.renderable = (obj.bottom > top) && (obj.top < bottom);
});

 

Share this post


Link to post
Share on other sites

@totallybueno 

Wich programs do you use to check the (Cpu/Fps) on real devices?  I have been looking for a long time and I couldn't find any, can you guys recommend me any? 

I can't believe that tools like this which are the most important thing don't exist for smartphones, at last on ios there are none 

Thank you and sorry to hijack this thread

 

 

Share this post


Link to post
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now

  • Recently Browsing   0 members

    No registered users viewing this page.