Resources and examples for developing games on the iPhone - iphone

All,
I'm about to embark on the adventure of developing a game for the iPhone. I have never programmed games before, and have never used Objective-C either - it's all new. I have, however, done sufficient amount of programming (C# recently, C long ago) and am comfortable with programming, frameworks, SDK/API etc.
What resources would you recommend for a newbie game developer? Let's just assume my first game is only to learn basics of game programming and getting my hands dirty on Objective-C.
Any points, resources, book references, tutorials etc. much appreciated.
-Adarsh

iCodeBlog has some tutorials on how to make some simple games on the iPhone. Getting to know Objective C is also essential. Even though the iCodeBlog tutorials are simple you should also familiarize yourself with the language, eg. by reading Apples Objective C Primer.
Happy coding

Related

Iphone game dev, c++ / mac comparison

Hey guys, I've done some research but still unsure.
To get into IPhone Game Dev properly do I need to use Objective C rather than C++ ? I'm happy to invest in a mac mini and want to make sure I'm using the same systems/platforms professional Iphone Dev's use. Are most of the tutorials out there in Objective C E.T.C?
Cheers!
it's totally up to you. If you decide to write your own game engine you can do it in Objective-C or C++. IMHO there is no single proper way to do game dev. I use mac mini and do parts of my coding in c++ if I find that easier than coding in Objective-C. After all you don't want to mix engine stuff (probably using opengl) with ui stuff so your code gets separated anyway. It honestly doesn't matter what is the language of your game engine as long as you can use it on idevice and are comfortable writing in.
So to sum up, you don't have to cling to one language. Write your UI in objective-c and prepare the environment to use opengl and then write your engine in c++ if that suits you.
The fact that OpenGL ES is written in C means you can use C, C++, Objective-C or Objective-C++ to write your game engine. So use what you're comfortable with.
Many of the books that I've seen out there assume C++, but as I say, you can do your engine in anything of the above.

Making games in iPhone

Can anyone tell me what should i use to make games for iPhone...
Actually i am a simple application programmer ...but never made complicated high graphics games...
i have made some games but only simple one...
Which tool is good for me to start....
i am aware of OPenGL...is it good to start with this ??
I'd say if you're reasonably competent with iOS & Objective-C, then it might be worth taking a peek at the likes of Cocos2D. There's also the iOS port of Flixel (which you can grab with the source to Canabalt which is sitting on Github), but compared to Cocos2D - it's a little less polished due to it only being recently out there.
Unity's great if you're familiar with C# or JavaScript and interested in wanting to do 3D games - and if you're not as interested in going the full-hog with learning OpenGL ES.
Corona is the best thing for you start looking into.
I'd suggest a trip to the bookstore, to find a book which speaks to you, regarding iPhone Game Dev. A quick look at Amazon reveals quite a number.
There's a lot to consider when making games, it's a huge topic.
You should check out Unity 3D.
For someone new to iPhone development and game dev in general, I'd say start with Cocoa Touch as it is simpler than OpenGL and you can create simple games (for example words games) with it. And even if you decide to develop an OpenGL app for the iOs you still need to work with Cocoa so there is no escape from learning it.
Once you get your head around objective-c/cocoa/xcode and iphone development in general, then start looking at OpenGL.

iPhone:Learning Cocos2D project

I want to develop a game in a month by using the Cocos2D Open Source game engine. Learning Cocos2D is a bit hard and I don't know how to create my initial project by using the files provided by Cocos2D base project. I doubt whether it is possible?
Can I learn by using Cocos2D base project directly and modify it for my game application? Does the license allow me to use like that? ( Because I can't learn all OpenGL programming concepts and develop an application in a month, which is very hard. )
Appreciate your thoughts and advice.
Thank you.
, I have been programming games for iPhone for more than a year now! I started doing most of the things in Objective-C but then I learned that for most graphically ( or computation ) intensive games, Objective-C is not really the best option. There are a lot of paths like Pure Objective-C for logic, and inline C functions for the more "intensive" parts of your game, Obj-C does also let you use C++ files ( for the model classes for example ) with Obj-C++ (which is basically a .m Obj-c source code file but renamed to .mm for Obj-c++ ).
Having said that, Cocos-2D is in my opinion a wonderful library, it's mostly written in Obj-C but has pure C parts for the most CPU intensive stuff (physics it's chipmunk physics and Box2D, they also have a hash table library written in pure C to avoid calling NSDictionary a lot). Cocos2D is not hard to use, and you can get a nice game working quite fast!
You can embed the whole Cocos-2D to a project of yours, or just embed some useful parts of it (like Cocos-Live for On-Line scores, the Texture loaders, etc). You could also start working directly from the Cocos-2D Xcode project and remove what you don't need (like examples etc).
For a simple explanation of the Cocos-2D license , read Here !
About OpenGL, with Cocos you won't need to learn it deeply, unless you start getting into very custom stuff.
Having said all that, here are my recommendations :
1) GUI takes time, GUI can take a lot (even more than 50%) of your source code actually... so take that into consideration if you are going to have game menus, etc.. and adjust your time schedules to make the GUI coding fit!
2) When you have learned Cocos a bit, start playing with OpenGL, it's a wonderful ride, and it's really great to know a bit about the "Engine" of your "Car" so if your "Car" (Cocos2D) break's or doesn't do exactly what you want, you can always tweak here and there to make it work.
For what it's worth, I tried to pick up Objective C a few times over the last year but gave up pretty quickly each time (though I used to do C a lot in the early 90s). Just over a week ago, though, I watched some screencasts and eventually decided to start making my own game. I then discovered and gravitated toward using Cocos2D.
Now, 9 days later, I have a prototype of a game done (it's a kinda clone of Robotron 2084). It's been great fun doing it so far and while this is not the most up to date version (this was at the 1 week mark), this video will give you an idea of what I've achieved: http://www.youtube.com/watch?v=lzD6va1GiTI
I started by using the default Cocos2D project and just figuring it out and adding stuff as I went. I did a TON of Googling and often ended up here on Stack Overflow and on the Cocos2D iPhone forums (which are VERY useful). I've scratched my head a lot but it's been a fun experience (except for tracking down memory leaks ;-)).
Cocos2D is, I believe, LGPL licensed but has some extra clauses tagged on to make it even more free so you can use it in your iPhone game projects commercially or not without any problems.
I've found you don't need to learn much about OpenGL. I've copied and pasted some free snippets from here and there but they've been simple to figure out. Things like drawing lines and boxes, etc. I haven't learnt any "hard" OpenGL stuff. I've just stumbled and got a pretty long way, IMHO. I now feel pretty confident and am still finishing off this game to get it on the App Store and want to develop more!
Make sure to start with the latest Cocos2D 0.99-rc because they changed a lot of names and it'll annoy you if you have to upgrade in future. It's very stable and works fine. Go to http://www.cocos2d-iphone.org/download and download it, unpack, then run the template installer. Then create a project using the Cocos2D template in XCode and Build & Run it on the iPhone Simulator. You'll get a basic example that you can then dig around in. Read the Cocos2D iPhone "Programming Guide" on their site too and gradually figure out how to change the scene to do something you want it to do. Small steps, etc :-)
If you have programmed games before AND you have some experience with Objective-C THEN you could develop a game in a month. The complexity of the game is a big factor.
I think Cocos2d is a very good framework to help you get started in 2D game programming for the iPhone.
Here is a very nice tutorial that will get you started: link text

