- Amazon Student members save an additional 10% on Textbooks with promo code TEXTBOOK10. Enter code TEXTBOOK10 at checkout. Here's how (restrictions apply)
Pro Java 6 3D Game Development: Java 3D, JOGL, JInput and JOAL APIs Hardcover – Apr 25 2007
Special Offers and Product Promotions
No Kindle device required. Download one of the Free Kindle apps to start reading Kindle books on your smartphone, tablet, and computer.
To get the free app, enter your e-mail address or mobile phone number.
About the Author
Andrew Davison received his Ph.D. from Imperial College in London in 1989. He was a lecturer at the University of Melbourne for six years before moving to Prince of Songkla University in Thailand in 1996. He has also taught in Bangkok, Khon Kaen, and Hanoi. His research interests include scripting languages, logic programming, visualization, and teaching methodologies. This latter topic led to an interest in teaching games programming in 1999. His O'Reilly book, iKiller Game Programming in Java/i, was published in 2005.
Inside This Book(Learn More)
Most Helpful Customer Reviews on Amazon.com (beta)
The section on non-standard input devices deals with interfacing devices such as webcams, game controllers, game pads, and the P5 Virtual Reality Glove to your 3D worlds and games. He mentions parts of Java that are seldom well-explained such as JInput to describe how to control these devices. In the section on webcams, the author talks about JMF and an alternative method of interfacing to cameras. This is good, since for all intents and purposes JMF is really a dead API with very little useful capability. One of the more interesting chapters in this section really has nothing to do with input devices, that being the chapter on JOAL, which is a wrapper around OpenAL, the OpenAudio Library. This is very practical since there are bugs in Java 3D's sound interface that have been there from the beginning and show no sign of being resolved. This chapter provides a practical way for Java programmers to get actual reliable 3D sound into their games and applications.
The final section of the book is on JOGL, which is a Java wrapper for the OpenGL graphics library. The author explains and illustrates the use of JOGL by first implementing a very simple application to clearly illustrate all of the steps needed. Next, a 3D world is written using JOGL that includes a floor with a checkerboard pattern, an orbiting earth, a skybox of stars, a billboard that shows a tree, overlays, and keyboard navigation.
This book, along with the Sun tutorial, is a good education in how to use the Java 3D API in general, and also how to build virtual worlds in Java as well as how to write 3D Java games, which was the book's original purpose. Highly recommended.
The book, however, is quite different from what is stated, and it is difficult to see how the book would be useful.
The book claims to describe Java 3D, but is in fact little more than miscellaneous source code fragments of much larger programs, surrounded by text annotations. Annotated programs have been published before, notably by Donald Knuth, but this book fails to make the technique work on many levels.
Do not expect the book to provide an overview of Java 3D. The book describes where to download Java 3D from the Sun Microsystems Java Web site. That is all - there is no 'Hello World' program, and no introduction to the Java 3D classes and their organization. The 'overview' is approximately 2 pages of text without a single line of code, only the Web location of the Sun Java 3D 'HelloUniverse' program. If you use this book, you will be learning Java 3D from another source.
The book is structured as a sequence of chapters about specific topics, for example, Chapter 6 is 'A Multitextured Landscape'. Each topic is illustrated by a program, the chapter itself lists the source code of some methods from some classes in the program, with text descriptions.
Do not expect to be able to use the source code fragments as examples for Java 3D programming. The fragments rely heavily on other parts of the program, and the Java 3D calls (if any occur in a given fragment) are not obvious. The author apparently uses the Java 'import' directive to reference Java 3D classes, but does not list these imports in the source code fragments. Therefore, unless the reader already knows the Java 3D API, it is not possible to determine which methods and data types are part of Java 3D, and which ones are part of the larger program. In order to even find the Java 3D calls in a source code fragment, you must already know Java 3D.
Do not expect to learn what capabilities are included in Java 3D, and how to use them. The text description associated with the source code fragments tends to describe only the specific fragment implementation, and mixes descriptions of the fragment as a component of the program with a few mentions of Java 3D features being used. Even for the few mentions of Java 3D in the descriptions, there is no overall discussion of the Java 3D features, or why the particular implementation was chosen.
If you want to learn Java 3D and game programming, you will be better off without this book than with it. The book lists two technical reviewers, I do not understand what they reviewed or why. The publisher, Apress, produces some useful technical books. This is not one of them.
I purchased this book expecting to be able to learn JOGL (Java bindings for OpenGL) from it. Annoyingly, I found there to be very little usable information or code in the sections covering JOGL.
In his examples of using JOGL, the author has used UML class diagrams showing the names of the public methods of those classes. But there is no explanation on how the reader is supposed to make use of these diagrams. The author then leaves it up the the reader to interpret how these classes and their methods should be implemented in code. A step-by-step guide this book is not.
The code that is provided is never a complete class, and there is little context so its not clear exactly how it should be used.
While "complete" source code is available from the authors web site, it proved to be of little value to me as the examples contained too much extraneous code making it difficult to determine the useful stuff from the irrelevant.
Two more irritations:
- there are numerous paragraphs of text pointing the reader to further information on the web, which is not really helpful, as most readers would know how to use Google.
- there are entire chapters on sideline topics which ought never have made it into the book, such as using web cams and other hardware.
The author covers several options for achieving 3D output from a Java program. The reader must decide which path is best for them and the game they want to create. Perhaps JOGL? Perhaps Java3D? You get a grounding in both, but not enough information about either one to create a game anyone would want to play.
In summary, it's good starting point, but don't expect that this one book will make you a pro.
Look for similar items by category
- Books > Computers & Technology > Computer Science
- Books > Computers & Technology > Graphic Design
- Books > Computers & Technology > Programming > Game Programming
- Books > Computers & Technology > Programming > Graphics & Multimedia
- Books > Computers & Technology > Programming > Java
- Books > Computers & Technology > Programming > Languages & Tools
- Books > Computers & Technology > Programming > Software Design, Testing & Engineering > Software Development
- Books > Computers & Technology > Software
- Books > Deals in Books
- Books > Humour & Entertainment > Puzzles & Games > Video Games & Strategy Guides
- Books > Textbooks > Computer Science & Information Systems > Computer Science
- Books > Textbooks > Computer Science & Information Systems > Graphics & Visualization
- Books > Textbooks > Computer Science & Information Systems > Programming Languages
- Books > Textbooks > Computer Science & Information Systems > Software Design & Engineering