Corona SDK- split thread

Moderator
Posts: 3,572
Joined: 2003.06
Post: #16
Well-said, Skorche!

(Jan 6, 2011 01:41 PM)J. A. Whye Wrote:  
(Jan 6, 2011 01:15 PM)AnotherJake Wrote:  I looked at the top five "app of the week" apps using Corona and every single one of them strike me as being simplistic. Now, while that in and of itself is certainly nothing new for the App Store, I see nothing that would compel me to suggest Corona to others -- especially for the price. The level of skill required to do the stuff that I saw in those apps is fairly minimal in my view.

And the original poster in the thread this began in said:

"Let me start by saying that my ultimate goal it to program a simple iPhone app/game..."

Touché! Admittedly, you got me there, but I was making my statement in conjunction with the price, not simply the skill level.

Let me be clear about my view of Corona, which basically boils down to two major negative first impressions (not final impressions):

- I was not impressed by the video, although obviously it appeals to others. First impressions are often makers or breakers, and to me, boxes falling doth not a decent game engine make. I may have been overcritical.
- Corona is too expensive for what it offers, IMHO. However, I do have an open mind and could possibly be convinced otherwise. 2D/OpenGL/C/Obj-C are pretty trivial for me to do because I've been doing them for so long now. Perhaps I've forgotten how hard they are to pick up? Again, maybe I'm not seeing the value properly on first take. Not to mention that they need to make a profit to survive as a business, yada, yada.

On the positive side:
- The website certainly looks fluffy enough to be easy on anyone's eyes.
- While Corona might not do much in my view, it appears like it does work as advertised.

Sorry I don't have any questions for you that haven't already been asked. The other questions I had were sufficiently answered by reading the API docs.
Quote this message in a reply
Moderator
Posts: 3,572
Joined: 2003.06
Post: #17
Just to let you know, I came back and edited some of my posts here to soften my stance on it a little. I read it again this afternoon and realized I was just being a jerk after losing that contract yesterday. Again, my apologies.
Quote this message in a reply
Apprentice
Posts: 18
Joined: 2011.01
Post: #18
No problem, seriously, but thank you. And I'm not ignoring my intention to post some responses -- this new version of CPM is just taking a little longer to get out than I expected (what else is new).

Thanks.

Jay

http://GameDevNation.com - Corona SDK Tips and Tutorials
Quote this message in a reply
Moderator
Posts: 3,572
Joined: 2003.06
Post: #19
(Jan 6, 2011 02:46 PM)AnotherJake Wrote:  - Corona is too expensive for what it offers, IMHO. However, I do have an open mind and could possibly be convinced otherwise.

Well, like I said, I could possibly be convinced otherwise, and after further study of Corona I am. Now I have to take back my criticism of the price as well. It does actually appear to be a fair price, and their unlimited trial is great as well.

So the only thing that I'm left to complain about, really, is how much the video set me off with a negative impression of the product, which in retrospect is both important and trivial at the same time. As a developer, I expect to be introduced to products differently, but here I am investigating the product after all, so no matter how you cut it, that was in fact my introduction to the product, even if I was "notably unimpressed" by what I saw in the video and a followup "glance" at the API.

I am thoroughly amazed at how excited folks are about it. I guess I've been living in my own little do-it-yourself game developer bubble for so long now that I haven't been looking much at what the outside world of up-and-comers are looking for. Upon further investigation of the API, there are a few things Corona does that I don't do myself (simply because they aren't features I wanted or needed), but conversely there are many things I do that Corona doesn't, and further, there are a lot of things you'd find in both theirs and my own APIs. Some of the "features" that they use as sales points for Corona are so trivial to implement that I was put off by them being sales points at first, but then I started to realize that what may be easy for some of us who are experienced with this sort of thing could actually be quite difficult for those who aren't. Things like adding analytics is brain-dead simple. Something like adding OpenFeint, while not difficult for those of us who understand that sort of thing, would admittedly be quite challenging to someone without the proper level of experience. Further, packaging up a simplified interface for others to use for those third-party products is no trivial task after I thought more about it. That is, yeah sure it's easy for me to use those things directly in Cocoa/C/whatever, but presenting a distilled call through Lua for them isn't necessarily as simple as it might seem from the outside.

