Presales questions

I hope this is the right forum. I’ve been poking around reading up on Corona and it seems like a nice solution. I’d been looking at Unity and also played around with cocos2d. I’m trying to decide what the best solution is for me.

Corona appeals because of the android possibility and also perhaps win 7 mobile too (i’m just guessing here but isn’t that the whole point of lua!)

However i have some questions:

  • is lua compiled or interpreted? I believe it’s interpreted on a VM (according to wikipedia). In which case are there any benchmark tests to compare to a native Obj-C application? Or a rough guide to a performance hit?

  • Is there an overhead in app size because of this?

  • Can i communicate data to a webserver, not images?

  • Is there any 3D support in corona

  • With something like the movie sprite how efficient are they, in cocos2d it’s quite near the hardware so creating one texture sprite sheet is more efficient than other methods. When dealing with something that abstracts away from the hardware it’s important to know that the abstraction is as efficient as possible.

I hope these are sensible questions and make sense

cheers
paul [import]uid: 5764 topic_id: 675 reply_id: 300675[/import]

Just to add to the above.

I don’t believe there is any 3D support at all (judging by the API)

Also there doesn’t seem to be any multitouch events (there’s a todo note in the API, not sure if 1.1 handles this)

But i know that i can use http and sockets to get data which is cool.

any help for the above?
paul [import]uid: 5764 topic_id: 675 reply_id: 1350[/import]

Hi Paul, the stock Lua VM is interpreted. However, we take your Lua code and compile it. Based on our experience on Flash for pre-smartphones (Flash Lite), the performance bottlenecks were related to graphics and rendering. In Corona, everything is rendered on top of OpenGL-ES. It’s a fully hardware accelerated graphics and animation engine. Sprite sheets are on our roadmap.

As with any code in any language you choose, you’re more likely to hit performance hits when you choose slow algorithms (e.g. actual timed performance slowdown) or design interfaces that don’t provide good feedback to the user (e.g. user-perceived performance slowdown).

The compiled binary is smaller than a camera photo. So your app size is dominated by multimedia (images, sound, etc.) files.

Yes, you can communicate to a webserver using the http library. We’ve got a SimpleImageDownload example that shows how to perform http requests. The Facebook Connect sample code comes with the facebook.lua and json.lua libraries. You can use that as a way to see how we combine json and http.request together.

On our todo list is to provide a non-blocking version of http.request. It’s possible to do it today yourself by using the lower-level socket library plus the coroutine library, but we recognize that’s not ideal for most people.

No 3D support today. We’re currently focused on adding lots more features for 2D graphics like the Box2D physics engine.

And yes, multitouch is tops on our list, given that we’ll be supporting iPad.

cheers,
walter [import]uid: 26 topic_id: 675 reply_id: 1359[/import]

Walter,

Thank you very much for your response. I’d just about decided to go down the cocos2d route and now you’re making me change my mind!

I spent some time with the trial version, it’s good but the tools aren’t very friendly so far - i’m sure this will change in the future. Not being able to preview lots of UI elements in the simulator is a problem and i have to say that there seems to be quite a way to go. Having said that the foundation looks really solid and your objectives are all spot on.

The question is really how long do you think it will be before we see these implemented?

Are there any ways in which we as developers can add core functionality?

Can registered developers access beta versions?

One area i would like to see wold be simple 3D transforms for sprites, even just simple flipping around in 3D. Cocos2d has these, simple and effective. And based on feedback in cocos2d sprite sheets are essential in terms of performance and overhead. There seems to be no direct access to GL, if there were then perhaps these could be done by us?

I’m keeping my eye on this…

thanks
paul [import]uid: 5764 topic_id: 675 reply_id: 1366[/import]

Hi Paul, thanks for the feedback.

We’re trying to push out beta’s at an accelerated pace and prioritize features based on feedback from folks like yourselves. In terms of beta access, we typically roll out private betas to existing subscribers first. Then we determine if a public beta is necessary and possibly roll out to registered developers.

We are currently planning to release a roadmap with some tentative dates, so hopefully that will satisfy your curiosity.

I’ve been thinking about how the community can help us speed up development. One of the hard parts that just takes time and iteration is the design of Corona API’s in exposed to Lua. We’re very focused on creating API’s that follow the 80/20 rule. That is, they make the 80% (common case) really easy, so easy that you ideally only need one line of code. On top of that, we’d like the API to encapsulate the other 20% in some fashion that gets the job done w/o being overly complex.

This is why it sometimes takes longer for us to expose new features. We don’t just blindly wrap up Objective-C calls. We also consider the use cases, how the API gets used, etc. On top of that, there’s one more ball to juggle, namely making it multiplatform.

Perhaps as a start, proposing some API and showing how that might be used in real working code. Of course, you’d have to give us the rights to use it :wink:

For 3D flipping, that’s something I really want to do, but the semantics need to be defined, e.g. does the animation pause during a flip?

Also, several game dev features like texture atlases and sprite sheets are at the top of our list.

cheers,
Walter
[import]uid: 26 topic_id: 675 reply_id: 1370[/import]

Walter,

Some great comments there. Knowing that you and ansca are listening to the community is enough for me to buy into corona. I see the potential here and the initial simplicity of the system appeals.

Once i’ve spent some time doing some real coding i will feedback properly.

In terms of 3D flipping i would expect to be able to rotate a displayobject in 3 dimensions around it’s reference point with the ability to change the texture or sprite on it for the reverse side, whilst other animation is happening. My only comparison is really cocos2d and the range of sprite tests in there, so i can see all this being done on the iphone and very effectively. If you’re piggybacking on GL in a similar way then corona should be able to do everything too.

Also i think you should expose the blending effects of GL - like add, to help create particle and glowing effects. I wouldn’t have thought it would be too difficult?

cheers
paul [import]uid: 5764 topic_id: 675 reply_id: 1373[/import]