Iphone Game Development

What are people using mostly to build iPhone games with? I'm learning iPhone programming. Currently I'm watching all the stanford vidcast, doing the assigments and going through the beginning iphone development apress book. I want to get into building games and want to know if developers are buidling everything with opengl es or are they using pre-existing game engines?
Depends how graphic-intensive the app is.
If it needs a lot of graphics, go with a pre-existing engine.
If not, many use OpenGL ES
I believe most people are simply using Apple's APIs. Other than that, I think cocos2d is pretty popular.
You can find a bunch of suggestions here:
learning iphone game development
Which technologies/concepts do you suggest I learn before creating an iPhone game?
I used Unity. There's been a lot of great games (even in the top 10) that used it. You don't even need to know objective-C. The code is written in scripting languages using C#, Javascript or boo and then compiled. It is expensive. It will cost you a minimum $600 for an indie license to do iPhone apps. unity3d.com
It's tough to get up to speed writing a game with all the APIs to learn and few good game examples (especially if you are new to Objective-C). I ended up tracking down the old crashlander source, which is notoriously hard to find since Apple pulled it.
There are probably half a dozen iPhone game programming books in the pipeline. Until then, the learning curve is pretty steep.
I'd suggest starting with an OpenGL 2D sprite-based game. Start by learning OpenGL ES, the touch system, then the audio system.

What do I have to learn to get done with a 3D racing game for the iPhone? What Tools do I need?

I know Java pretty well. I know now most of the Basics in Objective-C.
I know nothing about Photoshop. I know how to use TurboCAD 10 Professional, so I do have some experience in 3D object modelling. Although not much.
What do I have to learn step-by-step, to come to 3D game Development for iPhone? What Tools do I need? Which Books help out? How long did you learn?
Learning the basic ins-and-outs of OpenGL ES on the iPhone took me about 3 weeks. I post some of my observations on the subject here. The source code to my Molecules iPhone application, which uses OpenGL ES, is available here. Maybe you'll be able to find something useful in that example. However, there's nothing in there that deals with textures, which you'll probably need for your game. Bill Dudney has posted source code for a Wavefront OBJ modeler on the iPhone that may help in that regard. For a good text on OpenGL ES, I'd recommend "Mobile 3D Graphics: with OpenGL ES and M3G".
When it comes to Cocoa development in general, it will take you a little while to get up to speed. For me, it was about 6 months before I felt comfortable with it, although that was in the more complex Mac desktop environment. I post some resources for learning Cocoa here, although that's by no means an exhaustive list.
I agree with diciu, this is a bit much for someone just starting out on the platform. I'd find a simpler application or series of targeted applications (that you may never even release) to help you learn the core concepts before you leap into 3-D game design.
Your goal is very ambitious - I think it's a very hard project to tackle as the first project on the iPhone and you'd be better off starting out with a couple of simple Cocoa touch applications to get a feel for the platform.
For a simulation game I would start with experimenting with some physics engine such as bullet. Bullet is C++ and you can use it from Objective-C++.
For rendering 3D you probably want to use OpenGL ES.
I guess that OpenGL is worth a look.