views:

153

answers:

4

Hi

I know this must be asked a millions times and can't be easy to answer as there is o definitive method, but any help would be appreciated, thanks.

I have been playing around with all sorts of things in Xcode and with Objective-C, however I can't seem to find a good way of learning things in an efficient way.

I have bought the book 'Programming in Objective-C 2.0' and its great but just lays down the basics it seems.

I want to learn in the 2D game development direction, then of course 3D after nailing that, if thats the right thing to do?

I am 17 currently in year 13, last year of school/A Levels and am almost definitely taking a gap year. Any good, well known reputable courses online or offline (real world)? This is my first programming language, and I am absolutely serious about learning this.

One last question, is when learning things online, I have in the past started building a feature and learning a certain aspect in programming only to find out after adding more its slows down the app or its to inefficient. Is the key to use a certain method in a certain situation (being os many ways to do the same thing) or use any of those methods and refine it in your app to make it run smoothly? Sorry, its hard for me to know when I have little experience, thus far.

Sorry for rambling on! I would appreciate any help, thank you!

+3  A: 

Cocoa and Objective-C Resources helped me a lot. It focuses more on mac programming than iOS.

How-to articles for iPhone development, Objective-C covers the iOS side very well.

GregInYEG
A: 

you'll need a few books/courses for a solid basis to build upon.

in your specific case, i recommend (in order):

  • a basic c++ book (see objective-c++ extensions for how this integrates with objc)
  • working with some well written c++ programs
  • then begin creating some simple c++ programs of your own
  • then a basic objc book (seems like you already have that - also, see notes below)
  • working with some well written objc programs
  • then begin creating some simple objc apps of your own
  • OpenGL is a technology you'll likely use for low-level graphics (iOS, and other platforms), so start modifying/extending some well written OpenGL programs, then create some of your own.

most of the code written for iOS games is not objc. you may also want to look into CoreGraphics.framework.

Justin
If he is learning ObjC to work on iPhone OS, wouldn't objective c++ be a bit redundant? I haven't ever run into the need yet.
Alex Gosselin
@Alex Gosselin objc++ is just extensions for the language syntax (e.g. there is no combined objc/c++ object). c++ is important for low level ood. objc is important for interfacing with apple's iOS libs. using c and objc only for game/graphics development is just making life unnecessarily difficult (imho). the order here is important because it is generally a mistake to learn c, when you know you'll (ultimately) be using c++.
Justin
True, c++ may be easier for graphics, but I think it may be easier for a beginner to blend objC and openGL rather than adding a third language (kinda) to the mix. Just my opinion though, depends how good Josh is.
Alex Gosselin
in my experience, a c++ developer does not have to try very hard to use c correctly, or to learn objective-c. a c developer has to try to learn c++ correctly, and will have to 'unlearn' many c habits they've developed (a c/objc developer does not approach a c++ program correctly until after much experience with the language). afaik, c++ (with some objc, and some c) is the lingua franca for what he's ultimately trying to accomplish. accounting for this, i see c/objc as a more direct result to beginner results, but much a slower route to intermediate development (and beyond). i made this mistake
Justin
(pt.2) and it took (much) more time to get where i ultimately wanted (er, needed) to be.
Justin
A: 

For iPhone, start with the book you have, go through it cover to cover, doing all the exercises. I did the same and it's a huge help.

Next you'll want to learn about the basics of cocoa, start by making simpler apps that don't have a ton of 3D stuff. I very highly recommend the iTunes U course (free on the itunes store) from Stanford University about programming for iPhone. The whole course is posted, and it's really well taught. I used the book you have and that course, and you will progress pretty far.

Next learn about Core Graphics. I haven't done much detail in this, but it'll help you with 2D.

It's important to take your time with each of these steps and make sure you really get one aspect before moving on or you'll get completely lost.

After Core Graphics, move on to Open GL, or the iPhone version (i think OpenGL ES).

Then you'll have a pretty solid foundation to learn games.

All this will likely take you months. Good luck.

Alex Gosselin
A: 

The best way for learning is doing. What kind of game are you planning to develop? You're mentioned 2D games, but what kind of 2D games? If you are interested in 2D board games, try GeekGameBoard. It uses Core Animation.

Please take a look at Cocos2D, it's a nice framerwork for building a game.

Most importantly, you must know the mechanism behind a game. For example, how to switch from one satte to another. The above mentioned GeekGameBoard is a good complete reference. Or you can get "iPhone Advanced Projects". On the top of my head, I remember in the second (or third?) chapter, an author of a popular iPhone game provides sources for simplified version of his game. In the first chapter, the author of Deep Green chess would introduces you the basic about making a great animated game.

Kinderchocolate