16

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?

genpfault
  • 51,148
  • 11
  • 85
  • 139
Oneiros
  • 4,328
  • 6
  • 40
  • 69

4 Answers4

22

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.

Prime
  • 4,081
  • 9
  • 47
  • 64
2

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!

rbgrn
  • 304
  • 2
  • 6
  • If I was looking to make a game for the phones and also have a desktop version with a different interface, would BatteryTech still be a good option? – Slims Jan 28 '13 at 20:30
  • Yeah, it would require a little TLC to have really good desktop support because of things like window resizing, device selection, etc that aren't built in to BT by default but it could be done if you're willing to put in an extra week or two to really get it working nice. – rbgrn Feb 15 '13 at 00:23
2

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.

Emil Vikström
  • 90,431
  • 16
  • 141
  • 175
  • 2
    I can't believe Cut the Rope is created with HTML5/CSS3/Js! Are you sure about this? – Oneiros Apr 28 '13 at 23:12
  • It seems Cut the Rope was ported to HTML5 from the original app: https://www.sitepoint.com/bringing-cut-the-rope-to-life-in-an-html5-browser/ – Pierz Oct 12 '17 at 08:25
2

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

http://unity3d.com/support/documentation/Manual/iphone-basic.html

Angry Birds was developed around the Box2D engine

http://www.box2d.org/features.html

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

Chamilyan
  • 9,347
  • 10
  • 38
  • 67
  • +1 for pointing to Box2D, it is indeed a nice engine! :) – TeaCupApp Aug 28 '11 at 23:15
  • yeah, I used to play around with it in actionscript. Iv'e always wanted to see a [BUMP](http://bu.mp/api) Box2D mashup! for iPhone bumper cars, that would be awesome! – Chamilyan Aug 28 '11 at 23:38