Cocos2D is the leading, open-source, royalty-free smartphone game engine. It's easy to use, community-supported, reliable, mature, and over 1500 mobile iOS games have been published using it! And now, thanks to Cocos2D-X, it's possible to release games for Android with the same codebase. Why is Cocos2D so easy to use? Because you can play a sound effect, animate a flipping sprite, flash some rad custom font, all with just a couple lines of simple, pure Objective C code. No knowledge of OpenGL is required! Rotating, mirroring, parallaxing, scaling, tinting, sliding, jumping, and a Halloween-sackful of other effects are quickly at your fingertips. Cocos2D can even be used to make regular-old apps with custom graphics!
2D is pretty dang simple. When I started learning to make video games, I'm sure glad it wasn't 3D that I was jumping into. 2D makes so much more sense. It's easier on the mind. I might have turned away from making video games forever had it been dauntingly difficult to comprehend. Calculus, vectors, 3D modeling, and all the other intricacies of that extra dimension requires a lot of knowledge and experience. Besides, I love 2D, retro games. Metroid and Zelda are two of my favorite games ever. I want to make simple games like that. Stuff that reminds me of being a kid. Thankfully we have a platform these days that encourages and thrives on simply two dimensions: smartphones. Long live smartphones! And if you're just starting out, save 3D for a rainy day.
60 frames per second (FPS) is a pretty rad ideal to shoot for in game development. Heck, 30 frames per second is still nice and fast. But Cocos2D shines in this department, if you know what you are doing and keep your code optimal, you can smoothly achieve 60 FPS even on older devices. This is a must have. Your game engine must be quick. Slowness sucks, especially in today's day and age when patience is rare and getting to the good stuff, the fun, the pot of gold, is paramount. Cocos2D is Well-Structured
When I was first introduced to Cocos2D's idea of a node I was blown away at it's simplicity and universality. Just about everything in Cocos2D is a node, which includes scenes (a great concept for organizing your overall game), layers (great for adding things on top, like a heads up display), and sprites (your basic image). This makes an interconnected hierarchy of game objects, like a tree. If you move the root of the tree, you move all the branches with it. Handy. Scenes are sweet too. You normally structure your game into a main game scene, a main menu scene, a character scene, etc… It's super easy to keep your game organized this way. And it makes transitions a snap. Want your main menu to sliiiiide into place? Easy as pie.