Pro Java 6 3D Game Development: Java 3D, JOGL, JInput and JOAL APIs

Pro Java 6 3D Game Development (PJ3D) explains how to program 3D games in Java on a PC, with an emphasis on the construction of 3D landscapes. I assume you have a reasonable knowledge of Java, the sort of thing picked up in a first Java course at school.

I've split the topics into three sections:

Java 3D is a high-level 3D graphics API, and JOGL is a lower-level Java wrapper around the popular OpenGL graphics API. I look at three non-standard input devices: the webcam, the game pad, and the P5 data glove. Along the way, I utilize several other games-related libraries including JInput, JOAL, JMF, and Odejava. I describe the latest Java SE 6 features relevant to gaming, including splash screens, JavaScript scripting, and the desktop and system tray interfaces.

This book differs from other Java games programming books in that it concentrates on the latest 3D APIs, covering a range of libraries that you can't find described in one place anywhere else.

How is this book different from my first Java gaming book, Killer Game Programming in Java?


Early (sometimes very early) draft versions of PJ3D's chapters can be downloaded from here (see the links below).

All the book's code is here, either downloadable as a single zip file (visit the code page), or on a chapter-by-chapter basis from each chapter's page (see the links below).

I've also been adding new chapters here; chapters which don't appear in the book.

If you're looking for Killer Game Programming in Java then it's here.

[Wat Phra Giant PIC]


This section does not appear in the Apress book (due to space constraints).

Important Note: Erik Hellman has pointed out that since all JSR-239 phones currently support only 16- or 18-bit colour, that none of my examples will render correctly (because they use 24-bits). This can be remedied by changing the configAttributes[] array to:

configAttributes[] = {EGL10.EGL_RED_SIZE, 5, EGL10.EGL_GREEN_SIZE, 6,
                      EGL10.EGL_BLUE_SIZE, 5, EGL10.EGL_NONE};
Now the colours are restricted to 16-bits, with green getting an extra bit since our eyes tend to see more shades of green. Thanks Erik!

Locations of visitors to this page Dr. Andrew Davison
Back to my home page