I recently got a copy of this book for professional purposes and thought to comment on it. My conclusion after reading the book is that it’s well worth its money. Do not hesitate much! No matter if you are new to libGDX and looking for the perfect tool for a multi-platform project, you are already acquainted and you want to have a solid libGDX reference around or you want to learn how a game is made – this book is the right choice.
First, I want to congratulate the author, Andreas Oehlke, for his high level of expertise. It immediately becomes apparent that he has worked on many game projects, used many tools and has a profound know-how in the field. He's in my eyes a true professional with passion for the material. The way he explains new concepts and his actions throughout the book is simply great. He focuses on understanding through simplicity instead of trying to impress using complex incomprehensible terms. Reading the book will make you feel the effective knowledge gain instead of becoming more and more frustrated, because you cannot follow.
The book's structure is very clear and understandable. The author first introduces libGDX and provides a short overview of the library’s features. He gives an elaborate tutorial of how to setup libGDX for the different platforms annotated with a huge amount of screenshots demonstrating each small step. I was very satisfied with that, for it considers novice readers without any knowledge of the required technologies and, to a certain extent, readers without any development experience at all. For some unknown reason, no other multi-platform game frameworks are mentioned though. The choice of libGDX would’ve been much better motivated on the background of a comparison of the different options available.
The author than proceeds to show nearly every aspect of libGDX by developing a humorous platformer entitled “Canyon Bunny” step-by-step, introducing new features incrementally. The game’s main character is a cartoony bunny head that gives you a nearly lethal dose of cuteness. Surprisingly, by the end of the book we have an advanced game of quite complex dynamics. It’s not the typical tutorial game with limited scope, no, “Canyon Bunny” supports levels of arbitrary sizes and could get challenging… It features dying and respawning, a finite number of lives, special effects including a carrot blizzard, different game screens, a game options dialog etc. And the best thing is, you will not even feel the level of complexity rising, because it’s happening very gradually. I send all my compliments to the author for his marksmanship at designing and coding. At no point during the book I felt overwhelmed or confused, though I have previous experience developing multi-platform games.
By the last chapter, the reader has a very solid picture of the libGDX ecosystem and should be able to freely use it for her own projects. I was missing a short explanation of how real-world scenarios like adding banner ads, connecting the application to social websites and synchronizing highscores can be handled. Also, no methods for the development of multiplayer games are discussed. I found it amazing that the author introduces you to different game development tools like physical shape editors and music / sound generators. Some were new to me as well. I previously had no idea how easy to use sfxr is. Studying and repeating the code exercises is time well spent. The reader also gets a fairly good idea of the magic that drives a game. There seems to be some some misunderstanding regarding the compatibility of the code with the latest versions of libGDX. The book was developed using the version 0.9.7. Naturally, the library has evolved a bit since then due to the active development cycle and community-driven behaviour. This is not an issue at all, however. As of now, you can get the game running on the latest version by fixing just a couple of self-explanatory compile-time issues. Taking a small look at the current API documentation makes it even easier.
The book misses a proper ending though. It ends rather abruptly right after the last technical chapter. There is no real overview or closing words. Instead the author wishes us good fortune within the summary of the final chapter. The lack of a proper summary is, of course, not necessary as the book still covers all the material, but it was unusual in any case.
On the publisher side I have to criticize the formatting of the book. The text is unjustified for no apparent reason and the figures, diagrams etc. are unlabeled which makes searches difficult. These problems are solvable with a minimal effort.
I hope this is useful to someone!