Honestly, if all I did was slap some Lua bindings on my own "engine", it'd look quite similar to Corona, except the API would be like four times the size, just for the main calls (note: this is not to suggest that providing a commercial engine is anywhere near as simple as "slapping on some bindings"). Then I realized that if I were to package it up as something more approachable for less advanced developers, I could imagine cutting it down in size to bare minimums to look more like Corona's size and approachability. It is clear to me now that they've put a lot of thought into what they're offering in terms of the API. The more I dig into Corona the more I keep asking myself why I'm not offering something similar myself, perhaps with a different approach to things. It'd be an awful lot of work, but it could be a lot of fun too! ... have to think about this some more...
Quote this message in a reply
Apprentice
Posts: 18
Joined: 2011.01
Post: #20
AnotherJake, I'm honestly impressed. Most people, once they take a stance, hardly ever go back on it. They tend to dig their heels in and do everything possible to justify their original decision. Which is why I didn't even bother responding to the initial questions -- it felt like I would just be walking into an ambush. Smile

And like I said at the beginning, it's fine if someone doesn't like Corona, but knowing why is always a good thing in case it's due to a miscommunication, etc.

About the video -- someone mentioned that dropping boxes isn't a game and could give beginners the wrong idea that it's *that* easy to create a game. I was looking at the video from the standpoint of someone who's done all the grunt work at many times during my programming career -- and here was something where the grunt work was *done* for me.

Plus, while dropping crates isn't a game, change the artwork and make them kittens. Then add a fireman who runs back and forth at the bottom with a basket catching them. Now you have at least the start of a game -- and you can get started much faster than having to start from scratch.

That's what I saw when I watched the video the first time -- freedom from having to do everything from the ground up.

(Unlike you, I'm new to iOS development so I don't have tons of source code to pull from, prebuilt libraries, etc.)

About the physics -- there were several questions about the physics model in Corona and I want to mention again that I'm a Corona newbie, so if I get something wrong chalk it up to inexperience, not malice. Smile

Not everything uses a rectangle for collisions. You can specify a radius for round objects or you can specify a polygone for irregular shapes.

You can add shapes together with joints to make composite objects -- someone in the Corona forums put together a ragdoll sample which I've played around with.

About event handling -- there were a couple questions about events and how to use them to handle game mechanics, etc. Corona uses event listeners to handle things from turning the device to taps. Such as...

Code:
Runtime:addEventListener( "orientation", onOrientationChange )

...that will call the onOrientationChange function when you turn the iPhone/iPad from portrait to landscape or vice-versa.

Code:
crate:addEventListener("touch", bustCrate)

That will call the bustCrate function when you tap the crate object on the screen.

There are other events you can listen for, such as "enterframe", "accelerometer", "location" that do more specialized things.

About sprites -- someone asked about sprite faces and things and while I've played around with sprites in Corona I'm not sure what the question meant. Smile There is some info on sprites here:

http://developer.anscamobile.com/referen...ite-sheets

...and I do know Ansca is committed to beefing up the whole sprite engine even more than they have so far.

That's not a question-by-question list of answers, but looking back to the previous posts there were a lot of words in there. Smile If I glossed over something you really care about, let me know and I'll dig in and see if I can find the answer for you.

Thanks.

Jay

http://GameDevNation.com - Corona SDK Tips and Tutorials
Quote this message in a reply
DoG
Moderator
Posts: 869
Joined: 2003.01
Post: #21
Oh, Flash-inspired event handling. Do not want. Not that structured event handling is simpler, but its much more scalable.
Quote this message in a reply
Moderator
Posts: 3,572
Joined: 2003.06
Post: #22
(Jan 10, 2011 03:39 AM)J. A. Whye Wrote:  AnotherJake, I'm honestly impressed. Most people, once they take a stance, hardly ever go back on it. They tend to dig their heels in and do everything possible to justify their original decision.

Heh, yeah, well I guess I've learned that subjective opinions don't often generate as many positive end results as objective ones can, so second looks can be quite helpful. I still need to learn how to stop mouthing off about things sometimes Wink

In this particular case, upon closer inspection, I happened to notice a few things about Corona which I hadn't thought about before. In fact, I emailed my game dev partner, Casey, about this and we are now planning on releasing an alternative product to Corona, perhaps later this year -- depending on how much time I can squeeze into development in-between other projects (and assuming I don't take a full time job which has been offered to me).

