iOS Game engines and frameworks

I want to publish an iphone app.  And this time I want to make a fun game.  I had made two small games in my iphone programming class but I don’t feel like publishing them because they are too generic.  I want to make something looking good and a bit more complicated then what I did in class.  In class we used iOS’s basic uikit library, which is not good for making fancy graphic games.  I decided to use a game engine.  The two very famous game engines on the market are Unity and Unreal.  They both have free download versions for individual developers.  After some research, I decided to use Unreal Engine for two main reasons.  First, the Unreal Engine free version offers complete features.  It offers the same functionality as the paid version.  Unity’s free version is a stripped down one, some nice functions like advanced shaders are not available.  Second, Unreal engine has better graphic rendering, the games made with Unreal looks better than games made with Unity.  Top selling games like Gear of War, Unreal Tournament, and Mass Effect 3 are made with Unreal Engine.

I downloaded th Unreal Development Kit(UDK) and want to try it out.  No surprise, it’s not easy for a beginner trying to make sence out of it.  I have to search for documentations online.  It turns out this UDK has a steep learning curve.  Another thing I need to consider is that the Unreal Engine is a 3d engine.  For starting game programmer, it’s better to use a 2d engine.  Currently there is no better ios 2d engine than coco2d which I had been reading tutorials on it.  I have to put down the UDK for now and work on coco2d first.  And I just found out there is a framework named coco2d-X which is a C++ port of coco2d (objective-C).  The good thing about coco2d-X is that it works on both iOS and Android.  Write once and it runs on both mobile platforms with little tweaking.  Sounds nice.

I once thought about getting a job as a game programmer.  However, the researched facts turned me away.  Here are the facts about professional game programmers: lower pay than other software professionals; much longer work hours(60-80 hr/week); much higher competition (people start making games at 15, a lot of people want to make games), people burnt out in 5 years or so.  It is better to keep it as a hobby.