Cocos2D-X stands as a great way to switch from single-platform to multi-platform game development. This great framework effectively allows developers to maintain a single codebase while publishing to a huge number of platforms. Although it is as great as it sounds, the amount of information available on how to learn/use it is scarce, to say the least.
This book - Cocos2d-X by Example Beginner's Guide - presents itself as THE way for experienced Cocos2d-iPhone developers to make the switch to multi-platform development, by using the Cocos2d-X framework. It accomplishes that feat by introducing the basics of the C++ programming language and explaining how you can apply your knowledge of Cocos2d to build great multi-platform games. It follows a step-by-step approach and provides detailed explanations on how to effectively transition from the Objective-C"-centric" Cocos2d-iPhone to the C++"-based" Cocos2d-X.
Throughout this book, you'll build five (somewhat complex) little games that will allow you to learn how to use texture atlases, handle animations, create parallax layers, handle physics and particles, among other essential tasks.
As it stands, this is the best Cocos2d-X resource I've encountered. It's aimed at experienced developers with knowledge of Cocos2d-iPhone, but I believe that it's actually pretty easy for an inexperienced programmer to gather some useful information from this book. The way that the author presents the information is clear and concise. He rarely misses important facts/info and even offers some extra tidbits of useful information along the way.
I came across a few inconsistencies and errors throughout the book, mainly in the code's formatting. A few times, the code examples mentioned variables that were presented with slightly different names within the Xcode project. Although that can be somewhat distracting, I was able to overcome these few hurdles with ease, mainly thanks to the way that the author clearly explains how everything works.
I'm giving it 4 stars instead of 5 due to the rare inconsistencies in the code formatting and also because the author assumes the developer is working on a Mac. It's understandable, due to the fact that this is aimed at the Cocos2d-iPhone developer. However, seeing as Cocos2d-X is a multi-platform framework, it would've been great to see a few instructions on how to setup and build projects on other platforms. Although the author does explain how to build for Android through Eclipse, he misses out on explaining how to create a Cocos2d-X project in Visual Studio and/or how to build an application for OS X or Windows.
Overall, it's a really great book for anyone interested in moving to multi-platform development by using one of the most popular game development frameworks available. It stands as the ultimate resource for learning how to develop games with Cocos2d-X and it's definitely a must-buy for anyone interested in doing so.