(Jan 10, 2011 03:39 AM)J. A. Whye Wrote:  (Unlike you, I'm new to iOS development so I don't have tons of source code to pull from, prebuilt libraries, etc.).

... and right there is the main thrust behind our reasoning in going this direction. We already have truck-loads of existing code for this sort of thing, and have been steadily improving our approaches, and adding new "features" along the way. I'll have to re-think things in order to provide an approachable public API, but looking at Corona, we are fairly confident we can meet that challenge.

(Jan 10, 2011 01:47 PM)DoG Wrote:  Oh, Flash-inspired event handling. Do not want. Not that structured event handling is simpler, but its much more scalable.

I suspect that in the case of Corona they are reaching out to the Flash community to offer a product which has some similarities to it. We noticed they're leveraging off of several already familiar things to Flash developers, such as Box2D for physics. It's a pretty smart approach, really, even though I'd have to agree that I'm not really up with the callback-style event handling myself. They also may have stuck with that approach for performance concerns since they're using Lua. While Lua is certainly fast, it isn't ideal in comparison to bare metal languages, or even C# for that matter... of course C# requires a significant fee per seat on iOS via Mono, which would be why I'd say Lua is a reasonable choice in this case ... but it seems to me that dispatching each event directly to a target in Lua could be significantly more efficient than forcing it through potentially a bunch of branches in a virtual machine. <-- pure speculation on my part, since I've never tested a "best approach" for a Lua environment.
Quote this message in a reply
Apprentice
Posts: 18
Joined: 2011.01
Post: #23
Quote:I suspect that in the case of Corona they are reaching out to the Flash community to offer a product which has some similarities to it.

The founders of the company (Ansca Mobile) both came from stints at Adobe where they worked on Flash stuff, so it kind of makes sense they'd go with something with which they were familiar. Corona SDK started out as a way for them to create mobile apps for themselves and later they thought about packaging it for others.

Hmmm, AnotherJake, sounds like a familiar line of thought. Wink

Jay

http://GameDevNation.com - Corona SDK Tips and Tutorials
Quote this message in a reply
Moderator
Posts: 3,572
Joined: 2003.06
Post: #24
It sure does! Grin

We know we already have the goods, but packaging it for public consumption wasn't what we were thinking with the current design, so it'll be quite a challenge to re-think and re-design things for that purpose. We think it'll be fun though, and fun projects are hard to turn down. Wink
Quote this message in a reply
Apprentice
Posts: 18
Joined: 2011.01
Post: #25
Back on the topic of "physics doesn't make a game" I just downloaded and tried a game called Bubble Ball that was done using Corona. It has *very* rudimentary graphics but it's fun -- which is a fairly good test of a game. Smile

And it's basically just a bunch of physics objects put together.

The developer is 14 years old and says he had 300,000+ downloads the first week. I kind of wonder if maybe he didn't read the stats wrong because there are only 16 comments on the iTunes store and that seems a little low for that many downloads. On the other hand, it's iOS and Android so maybe the 300k number is split between them.

But that aside, there's a simple game made with Corona that's fun, and a 14-yo was able to create it. (I don't know him, maybe he's a genius, so that point might be moot, too.) Smile

Jay

http://GameDevNation.com - Corona SDK Tips and Tutorials
Quote this message in a reply
Moderator
Posts: 3,572
Joined: 2003.06
Post: #26
(Jan 10, 2011 04:34 PM)J. A. Whye Wrote:  I kind of wonder if maybe he didn't read the stats wrong because there are only 16 comments on the iTunes store and that seems a little low for that many downloads.

Heh... you're probably right, but having had first-hand experience with comments vs. download count, you'd be surprised sometimes. On one of our products, we were making nice sales for the first three days, but not a single comment to be seen. Then on like day four comments flooded in and sales were weak, even though the comments were positive; go figure... For another, doing the OpenFeint free game of the day, we saw not a single comment after like 30,000 downloads, that I recall.

