(Note: To the Cocos2D fanboys who stumble upon this — please don’t lay in wait for me in the parking lot. There’s room for both in this world. But I’m writing this from the standpoint of someone who’s living in 2011 and wondering why you guys are still partying like it’s 1999.)
EDIT: Be sure to read the update at the end.
I need to convert one of my iOS apps to the Mac and since Ansca Mobile doesn’t have an option to build for Mac, I have to find something else to use. I’ll reuse all the assets, of course, but since I can’t find a Lua-based Mac desktop thing (no, LΓΆve2D won’t work) I’m going to have to use something “non-optimal.”
As much as I hate to go back to Objective-C (shudder) I kind of decided that Cocos2D would be my best bet. It has Box2D physics and is a stable platform to build on. It’s been around long enough that there are (I think) few surprises.
So I went to install it this evening and ran into a different kind of surprise. Here’s the first part of the Install file:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 |
First, Install python 2.6, python 2.5 or python 2.4 For python 2.4 you will need two extra packages: - ctypes, http://pypi.python.org/pypi/ctypes - elementtree, http://effbot.org/downloads/#elementtree Then: Install pyglet 1.1.4 or newer ( http://www.pyglet.org ) Pyglet audio is included in the Pyglet binary package for windows and mac, see the pyglet page if you are on linux If you want to use the optional SDL audio, you will need - in windows, the pygame package, http://www.pygame.org/download.shtml - for other operating systems, ??? Finally: Get the source package at... |
…and it goes on from there with a bunch of terminal commands.
Am I missing something? Seriously, is *that* what people go through to program with Cocos2D? Unless I missed the “Install Automatically” button this is exactly why Ansca Mobile will “win the war.” (Not that anyone is actually at war with anyone else, of course.)
The only people who will ever end up using Cocos2D are programming geeks.
Not game developers, but programming geeks.
Sometimes they are one and the same (raising hand), and while I think any successful game developer will have to do some amount of programming (yes, I’m pointing at you, GameSalad), there’s a big difference between doing some programming and being a programming geek.
To create a game with Corona SDK you’re gonna have to write some Lua code, that’s all there is to it. But it installs like a normal application, you don’t have to be a geek just to get started.
Programmers get their jollies with the challenge of programming; game developers get their jollies creating games. And while some programmers will actually program and ship a game of their own, most won’t. Because as soon as the challenge is over — 80% of the game done — they’ll be off on another (better, more challenging) project.
Why would I speak so horribly about programmers?! Because I am one! I’m talking from experience!
My natural inclination is to go from challenge to challenge — when something gets boring, I want to hit the road. (And have, many times in the past.)
And that’s what separates game developers from programmers who want to write a game. The former is done when other people are playing their creation; the latter is done just as soon as the challenge is over.
Sure, there are exceptions everywhere, but in general I think I’m right on.
That’s why Corona SDK is a better option for game developers than Cocos2D — at least at this point. You shouldn’t have to jump through hoops to get started on your game. And yeah, you can “do more” with Cocos2D, but only after you climb the cliff of a learning curve.
And on that point, giving up some power in exchange for ease-of-use is a legitimate trade — as long as you don’t go overboard and end up developing a game in handcuffs (yes, I’m pointing at you, GameSalad).
If you’re a programmer geek have fun with the challenge of Cocos2D. If you’re a game developer, Corona SDK is almost assuredly a better option for you.
UPDATE: As someone pointed out in the comments, there are two versions of Cocos2D — one for Python and one for Objective-C. Would have been nice of cocos2d.org to mention that on their site, maybe? They do have a link to the iPhone version of Cocos2D, but I’m not looking for that versions.
Oh, wait, I am, because the iPhone version also does Mac. Beeble beeble.
So my rant about the installation process up above is rendered obsolete. Mostly. You still have to do some command-line stuff because you’re adding the Cocos2D library to Xcode.
I’m thinking about whether to pull this post since it was written with the focus on the installation process of Cocos2D vs Corona SDK. But the main point I was trying to make — game developers should not have to be programmer geeks — still stands.
For now I’ll leave it, but I may rewrite it in the near future.
If you want to explore Cocos2D but want something “better” than the standard experience, take a look at KoboldTouch — I’ve heard really good things about it. If I ever switch to Cocos2D that’s going to be my first stop.
Hello Jay,
Fellow Corona user here, with published game using Corona.
Jay, looks like you are falsely looking at original Cocos 2D engine which is for python http://cocos2d.org. Cocos 2D is actually a game engine for python at first. iOS developers ported that into Objective-C language etc, which you could find it in here http://www.cocos2d-iphone.org/
My opinion for Corona vs Cocos2D? Sometimes you need heavier gun to finish the game. Corona is REALLY productive, however lack many things, such as native code integration, etc. But if Corona fits your game, then go for it π
We use both native and Corona SDK development workflow for our games. We went back to native development because publisher like Chillingo or Big Fish needs to integrate their native library. However we still love Corona and will use it for many kind of games next time.
Okay, good, I WAS missing something!
However, i’m still missing it because I just went through the first four pages of Google results for cocos2d and all I see is the .org site and stuff about Cocos2D for iPhone — which isn’t the version I want.
Why do you Cocos people hide it so well? Ashamed? π
Jay
EDIT: Just found it. Thanks!
http://www.cocos2d-iphone.org/archives/1074
You know, in 2009 when I came to use Cocos2D, I thought the same: why is the iPhone version so well-hidden? Every time I was looking for it online, I went through cocos2d.org.
In 2011 I assumed that pretty much everyone saying “Cocos2D” meant the iPhone version and knew where to find it. It’s kind of odd to hear that there’s still people like you going to cocos2d.org only to find the Python version.
Steffen – Right now when you go to Google and enter cocos2d the first thing that comes up is Cocos2D for iPhone — but back when I was looking it was the cocos2d.org site that was first on the list. Which is how I got all confused. π
Jay
Nice one Jay! I could’ve written it any better.
I also tried using Xcode(Cocos2d) a couple of years ago. I purchased a couple books, watched tutors, and after
A month or so I said there has got to be an easier way to make iPhone apps.
So I started searching the Internet and came across GLBasic SDK, it is a multi-platform developing language that
Supports ( iPhone, iPad, Mac, windows, Linux, WebOS, etc.), the great thing is, you write code in Basic and the cost
Is a one time $125, also has a nice community. So I developed 2 games in GLBasic, “Just Pong” and ” Hit the Deck Baseball”
That are currently in the app store. Anyway GLBasic was o.k until I wanted more features, Box2d, Game Center, Ads, native UI, etc.
Sure you can add those to GLBasic, but you have to know some Objective C to make a wrapper.
So the search went on and came across Corona SDK, it has everything I wanted and here I am now.
Like you, I would like to convert my Corona apps to the Mac app store. Hopefully Carlos will add this feature in the future.
GameDevs v. Programmers – “The former is done when other people are playing their creation; the latter is done just as soon as the challenge is over.”
Ahem, I, err, don’t know what you mean…well that is…
I looked at Cocos2D and my first thought was: Cool! – Python!
Damn! that makes me a sure fire programmer right?
It is strange, I’ve been playing with Corona for months now and get very excited when I find some clever way to do something with it but none of the games I think of get past the first screen.
I’m not giving up yet coz some of the very simple stuff I HAVE done makes me laugh every time I run it so I’m taking that as a positive. Also I keep pondering on maybe using Corona for ‘other stuff’ i.e. not games as such which may be better use of my skills (as long as I still love the result).
Keep updating us with HC progress. You’re making it look so easy! Maybe that’ll kick my @rse into getting something finished! π
Mark, there’s nothing *wrong* with being a programmer. π But when you’re making tools for others to use it’s a good thing to keep in mind. And that may be the big difference between Cocos2D and Corona SDK — maybe the former is being written by programmers for other programmers. Whereas Corona SDK is being written by programmers for game developers. (GameSalad is written by programmers for game developer wannabes.)
Hello,
I follow Jay quite closely and I am rooting for his Horse Crazy App to hit the market.
I come from a zero programming background and when I wanted to start making apps/games for iphone android this is how my adventure worked:
Went online googled the obvious “How to program for iphone” and “How to program for android”….saw a few things and said “Obj C? Ok, I’ll learn that” I spent HARDCORE time learning it and even got a very very very basic thing that took freaking 384 lines of code to just get a @#%$#$%%!^ box to show up on screen with some scrolling text and I could push the button and have it change color and come back……384 lines of code WTF.
Then I said F this I’m out!…then the urge came back. So then I bought a book “Beginners Android Development” Ok sweet I was excited. Then it’s prerequisite “Have a very good understanding of Java” BAH. Then I was like ok, I tried this thing called “Live Code” (I think it’s called runRev now or something) it was kinda sorta like not really like Corona, but kinda ok. That turned out like crap, I only saw one game made with it.
THEN I was like Ok wtf is Cocos2d? I tried that, and dropped it within a week.
Then I tried Appcelerator, and figured that’s not for games and you have to know Java (but does write some pretty slick apps, my buddy writes for them).
After all this time and effort and crap, he (my appcelerator buddy I work with) said “Ever hear of corona?” I said “Well if it’s like all this other crap I tried, then I give up”
Thankfully I tried it out and the stupid thing I did in Ob C that was 384 lines of code was 16 lines of code lol. I laughed so hard and said wow, thank the magic monkey I found Corona.
I am sure it has limits (corona) but compared to Cocos2d (the topic of your post) I think it’s miles ahead for speed of development. I am sure when I am fancy pants enough to do cool stuff that I’ll probably think differently, but for now I am happy as a clam.
I have adopted to EMBRACE my limitations to make apps, and this has made me keep things simple, yet I can still do some kinda complex things. Rather than try to work around my obstacles, I try to work with them. This has helped me a lot.
CORONA FTW.
-Nick
You guys should use cocos2d-x, and compare with corona sdk
Unity3d trumps them all in my opinion.
Easy to code and it has boatloads of features.
Why delete this, I found it useful information coming from just developing a iphone app with the cocos2d objective c version and looking for a less demanding sdk. Now considering Corona only thing is there a way to still throw some objective c into your app?
Josh, There is no way currently to add any Obj-C to a Corona SDK app. While I don’t have any “insider knowledge” about what’s coming in future versions, my hunch is that will not happen anytime soon, if at all. I’d love to be wrong about that, though. π – Jay