I have been looking at Unity3D and some 2D add-ons that ostensibly make it easy to create 2D games. Every so often I take a look at Unity3D because it has a lot to offer – cross platform app generation, easy asset management, built in physics, the list goes on. Plus there is the whole asset market they have set up that looks just like the iOS App Store. You can buy 3D figures and animations and import them incredibly easily. If I were looking to make a 3D game I would give serious thought to using Unity3D.
There are, however, some things about Unity3D I’m not crazy about, although some of these things are probably failings of mine more than Unity’s. First and foremost, I can’t seem to find a tutorial that talks about high level workflow in Unity3D. Most of them seem to talk about the UI or specific functionality in a detailed way. The “this is how you do this in Unity3D tutorials”. I need one that says “this is the workflow (or one possible workflow) that you use to go from an empty project to a finished game”. Perhaps they exist and I just can’t find them.
There are books, of course. Several of them. I’ve taken a look inside via Amazon at one or two, but I haven’t found what I’m looking for yet. Besides, if I need an entire book to give me a high level overview of the Unity workflow, maybe it’s not for me.
The other limitation of Unity, if you can call it that, is that Unity 3D is made for, wait for it, making 3D games. There are what look like some good 2D plugins for it that take advantage of the 3D for things like parallax scrolling, but it seems a little kludgy to me. Since I haven’t actually used them I probably shouldn’t judge them, so take that for what it’s worth.
Finally, Unity 3D is expensive for a bitter, unrecognized genius like me. When your games sell in the hundreds, not hundreds of thousands, shelling out > $1K to develop an iOS game isn’t going to happen. For big time developers it’s probably a great investment, but it’s too steep for me right now.
So what to do if one isn’t (yet) interested in developing 3D games? There is the very good Cocos2D, but I decided against that a long time ago because it didn’t really buy me much that I hadn’t already created (sprites,texture atlases, fonts, etc.). Plus it didn’t use OpenGL ES 2.0, so no shaders (this is changing).
The main thing I have been looking for is the ability to script levels. I have recently developed an interest in using Lua for scripting my games. At first I considered rolling my own Lua bindings, but this looks like a lot of work and I am generally a very lazy person. So I am now taking a look at Corona and it looks very promising. It is strictly 2D and more of an SDK than an engine/application like Unity 3D. It’s also much cheaper (free until you want to deploy to the app store, then it’s < $400). Like Cocos2D it doesn’t support OpenGL shaders, but this is on their roadmap. Hopefully it gets added soon.
There are some third party tools that work with Corona for creating sprite maps (including defining collision boundaries) and even laying out levels. I will be taking a look at these in the coming weeks. In the mean time, I will be experimenting with Corona to see if it will work for me. If nothing else, it looks like a good platform with which to learn Lua.
So there you have it. If you were looking for a blow by blow comparison of Unity3D and Corona, sorry to disappoint you. Maybe when I have more time.