Another thing to keep in mind is that you might be getting huge sales in like South Korea (we've had strangely good luck there for some unknowable reason) but comparatively nothing in the US. You won't see those Korean comments in the store because they're only visible in the Korean store. You'll get them on the sales report from Apple though. ... speaking of which, there can be some real gems in the comments from other countries. I suspect there may be some LSD or something in the water in some parts of the U.K. Sneaky

Quote:"physics doesn't make a game"

I'm sure nobody meant that here. Lame physics doesn't often make a decent game IMHO though. What I saw in the video was a pretty weak demonstration in terms of physics, but apparently it is good enough™ for others to be convinced of the power. Changing the gravity vector is perhaps one of the easiest things to do in a physics engine, so for those of us who know what's up (pun intended), that ain't nothin' special. Box collision and response is really not all that hard to do either, so gravity combined with boxes just doesn't really light my fire. Now add some complex shapes, sleeping algorithms, joints, high velocity collision detection, etc., and we'd be talking. The ol' falling crate thing just doesn't do anything for anyone who's attempted even the most rudimentary physics simulation themselves -- because, well, you don't need a physics "engine" to do that Wink
Quote this message in a reply
Moderator
Posts: 449
Joined: 2003.08
Post: #27
J. A. Whye:
Did you take a look at the Chipmunk Physics video, and see all the things it shows?
Alex
Quote this message in a reply
DoG
Moderator
Posts: 869
Joined: 2003.01
Post: #28
Is there anything that makes Corona stand out, compared to free stuff like Cocos2d?
Quote this message in a reply
Moderator
Posts: 3,572
Joined: 2003.06
Post: #29
(Jan 11, 2011 10:37 AM)DoG Wrote:  Is there anything that makes Corona stand out, compared to free stuff like Cocos2d?

I was wondering that too. I think it's some combination of things, like maybe:

- Cocos2D requires using Objective-C, which I suspect is the biggest thing that folks like J. A. Whye are trying to get away from after having touched on it already and ran away screaming.
- Corona presents simplicity compared to Cocos2D, I think.
- Corona seems pretty clean.
- More "Flash-like".
- Cocos2D seems like you have to dig into it more and perhaps have more experience to use it.
- Corona has a "sales" team and presents a pro look like that.
- Since it's a commercial product, they should also have support for it, whereas Cocos2D is community support driven.
- Commercial products might seem more stable to some people?

I dunno, these are just some random thoughts about the perceived differences. I would really love to see what J. A. Whye has to say about this.
Quote this message in a reply
Apprentice
Posts: 18
Joined: 2011.01
Post: #30
Let me make it clear first that I'm not a guy who can't program a "real" language -- I've done complete programs (that shipped) in assembly language, C, Java, various BASIC dialects, PHP, etc. I've made my living as a programmer for over 20 years.

And maybe that's why I was dragging my feet in learning Obj-C -- I just wanted to make a game and I dreaded the thought of starting from scratch once again (I may be getting lazy in my old age). Then I discovered Corona SDK and saw that this:

Code:
local sky = display.newImage("sky.png")

...would put a graphic on the iPhone screen.

That's NOT just the core of the program, that's the ENTIRE thing! The source code for that tiny program is a single line.

I know full well that when you go with something that hides the complexity from you that you give up power -- you can't really have both. But in playing around with Corona SDK I discovered that for what I wanted to do (RPGs, adventure games, casual games, etc.) it appeared to deliver more than enough power.

Yes, I'd have to learn another language, but getting fluent in Lua is a lot different than doing the same in Obj-C.

That was the first thing that stood out to me: Corona SDK would let me get up and running faster.

Here's the second thing that started making me a fan -- after playing with Corona for a few days (and before I ever paid for it) I sent the company an email saying I really liked what I was seeing. I got a reply back from one of the co-founders of the company, and it wasn't a form letter -- it was a friendly email with the offer to answer any questions if I ran into roadblocks using Corona.

The guys behind Corona are *very* receptive to suggestions and criticisms and they're very visible in the forums -- you know they care about what the people using Corona are doing.

I knew about Cocos2D before Corona and if I had finished learning Obj-C I would probably have gone with it, but since Corona gives me the power I need at a reduced level of programming, for me it makes the most sense.

Sorry, I know that got pretty long-winded, but saying "Easier to use" and "good support" seemed a little too brief. Wink

Jay

http://GameDevNation.com - Corona SDK Tips and Tutorials
Quote this message in a reply
Post Reply