I'm interested in becoming a 2-D game developer for the AppStore. I already know how to (somewhat) begin: Familiar myself with Objective-C, Purchase iPhone SDK on Mac, start out with a game engine, and so on. The thing is, I want to know (from the Pros) which 2-D game engine I should look in to. I started out with free version of the Unity3D Engine, but it didn't quite grab my attention as I researched many other engines. So, which graphic engines should I be looking into to create 2-D games? Also, which guide books should I consider buying on Amazon to better understand Objective-C and other computer language coding? - Currently, I've researched Unity3D Engine, OpenGL, GameSalad, Quartz 2D and COCOS2D. - I've also researched the guidebooks, "Beginning iPhone 3 Development: Exploring the iPhone SDK", "Learn Objective–C on the Mac (Learn Series)", and "iPhone Game Development: Developing 2D & 3D games in Objective-C (Animal Guide)". Let me know what you think. I'm really new to the iPhone Development Realm so forgive me if I may have spoken out of term. If you could also post websites, that would be swell. Lastly, if there are other threads you can direct me to regarding these issues, please let me know (I'm rather new to this site). Cheers!! , ManofAegis P.S.: Thanks in advance!!!
The best thing to do is just to pick one and start making something, you'll find a lot of help online. Cocos is a good bet for the iPhone since it's Objective-C based, so you'll learn stuff that is useful on that platform in general. Starting from scratch in OpenGL doesn't make a lot of sense when cocos is available, unless you're very interested in code and engines (or, if you want to learn more portable skills!). If you just want to make games already, cocos will get you going sooner. GameSalad is a nice option if you don't really want to learn how to write code. If you're more into art and game design, download it and start making some stuff. Check out this book too, it's new, but it's written by great guys and it covers the right kind of thing for you: http://apress.com/book/view/1430225998
I second the suggestion to use Cocos2d. In the short time I've been using it to develop my upcoming 2D game, I've found it to be very flexible yet easy to understand and implement. The aspect I like the most is that it never seems to 'get in the way' of my game logic and subsequent coding. I've never had to work around any shortcomings with the framework. This has let me concentrate on what I class as the fun parts of developing the game and not have to continually wrestle with the low level OpenGL API. If I do need to call some OGL stuff though, I can do so via a CCNode's (generally a Scene, Layer or Sprite) draw() function. Brilliant! I would not personally recommend Quartz for anything other than a very simple 2D game. I found in the early days of learning and playing with the iPhone SDK that Quartz does tend to struggle with increasing graphical tasks.
Adding my support for Cocos. I've used it for four games, and there have been several Top 25 games that have used Cocos. Highly recommended.
I appreciate the advice, Thank you! Could someone post a link to the download of COCOS2D (if that's allowed)?
If you do end up using cocos2d as your game engine, I recommend that you consider buying the source code to riq's game. http://www.sapusmedia.com/sources/
What ever you do don't quit your day job! This is the best piece of advice anyone can give you. The 2d game space is so overcrowded on iTunes making it extremely hard for you to scratch out a living. Please, please, please go into this venture part time first to get your feet wet. It is tough to make it worthwhile financially.
I totally agree with you. I'm mainly going to try out the game development business as a side activity. I have been blessed with creativity skills such as artwork and creative writing and I deem the AppStore as a good place to share them. I've also written many interesting stories and I'm hoping to incorporate some of those stories in games that I create (for I am a writer).
I'm an OpenGL guy myself and prefer that over the other engines out there. And we build with C++. If you have the time, I'd recommend to build your 2D engine. It is not that hard but it is not for the meek. You will have the added benefit of portability if built right. Our games are actually developed nearly 95% on the PC and run on the PC, Mac, and iPhone/iPad. I say 95% only because we've been slowly using more UIKIt to help do certain screens like high scores. The hardest path you'll have really when rolling your own is setting up a viable tool chain. But I'd also listen to the wise words of Syndicated Puzzles. This is a pretty tough market to make a mark, and 2D games are certainly are a plenty (well everything, 2D or 3D is overly saturated).
I don't think this is a good option for the OP, as if you were of sufficient experience at C++ and OpenGL you wouldn't even need to be asking how to make a game However, 95% C++ and OpenGL is the route I took too (I used minimal Obj C, only where I really had to). But this approach was best for me as I have years of experience at C++, and none at Objective C. If you don't have a clear language experience advantage then learning Obj C and using an engine like Cocos2D I think would be wise. I've heard good things about Cocos2D, and using a well designed engine will always save you lots of time. Oh and finally, in response to quitting your day job... While it's wise to be cautious of course, too much caution won't help you. Success in life involves taking risks, at *some* point taking the plunge will just result in a greater chance of success. If I'd listened to the people who told me not to quit my day job I'd never have released my iPhone game and I'd still be in my day job. Of course, It depends on a lot of things, how motivated you are for one. Making a game is very time consuming, it's hard enough working on it full time. You may well be more motivated than me though I tried keeping my day job, I just couldn't put in the required time (It didn't help that my day job was a games programming job...)
I totally agree with you on this and it crossed my mind, which is why I added the it's not for the meek bit. You see a bunch of people contemplating what SDKs, tools, etc to use for dev on some of the iPhone programming forums. But lot's of people choose things based on instantaneous progress and apparent ease. Building a 2D engine from scratch is not difficult depending on the type of person doing it ... even without experience. But it does require some discipline. That's why I think it was worth noting, because you see alot of people ignoring the OpenGL approach because they think it will be too difficult, built stuff using something else, then finding they need to make changes. All those soln's are good. Depends on what you want to build and your tolerance for pain !
IMHO buying books is a waste of money. The information will be out of date in no time, as new SDK/OS versions are released and new market trends take hold. Even for learning Objective-C, there are enough free online resources that you don't really need to spend money if you're any good with Google. I refused to buy any books, and I didn't know Objective-C, nor had I ever used Xcode. Heck, the only Apple product I ever owned before a year ago was a used iPod shuffle a friend sold me for $5. I did have the advantage of being a CS major, though. As suggested above, just start coding. When you come across something you don't know how to do, look it up online. Most likely someone else has had the same question. (I owe half my knowledge to StackOverflow.com) It will be a slow process, but also a cheap process.
I was thinking about building my own 2D engine but I have no idea where to start in regards to that, nor do I have any experience in it whatsoever.
What do you want to do, build engines or develop games? If you want to develop games then look at cocos2d. The thing I love about cocos2d is you can use as little or as much as you want. If you want to code in OpenGL you can but you don't have to worry about rolling your own menu system or sound engine. The guy who wrote Stick Wars (a #1 selling game) did it in about 1 month using cocos2d. By comparison the guys who are developing the Sparrow framework (http://www.sparrow-framework.org/) have been at it for over a year and still aren't finished. Another advantage of cocos2d is that it is well tested on a variety of hardware and firmware combinations. I can tell you there are numerous device/firmware specific issues that you will need to deal with if you write your own engine. Unless you have access to all the iDevices you aren't going to be able to test your engine properly and even if you did have all the devices it is very tedious work doing the testing and researching the bugs that cocos2d has already fixed.
Just for the record: a library can never be finished, there is always something you could add ;-) So, Sparrow is 100% usable and extremely stable. It has everything you need to develop a game, even though it's not "1.0". But I totally agree with you: creating an engine it's a lot (!) of work, and if you want to develop a game in reasonable time, definitely use a framework like Cocos2D or Sparrow.