Books on Java Game Programming
I started to learn about game programming as probably most people do: by using google and finding information about it. It was enough for me to put a few games together and be happy with them. But when i decided that i wanted to get more deep on the subject, i started to search for books.
I had a preference for books that were coded in Java for mainly two reasons. The first is that i'm well experienced in Java. The second, and most important, i wanted to port the knowledge gained on those books to the Android Platform, which also used Java.
My main source search was amazon.com and the book reviews there. I bought two books on the subject and got very satisfied with them.
The first book I got was Killer Java Game Programming in Java, by Andrew Davison, published by O'Reilly. Although I had the impression that the book is not the best example on OO programming and code reuse, the book has a lot of great examples of how to do things in Java. The chapter about coding the game loop alone is worth the entire book. Actually, it was the base for my own game loop code. There are many cool examples on Java 2D. The downside of the book is that the chapters on 3D rely heavily on Java 3D, which is OK if you want do use that API on your code. But i wanted things on a "lower level" so that i could port to Android. The chapters on AI and Pathfinding are great too!
The second book was Developing Games in Java, by David Brackeen. This book is somewhat different from the first one. So, i wouldnt recommend buying one or the other, they actually complement each other. This one is more OO friendly, so it will give you more insights in actually building a reusable game engine, which is, actually, the stronger point of this book. The 3D chapters are awesome. The author actually teaches the reader how to code a 3D software renderer, from scratch, in Java. Although the software renderer is not much useful in the real world, it gives the reader a lot of knowledge on how hardware renderers actually work, making much easier to learn and work with them.