I'll start by answering some questions that might occur to you while you're checking this book out.
Of course it is! Buy it straightaway, and purchase several copies for your friends. They'll thank you profusely.
If you're not persuaded yet, how about a managerial-style, one-sentence summary of the book? My aim is to describe the key building blocks needed to create fun, exciting 3D games in Java on a PC, with an emphasis on the construction of 3D landscapes that a player can explore.
If that's not enough (gosh, you're a tough customer), cast your eyes over the next section (but really there's no need, this book was meant for you).
This book is divided into three main sections: Java 3D, nonstandard input devices for game playing, and JOGL.
Java 3D is a high-level 3D graphics API based around the construction of a scene graph data structure that contains the objects that appear in the 3D scene. Java 3D topics covered here include: how to build your own 3D models, load existing models, create detailed landscapes, display beautiful skies and backgrounds, and have users navigate through the scene, bumping into things as they go.
I examine three nonstandard input devices: the webcam, the gamepad, and the P5 data glove, all fun alternatives to the rather boring PC keyboard and mouse.
JOGL is a Java wrapper around the popular OpenGL 3D graphics API, which offers a less high-level programming abstraction than Java 3D (in particular, there's no scene graph to build). JOGL's closeness to OpenGL means there's a wealth of existing OpenGL examples, tutorials, and programming tips and techniques that can be reused without much recoding. I look at topics similar to those for Java 3D: landscapes, skyboxes, billboards, picking, fog, overlays, and building and loading models.
Another theme of this book is the examination of games-related Java APIs that aren't part of the standard Java distribution (i.e., they're not in the software you get when you download Java SE). I've already mentioned Java 3D and JOGL. Other APIs include JInput (for interfacing Java to nonstandard input devices), JOAL (a Java wrapper around the 3D sound API, OpenAL), JMF (for managing time-based multimedia, which I employ for rapidly taking webcam snaps), and OdeJava (a Java layer over the physics API, ODE).
This book examines the latest Java SE 6 features relevant to gaming, including splash screens, JavaScript scripting, and the desktop and system tray interfaces.
Other sections in the preface: 'What this Book is Not About', 'How is This Book Different from KGPJ?', 'Java for Games Programming: Are You Joking?', and 'What About Java on Games Consoles?'.