What is required to develop iPhone games?

I'm new in iPhone programming but I have a good grounding in Java and I'm starting to understand how Objective-C works. I'd like to start developing iOs games. Do I need to study Open-GL? Even for 2D games (like Angry Birds, Cut The Rope, Doodle Jump or Tiny Wings)? What do I need to learn to switch from simple UI apps (with buttons, sliders, labels etc.) to real games?


First off, you need a developer account with Apple to publish games on the iPhone app store.

Second, you probably aren't going to be using Objective-C all that much for games programming. Its runtime binding just doesn't compare to the speed of C or C++ method calls.

For any cross-platform game development (probably iPhone + Android) you will need OpenGL. OpenGL also happens to be the only way to make hardware-accelerated 3D games on either of these platforms.

My recommendation would be to learn OpenGL for iPhone games development. This has the added advantage of allowing you to write games for most other mobile platforms as well with minimal additional learning. You could of course use Apple's own 2D APIs for game development, but I wouldn't recommend it for the reasons previously stated.

Games programming is an entirely different animal from applications development. I'd suggest starting simple.

Happy games programming! Its my favorite development field.

Edit: I realized I made OpenGL seem as if it is exclusively used for 2D games development, which isn't true at all. OpenGL is well-suited to 2D as well as 3D games development, although the majority of its material is focused on 3D programming. 2D programming with OpenGL is effectively setting the Z coordinate to 0.

if your interested in making 3D games, check out Unity3D for iOS


Angry Birds was developed around the Box2D engine


.. and anecdotal wise the game developers didn't give the engine makers credit. (so don't make the same mistake when developing your game! :)

You don't need to know OpenGL at all. There are some really nice engine options, such as my company's BatteryTech Engine which you simply say what you want to draw and where you want to draw it, what sound to play, etc in Lua (which is super easy) and you also deploy on Android and others. There are a bunch of other options too but this is the one I prefer, though I am of course biased :)

The others are right - you need an iOS Developer account and you still need to understand the basic structure of an XCode project and how Apple does things no matter what solution you use. I've published over a dozen games over the past 4 years so Let me know if you have any questions and I'll be happy to answer.

Good luck!

Cut the Rope is actually created with HTML5/CSS3/Js...using the 'canvas' element... I'm interested in creating games like Cut the Rope too. You need to know how to create Sprite animations though, which are used with Css3's @keyframe property.

But Unity3D seems to be the best choice to develop 3D games on iOS and Android. If you know any 3D graphics application like Maya or Blender you can create your very own 3D game by importing assets into unity... such an example here... http://www.eatsheep.com/

In both the cases you need work with a 2D Game Artist and 3D modeler respectively, where as you can handle the development. good luck with that.

Need Your Help

Parallelize apply after pandas groupby

python pandas parallel-processing rosetta

I have used rosetta.parallel.pandas_easy to parallelize apply after group by, for example:

Permission denied when installing Tensorflow

python tensorflow

I am trying to install TensorFlow by Anaconda(My Python is 3.5.2 edition).