CroftSoft / Library / Books

Java Game and Graphics Programming


COLLADA: Sailing the Gulf of 3D Digital Content Creation

This is an XML 3D graphics book, not Java, but I think it fits here. COLLADA is a non-proprietary open standard for 3D content in XML. I have had success in using JAXB to automatically convert the COLLADA XML schema to Java classes. This then becomes my Java API for accessing and manipulating the 3D data. For more information on what I have done with this, please see the Open Source Java Whoola COLLADA Library.

I purchased this book at the ACM SIGGRAPH 2006 conference and finished it within a few days of my return. The text is clearly written and the endnotes are interesting. It clarifies many of the ambiguities in the COLLADA specification. This book is a must-have for anyone writing COLLADA import or export code.


Foundations of 3D Graphics Programming: Using JOGL and Java3D

Although this is not the first Java game programming book to introduce the Java bindings for OpenGL (JOGL), it is the first to cover it in a comprehensive manner.


Beginning Java 5 Game Programming

This book was a little too beginner for me. I did not get very far into reading it. I did have to wonder why the author had so many JBuilder screenshots in an attempt to teach novices how to use JBuilder when everyone is using Eclipse these days.


Killer Game Programming in Java

I have all of the Java game programming books published since 1996 and this book ranks in the top three. There are no gaps in the coverage of the subject and the author has clearly done his research. While I might do some things differently here and there, overall this book is clearly one of the best. I highly recommend.


Physics for Game Programming

I was pleasantly surprised to learn that this is a Java game programming book as all of the source code examples are in Java. The mathematics are not overwhelming and I found it to be a useful review of physics. I plan to apply what I learned to both game programming and academic simulation projects. I recommend.


Advanced Java Game Programming

This is the book that I wrote. For much more information including updates, please see the author web site and the publisher web site for the book.


Practical Java Game Programming

This was the first book to introduce the Java bindings for OpenGL (JOGL). I am generally leery of multi-author programming books and this is one of them. I did not like many of the recommended programming techniques.


Developing Games in Java

This was an overall good book. I thought "Killer Game Programming in Java" was a bit better.


Java 1.4 Game Programming

Don't be confused by the fact that Java 2 Game Programming was published before this book, Java 1.4 Game Programming. "Java 2" refers to the Java 2 Platform which both books cover. "Java 1.4" refers to the specific version of the Java 2 Platform. You can blame the marketing folks at Sun for the confusion.

I just finished reading the book "Java 1.4 Game Programming" by Mulholland and Murphy. You may wonder how it is that I was able to read this 650 page book in one day. I confess that I skipped or skimmed all of those chapters that had little or nothing to offer on the subject of game programming specifically. This means that of the 18 chapters in the book, I really only read the following three:

Chapter 09, "Graphics"
Chapter 10, "Using the Mouse and Keyboard"
Chapter 12, "Game Programming Techniques"

Chapter 9 takes a valiant stab at Swing-based animation. It should be noted that this is the first Java game programming book published to do so as all of its predecessors focused exclusively on the AWT. The authors properly warn of issues related to threading and synchronization but they have, in my opinion, a solution than complicates rather than simplifies matters. Rather than taking the easy route of pushing frame animation into the AWT Event Queue for serial execution using EventQueue.invokeAndWait(), they keep it in a separate animation thread and then struggle with the consequences.

Since mouse and keyboard events can update state in their solution without being properly synchronized with the main animation thread, much of Chapter 10 attempts to rectify this by offering their own custom version of an event queue. I find this to be confusing and redundant.

In Chapter 12 they offer a few simple interactive animation examples which are built upon this animation engine. While helpful, none of these examples is fleshed out enough that it could be considered a game.

If Chapter 12 were removed and I had to guess what the title of this book was based upon the other chapters, my guess would be "An Introduction to Java". Just to drive this point home, let me share with you the titles of the chapters that I skipped or skimmed:

01 Introduction to Java 1.4
02 Basics of Java Programming
03 Arrays and Strings
04 Multiple Classes
05 Packages, Utilities, and Error Handling
06 Stream I/O
07 Threads
08 Applications and Applets
11 Using Sound and Music
13 Introduction to GUI
14 Introduction to Databases
15 Using SQL with MySQL
16 Using the JDBC
17 Introduction to Networking
18 Introduction to NIO Networking

Experienced Java programmers will not find anything new in this book that they do not already know. Less experienced Java programmers may find themselves misdirected by Chapters 9 and 10. Both will be disappointed by the lack of completed example games.


Micro Java Game Development

I have not read this one because I suspect Moore's Law is going to make J2ME obsolete soon. Even today you can get J2SE (Standard Edition) to run on a phone using SavaJe. I would not be surprised to see J2EE (Enterprise Edition) running on PDAs and phones within a couple of years.


Java 3D Programming

Until mid-2006, this was the most recent book published with a focus on the Java3D API for about 4 years. I started reading this one in 2004 and finished in 2006. Despite the number of years that have passed since it was published in 2002, I found it to continue to be relevant today, including my work with Xith, an Open Source API based on the public source Java 3D API. "Killer Game Programming in Java", 2005, does cover some of the Java 3D API but there were a few gaps in it. This is understandable as it is written to cover all of Java game programming, not just Java 3D. I look forward to finishing "Foundations of 3D Graphics Programming: Using JOGL and Java3D", which which shipped in 2006 July, to see how much of the Java3D API it covers.


Java 2 Game Programming

After reading this book, I was disappointed. While I cannot recommend purchasing this book, you may want to read Chapter 11 "Implementing a Scene Management System" if you happen to borrow a copy. The rest of the book, unfortunately, may not be worth your time.

The title "Java 2 Game Programming" seems somewhat misleading as the book did not cover many Java 2 specific topics nor many of the recent APIs and development and deployment tools appropriate to Java game programming. The first half of the book is an introduction to the Java programming language and older APIs such as the AWT. The second half of the books focuses on game programming but adds little to what has already been published years earlier.

If asked, I would recommend any of the three Java game programming books printed six years ago back in 1996 before I would mention this one. In my opinion, a "Java 2" game programming book has not yet been published.


Java 3D API Jump-Start


Essential Java 3D Fast: Developing 3D Graphics Applications in Java


Core Web3D

I liked this book. I gave a copy to a graphics artist friend of mine as part of my payment to him for creating the CroftSoft logo.


3D User Interfaces with Java 3D


The Java 3D API Specification


Ready-to-Run Java 3D


Java Game Programming for Dummies


Developing Java Entertainment Applets


Teach Yourself Internet Game Programming With Java in 21 Days

This is my favorite Java game programming book. In 2003, the author also published the C++ book Teach Yourself Game Programming in 24 Hours.


Black Art of Java Game Programming


Cutting-Edge Java Game Programming

"Java game programming books: a comparative review"

CroftSoft Web

Creative Commons License
© 2006 CroftSoft Inc.
You may copy this webpage under the terms of the
Creative Commons Attribution License.