The best advice I can give is don't just use one book. The Stephen Cochan book is great but you may want to compliment it with the "Learn Objective-C on the Mac" fruit book. http://www.amazon.com/Learn-Objective-ndash-Mac/dp/1430218150/ref=sr_1_1?ie=UTF8&s=books&qid=1278154541&sr=8-1 The reason being is if you get stuck on the Cochan book, you can hop to the fruit book and see how they do it. There are always multiple ways to solve any programming problem. You will also want to make sure you understand classes completely. They are pretty much the core of object oriented programming. Learn how different objects work with each other. Now, once you get comfortable with the Objective-C, you have to decide if you want to handle your graphics yourself, or use a game engine. It sounds like you want to use Unity which is an excellent game engine. That being said, to make anything worth while in it you have to understand how to script which is where learning to program comes in. In Unity, you will attach scripts to objects to make them behave in a certain way. If you want to make a power up spin you would write a script that is something like this (be warned, the syntax is NOT correct since I forget a lot of my scripting and am too lazy to reference it). MyPowerUp:Movement { MyPowerUp.Rotate(0,5,0) } You would then drag this script onto your power up you want to affect and then when you play the game the power up will spin around the y axis. This is the fastest way to build a game but the big downfall is you have to kind of know what you are doing and what kind of things exist in 3D games. Ray casting for example is something that is used ALL of the time, but if you have no clue what that is or why its useful you may run into trouble. That being said there is a book on unity and it just so happens to cover raycasting and a lot of unity basics and will get you up to speed faster then reading the Unity documentation: http://www.amazon.com/Unity-Game-Development-Essentials-Goldstone/dp/184719818X/ref=sr_1_1?ie=UTF8&s=books&qid=1278155080&sr=1-1 Even though all of that will get you some type of result, in my honest opinion its probably not going to be what you are looking for. If you want a rich 3D world with lots of stuff its a ton of work and is not for one person no matter what your skill level. My suggestion would be to concentrate on the programming, those two books I mentioned combined with iPhone 3 Development, and iPhone Game Development would give you a great head start into getting graphics and games made on the iPhone. You really have to work at it though. Once you go through those books (all 4! No skipping!) I think you will get a good enough of an idea of the things you need in a game to start using Unity to more of its potential. Unity will still be a lot of work as will asset creation but you will understand what you are looking at when you read the Unity scripting documentation and how everything pieces together. Ok, that was super wordy but to sum it up: Read (in order): Steve Cochan's Book APress's Learn Objective-C On The Mac Beginning iPhone Game Development Unity Game Development Essentials Be aware that this will be a LOT of work and you will also be referencing a TON of stuff all the time. A programmer can't remember it all. Also if you want to look at a walkthrough of the Unity book as well as a tutorial that is on the Unity site you can look here: http://scottsgameblog.com/ Click on "December" and read from bottom to top into January and I think February is where the Unity 3D book is finished. Its basically a walkthrough of the book exercises and some exercises on Unity's site plus some other stuff. It's not exactly a follow along tutorial but it will show you the work involved for simple stuff.
Thank you for the extensive post. I'll see where I am when I finish Kochan's book. I might just start reading that book about Unity you recommended and try playing around with the Unity Engine for a few months before beginning to create something that I would publish. I'll look into the other books as well, since you make a good point that if I don't understand something in Kochan's book I can look at another book.