Corona performance question

I’m busy trying to assess which framework is best to use for developing a 2D game, and as part of that I’ve been looking at Corona - which has many fantastic points in its favour.  However a development company referred me to a simple example game (Wild Chase) that they developed in Corona recently and the performance is far from good.

Performance is major consideration, so I would like to get some more objective feedback as to whether this is slow due to poor implementation, or simply because it uses Corona.

I realise that there are many old post online saying that Corona has poor performance, but I’ve also read that this has recently been improved.  I’m just not sure how much it has improved.  Ideally it would help if I could be shown some examples of games which use Corona and have great performance with many animated sprites on screen at the same time.

TL;DR: Is Wild Chase slow because of poor implementation or the Corona framework?

IMHO: Performance with Corona depends entirely on how you write your code, which is true of any application in any language. However, in recent months (the last year, actually) we have seen examples such as the 5000 fishes which demonstrates perfectly that Corona’s graphics engine is far from weak - and when Graphics2.0 com out will be even better. As far as memory management and program control goes… This is definitely more down to how you such code and handle logic. If you are creating lots of objects and reusing them, rather than creating and destroying regularly, you’ll benefit. My game, Tiltopolis, I believe, has a LOT going on in the background, but I’ve done a lot of work to increase the performance. All of the iOS devices I’ve tested on have shown decent performance. I’ve not tried this on Android, but I will do soon. Android is a very different situation simply because the are so much variable quality out there. Many devices simply won’t handle processor intensive apps or games and some simply have substandard GPUs. At the end if the day, Corona is free to do quite a lot with, so you are not very restricted if you want to write test code or even submit to the App Store. Try some code to test the system out and ask for beta testers on the forums. If you don’t get the performance you think it should provide, ask the forums why it could be happening.

Developing games with Corona, I’ve noticed below par performance, the most noticable is the slowness and of course some compatibility problems and trust me, I’ve done every memory saving trick in the book.

I have to disagree with horacebury, Android 4.0+ are the majority of Android users now. iPhone’s don’t even come close to Android when it comes to HD screens and processors. Especially with the new HTC One, GS4, and the Sony Xperia’s. The GS4 has a quadcore compared to the iPhone5’s duel-core, and also blows it away in RAM, let alone the European model of the GS4 has an 8-Core processor. There is no reason why Corona games should be slower on the Android than the iPhone, in fact they should be faster. I’m not trying to have a “vs” battle here, but it’s almost like Android has been neglected by Corona and developers only get the excuse from Corona that Android has too many broad versions. But then again, Corona’s main focus is iOS in the first place. It’s frustrating for Android developers, but still better than the Android SDK, Eclipse, and Java that spawned straight from hell.

“Most” Android users are not on the latest version and never will be because of the inability to update their device to the latest version of the OS. Also, “most” devices out there are not the latest and greatest, in the Android market. The problem on the Android software side is fragmentation where building one SDK for all versions is extremely difficult. This is the problem which CoronaLabs faces - not that Android has been left out but that it is easier to come up with solutions for problems on iOS. The point has also been made, on sites such as daring fireball, that sheer CPU performance does not necessarily equate to user benefit. I’m too ill right now to elaborate, but I think you get my point.

Thanks for the input on this so far, it has been helpful. 

Can anyone point me to some Corona apps on Android and iOS that show great performance?  Obviously I mean something visually complexed and not just a single sprite on a screen.

I think Cannon Cat has pretty good performance. Don’t know if it’s on Android though.

http://www.coronalabs.com/blog/2013/03/12/performance-optimizations/

Hi, try our game “Freeze!”, we now have 2.5 million downloads on iTunes / Google Play / Amazon combined and an average rating of 4.5 / 5 stars, so the gamers love it.

The game even runs very smooth on older Android devices, and on old iPhone 3GS devices, too. It features parallax scrolling in the background and lots of physics objects. 

Download the freemium version from Google Play ( for free, of course :slight_smile: ):

https://play.google.com/store/apps/details?id=com.frozengun.freeze&hl=de 

Of course we use less sprites simultaneously than in many other games, but it should give you a good idea of what’s possible.

Best,

Andreas 

IMHO: Performance with Corona depends entirely on how you write your code, which is true of any application in any language. However, in recent months (the last year, actually) we have seen examples such as the 5000 fishes which demonstrates perfectly that Corona’s graphics engine is far from weak - and when Graphics2.0 com out will be even better. As far as memory management and program control goes… This is definitely more down to how you such code and handle logic. If you are creating lots of objects and reusing them, rather than creating and destroying regularly, you’ll benefit. My game, Tiltopolis, I believe, has a LOT going on in the background, but I’ve done a lot of work to increase the performance. All of the iOS devices I’ve tested on have shown decent performance. I’ve not tried this on Android, but I will do soon. Android is a very different situation simply because the are so much variable quality out there. Many devices simply won’t handle processor intensive apps or games and some simply have substandard GPUs. At the end if the day, Corona is free to do quite a lot with, so you are not very restricted if you want to write test code or even submit to the App Store. Try some code to test the system out and ask for beta testers on the forums. If you don’t get the performance you think it should provide, ask the forums why it could be happening.

Developing games with Corona, I’ve noticed below par performance, the most noticable is the slowness and of course some compatibility problems and trust me, I’ve done every memory saving trick in the book.

I have to disagree with horacebury, Android 4.0+ are the majority of Android users now. iPhone’s don’t even come close to Android when it comes to HD screens and processors. Especially with the new HTC One, GS4, and the Sony Xperia’s. The GS4 has a quadcore compared to the iPhone5’s duel-core, and also blows it away in RAM, let alone the European model of the GS4 has an 8-Core processor. There is no reason why Corona games should be slower on the Android than the iPhone, in fact they should be faster. I’m not trying to have a “vs” battle here, but it’s almost like Android has been neglected by Corona and developers only get the excuse from Corona that Android has too many broad versions. But then again, Corona’s main focus is iOS in the first place. It’s frustrating for Android developers, but still better than the Android SDK, Eclipse, and Java that spawned straight from hell.

“Most” Android users are not on the latest version and never will be because of the inability to update their device to the latest version of the OS. Also, “most” devices out there are not the latest and greatest, in the Android market. The problem on the Android software side is fragmentation where building one SDK for all versions is extremely difficult. This is the problem which CoronaLabs faces - not that Android has been left out but that it is easier to come up with solutions for problems on iOS. The point has also been made, on sites such as daring fireball, that sheer CPU performance does not necessarily equate to user benefit. I’m too ill right now to elaborate, but I think you get my point.

Thanks for the input on this so far, it has been helpful. 

Can anyone point me to some Corona apps on Android and iOS that show great performance?  Obviously I mean something visually complexed and not just a single sprite on a screen.

I think Cannon Cat has pretty good performance. Don’t know if it’s on Android though.

http://www.coronalabs.com/blog/2013/03/12/performance-optimizations/

Hi, try our game “Freeze!”, we now have 2.5 million downloads on iTunes / Google Play / Amazon combined and an average rating of 4.5 / 5 stars, so the gamers love it.

The game even runs very smooth on older Android devices, and on old iPhone 3GS devices, too. It features parallax scrolling in the background and lots of physics objects. 

Download the freemium version from Google Play ( for free, of course :slight_smile: ):

https://play.google.com/store/apps/details?id=com.frozengun.freeze&hl=de 

Of course we use less sprites simultaneously than in many other games, but it should give you a good idea of what’s possible.

Best,

Andreas