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.