This week's book giveaway is in the OO, Patterns, UML and Refactoring forum. We're giving away four copies of Refactoring for Software Design Smells: Managing Technical Debt and have Girish Suryanarayana, Ganesh Samarthyam & Tushar Sharma on-line! See this thread for details.
First of all, I should say that I was very impressed by book TOC and by its reviews, and feel it definitely covers the grounds for any programmer who wants to start with game development. Myself growing on Andre LaMoth books (Secrets and Black Art books, if someone remembers), I felt same kind of excitement while reading about the book.
That said, I feel divided on my opinion, whether someone looking to build a quality 3d project (not necessary a gaming one) should invest time into reading the book / studying libgdx, while he/she can just license Unity3d or ShiVa?
The licensing of Unity is quite accessible (compared to cost of time if taking other routes. And of course there is also the added value of the project working on multi-platform out of box.
I'm not looking to lower from the book value in any way, but will be happy to hear what the author can say on this matter.
Valid questions, no offense taken. The book is not about libgdx. It will teach you how to write your own libgdx to some extent. The emphasis is also on the "Beginning", meaning that you will learn about game programming from the ground up. Without any previous experience it might be a bit hard to get into Unity and even more so into Shiva3D or the UDK.
Unity and Shiva3D are good products but the licencing cost is a problem in my opinion for hobbyists or people that want to get their feet wet with game programming. The basic Android licence costs 400$. If you go with Unity you are likely to also want to have iOS as a target. That's another 400$ for the basic version. Check the features you get for 800$. It's not a bad deal, but for someone just wanting to give game development a try it's to much in my opinion. Also, all the features that make Unity a first class 3D engine are not available to you for that price. For that you need to go with the Pro versions, and those cost quite a bit more.
The book introduces you to 3D. It's a beginner's book, so don't expect to be able to write the next Crysis after reading it. There's only so much you can cram into 680 pages, and advanced concepts like vertex skinning, shadow/light mapping and so on are not covered.
Given my target audience of the book i also don't think that a full-blown 3D game is something one should aim for, at least not in the beginning. The programming side is not a problem, the asset side is. You can licence any 3D engine you want, if you don't have the models to render the engine is useless. Getting a hold of good models that make your app/game shine is hard and costly unless you are skilled in creating those assets yourself. For less complex 3D games you can actually produce the assets yourself (e.g. the 3D space invaders presented in the book). And for such a level of complexity Unity is clearly overkill.
Finally, 2D games, while possible with Unity and other commercial engines, might actually be easier to do with a custom framework or one of the frameworks freely available.
And since you mentioned libgdx, i take the freedom to comment on that as well: libgdx is a framework and not an engine. It's goal is a different one compared to Unity. We provide a lot of convenience functionality for 2D and 3D games (we are currently heavily working on a lot more 3D rendering support) on top of which one writes his game/engine. If you are not satisified with these helper classes you can go totally low-level and directly access OpenGL ES, something that's only possible with a costly Pro Unity license. We grant our users total freedom, we don't impose a structure on their game, for better or worse. I'd compare libgdx more to XNA than to Unity. In terms of cross-platform compatibility we cover Windows, Linux, Mac OS X and Android. Windows phone 7 and iOS will never be targets for various reasons. I put my bets on Android, especially given the latest market share development.
Also, i have a few LaMothe books as well. I prefer Abrash though
So at least at mine opinion, it would be great for a beginning game developer to read the book, understand the gaming development process in overall, start with a simple 2D/3D project, and only afterwards he/she feels they grasped the concepts, consider licensing any of the commercial engines.
Considering that game related projects usually do no bring as much income as other areas (WoW/Minecraft are exceptions of the rule here), and someone here was rightfully advised not to leave the day job for this, that is indeed sounds as a good approach.