UPDATE 2/18/12: I’ve played a couple more games on iOS and Angry Birds does an instant flip with no mask. I’m not sure how to do that with Corona. And another game did the instant flip with black mask, I’m not sure what they are using. So it seems it might be normal behavior, even tho it does not look nice, as long as Apple approves it.
I’ve been using Corona SDK for about 3 months and managed to make one simple puzzle app to get the hang of it. Overall I’m happy with the support and the multiple platforms I can target, but I ran into many problems on my first go. I’m coming from the perspective of a Flash developer who is using Corona SDK to make simple 2D games. Here is my list of bugs I’m hoping they fix. I’ve already submitted these bugs for over 3 months, and seeing everyday their fixes involve non-core bugs (fancier stuff like widgets, cam, gps) I think its gonna be a while for us normal folk. It’s surprising that these bugs even exist since they are core to any 2D game engine:
- Support native orientation on iOS: When I say native I mean animated rotation of the screen like a normal iOS app. There is a coded fix for this in rotationfix.lua, but what is not supported is rotating physics or masks. So if you use physics or masks, your at a loss. If you don’t use rotationfix.lua your app will look very unprofessional flipping instantly, with a black mask slowly rotating afterwards.
- Physics bodies do not rotate with group: Related to the first one. Basically if the body was in a display group, it will not rotate with that group. I keep wondering how other physics games are getting around this, I’m guessing they never need to rotate the group? Link
- Masks do not work: Yes amazing but true, masks are extremely buggy, crash the simulator, do not rotate with its display group. And if you get past all that, if you have too many (maybe 10-20) your app will slow to a crawl. I was gearing up to make a jigsaw puzzle type game, but soon found out that even their own jigsaw example no longer worked. So if your game requires masks you are out of luck.
- Hit test over irregular shape problems: In Flash you can draw a vector and hide it over an irregular complex shape like a triangle. But doing it in Corona proves to be extremely difficult. There is a mask related hit testable type function, but I believe it is also an actual mask, and because masks do not work, pretty much makes this useless. If you wanted to hit test against a triangle, you can always use the physics engine with a polygon made with a physics 3rd party tool. Again this is something that was simple to do in Flash, now made super difficult.
- Need getPixel and setPixel type functions: Not really a bug, but if they made this available I would be able to do so many things. One of which would solve my above problems like making my own hit mask. I guess you can see a pattern in my need for masks 🙂