Hi there guys ... I know some php and java along with full command over html and css. What should i need to learn to create iphone apps?
Well it depends on what tool you want to use to create games. Your java experience will help you with engines like Unreal and Unity 3d as both use Java like languages (UnrealScript and C# respectively). Both of these engines are really for 3d, but can be bent to do 2d as well. Or you could go a little lower and learn Objective-C and code directly in XCode using engines such as Cocos2d or GameSalad. Both of which are aimed at 2d gaming. A good book for one of those engines would not go astray either
If you want to start the native programming way, I'd suggest: Programming in Objective-C Learning Cocos2D (for 2D games dev.) iOS Programming by Big Nerd Ranch (for utility/Cocoa Touch apps) There are of course free resources for everything above and with a solid foundation of general programming and OOP concepts you could do without these books, but they are excellent on-target references. If you want to take a more visual approach and use 3rd party engines, as Luke said Gamesalad, Unity and possibly Torque (if it's still active). There are some visual cross platform tools also for utility apps, but I don't know enough about them to recommend any. HTH, -flod
Nice, thanks for the list of links bro. I am tempted to try making my own game for iPhone or just for fun mode.
Don't forget too that you can just use OpenGL directly instead of using any middleware at all. This might not be wise if you want to go the easy(/sensible!) route, but I did this for my first iOS game partly to get full control of all the rendering and not be shielded by (or be dependant on) any middleware, but mostly as I was starting out and wanted to learn Objective-C and OpenGL. Also, if you only want to make a simple 2D game (tic tac toe, Sudoku or something without fancy fast-moving graphics), you could just do it all using UIKit (UIImageView, UIScrollView etc. that are all part of the iOS SDK) For the time benefits though on any game with fancy graphics (especially if you want physics and/or 3D) middleware is definitely the way to go. And it also often means platform-independence.
Jim's got a good point, you dont have to use an engine if you dont need/want it. My first game I went direct and wrote all my own code, which took WAY longer but also gave me a good understanding of the underlying hardware/software and how it all works. I did spend most of my time writing the game engine and not the game though. So be clear on what you want to do You either write a VERY simple game, or use an engine. Writing your own engine will cost you more time/money than it's worth in 99% of cases.
Good point. I took the OpenGL route as well, but opted for C++ vs Objective-C. It did take longer, but I honestly wouldn't have had it any other way. I enjoyed learning how everything works, and I loved gaining more experience in C++ while leaving my Objective-C skills for UIKit-based apps. It helped me in understanding some C++ example code for games. My goal was to eventually make games for other platforms and not be dependent on a specific middleware. So it really depends on what your goal is a to what technologies you want to spend your time understanding.
unity3d If you want a really good engine try unity3d. The version for PC/Mac is free and if you try it and like it you can buy the IOS Version for 400 dollars (or maybe it was 400 euros.) Unity really rocks.
Can't agree more, this is true for every programming language, only start using frameworks after you understand the underlying code. For me it was tempting to start with Cocos2D but in the end I wrote everything myself except for the soundmanager (which I now regret) I can now make an educated decision on wether to use a framework for my next game, it's valuable knowledge every iOS developer should have. If you have a day job it might be a good idea to take a week of and really sink your teeth in Obj-c. This worked great for me! FYI, before I started iOS development I only had knowlegde of HTML/CSS/Javascript/ActionScript and some C#. So you don't need to be a hardcore programmer to be able to dev for this platform