This may sound a little naive, but no worries. I'm very confident in my ability at programming in Java and Python - particularly web applications. And I've got very limited experience with C and Objective-C. At the moment, I can build basic applications and games for the iPhone e.g. noughts and crosses and the like. However, I'm wondering what approach does one take when building more interactive and advanced games? I've got a few ideas that I'd like to pursue however lacking some fundamental knowledge of graphics. For games like Angry Birds and the like, I imagine they have their own games engines and APIs. However, are there any free APIs on the market that approach that kind of development? What kind of stages are involved in building richer and more advanced games? Of course, I'm only one man and any project I embark on will presumably have just me behind it, so I'm fully aware that I could never (well, never say never) build a game like that. But, I'm sure you understand what I'm asking. Again, apologies for the rather naive question but it's been bugging me for a long time and it's finally came out. Cheers for any (unpatronising) replies. It's much appreciated.