0 Favourites

Question For Very Experienced Mobile developers.

  • Hi. I would like to ask you to list every single Construct 2 behaviour or event sheet condition and action that kills mobile performance and if possible its workaround.

    I have a game which has very poor performance on xdk. So i need to learn , we all newbies need to know what not to use and what is the best alternative.

    For example; Action WAIT x seconds , every tick , Physics, and so on. This would be very usefull for all of us i hope. Thank you very much for your help.

    jay

  • Construct 3

    Buy Construct 3

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

    Buy Now Construct 3 users don't see these ads
  • Hi, Im a bit experienced with mobile. I wont list everything you want but will point you to where you can find it:

    https://www.scirra.com/tutorials/298/performance-tips-for-mobile-games

    https://www.scirra.com/tutorials/577/construct-2s-export-time-optimisations

    https://www.scirra.com/tutorials/1300/tips-to-reduce-the-download-size

    Start with these, there are many others. Just use the search on tutorials and Forums with keywords: mobile optimization, XDK, Cocoonjs etc.

    Also Cocoonjs is faster than XDK from what I've read.

  • thank you

  • Rotating objects frequently (rotate behavior or setting angle every tick) is one that doesn't show up in that list, but it can really slow things down, especially if you are rotating large objects.

    Also, the current 'stable' of crosswalk supported by xdk (v10) is a godawful mess that looks terrible at anything less than 60fps; if you really care about perf, use v7 instead. Just be aware that google may remove your app at some nebulous point in the future.

  • TiAm

    Does setting an object position every tick cause performance slow downs?

    Because I've got about 3-5 objects permanently being set to the position of another object every tick.

  • Nesteris you want to avoid every tick whenever possible so just try keeping it to a minimum.

  • volkiller730

    Would using the pin behaviour be the same performance wise?

  • Nesteris,

    Actually I wouldn't worry at all about most Every Tick events. The biggest source of slowdown on mobile is related to graphics, not logic. Unless you've got some hardcore physics calculations happening (EDIT: or insanity with loops, and other serious logic slowdown issues, anything way out of the ordinary), forget optimization and just make sure your code is organized and pleasing to the eye. Setting A equal to B every tick has practically zero impact on performance. Ashley has addressed this on his blog. If you haven't already, read it and feel relieved.

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

    The best advice is to periodically export the game and check its performance on mobile. That way, if you made a change that breaks performance, you can re-evaluate your approach.

    Also, CocoonJS Canvas+ is the best export option when it comes to performance, there's no doubt about it. Because it's a "non-browser engine", Ashley doesn't like to promote it, otherwise users complain about Construct 2 being flawed when there are compatibility issues. The truth is that CocoonJS Canvas+ is WAY better performance-wise than Crosswalk, especially when it comes to twitch-based action games with lots of movement in them. So forget compatibility. If you are developing strictly for mobile, and CocoonJS Canvas+ works for you, then develop to export through it, and you'll get much higher quality results than Crosswalk.

  • Dalal

    I'm exporting to Desktop solely, at least for now.

    Thanks for the info that Every Tick events don't take much. but now I have two people saying two different things.

    [quote:3of5wttf]The biggest source of slowdown on mobile is related to graphics, not logic. Unless you've got some hardcore physics calculations happening, forget optimization and just make sure your code is organized and pleasing to the eye. Setting A equal to B every tick has practically zero impact on performance. Ashley has addressed this on his blog. Read it and feel relieved.

    Great to know. This is the same for desktop, yes?

  • Rotating objects frequently (rotate behavior or setting angle every tick) is one that doesn't show up in that list, but it can really slow things down, especially if you are rotating large objects.

    so Nate goes and makes a game where almost *every* object constantly rotates...

  • Wise choice to develop for desktop. Mobile can be a painful, heartwrenching journey

    ... but now I have two people saying two different things.

    Hehe, well not necessarily. I was talking more about the logic side of it. To say that "Every Tick" on its own is a 'bad' event is misleading, as it implies that merely executing some logic every frame can cause slowdown. What's true is that using Every Tick for intensive graphical operations could be a bad idea, which is where he may have extracted that rule-of-thumb.

    Rotating objects frequently (rotate behavior or setting angle every tick) is one that doesn't show up in that list, but it can really slow things down, especially if you are rotating large objects.

    This is interesting. I was under the impression that mobile GPUs would be pretty good at elemental operations like translation, scaling, rotation, etc. Did you experience this on CocoonJS as well? I'll have to test it.

  • > Rotating objects frequently (rotate behavior or setting angle every tick) is one that doesn't show up in that list, but it can really slow things down, especially if you are rotating large objects.

    >

    so Nate goes and makes a game where almost *every* object constantly rotates...

    Really don't think it matters on desktops. Maybe if you had thousands of objects, but even then, I don't think offscreen objects are drawn at all, so I assume having them rotate wouldn't matter.

    I was under the impression that mobile GPUs would be pretty good at elemental operations like translation, scaling, rotation, etc. Did you experience this on CocoonJS as well? I'll have to test it.

    I've haven't used Canvas+ much. I basically went into development figuring that CJS Canvas+ could break at any time since it's not officially supported anymore, so I couldn't place my faith in it. Also, I wanted my game to be able to run on lower-end devices, even with crosswalk. A masochist, I know...

    Anyway, I'm certainly not saying you can't do rotation on mobile, just that, in my limited testing, it's much more expensive than translation and scaling. I didn't totally geek out and dive into why since I'd like to actually get my game finished...

  • yeah, on desktop its not really an issue. Mobile / Wii U is out of the question though. I donno how much the rotation had a factor in that. Dev kits back with Nintendo now anyway and wasnt much i could do since it required the rotation at its core

  • Nesteris,

    Also, CocoonJS is the best export option when it comes to performance, there's no doubt about it. Because it's a "non-browser engine", Ashley doesn't like to promote it, otherwise users complain about Construct 2 being flawed when there are compatibility issues. The truth is that CocoonJS is WAY better performance-wise than Crosswalk, especially when it comes to twitch-based action games with lots of movement in them. So forget compatibility. If you are developing strictly for mobile, and CocoonJS works for you, then develop to export through it, and you'll get much higher quality results than Crosswalk.

    CocoonJS is not just Canvas+. We also offer a similar solution to Crosswalk (WebView+) or even to PhoneGap (WebView).

    The term CocoonJS has been related to Canvas+ for a long time and it is completely understandable, but please, from now on, we would much appreciate if you could specify that your comments are about CocoonJS Canvas+ or WebView+ or WebView. We know it is a complicated change of mindset, but CocoonJS is no longer just Canvas+ so this distinction will help us better identify what technology you are referring to. Thank you very much!

  • ludei,

    Will start saying CJS Canvas+ from now on. Sorry about that!

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