(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:
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.