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, Killer Game Programming in Java, was published in 2005.
Most Helpful Customer Reviews on Amazon.com (beta)
53 of 56 people found the following review helpful
Great resource for Java 3D programming and game developmentMay 12 2007
- Published on Amazon.com
There is some overlap between this book and the author's other book on Java game programming, "Killer Game Programming in Java", but overall there is enough new material to make it a worthwhile purchase. The author starts out trying to explain Java3D. His explanations are OK, but the best explanation I have ever found as an overview of the API is "Java 3D API Tutorial" on the Sun Microsystems website. It's old, but the basics haven't changed. For the specifics of working with Java 3D in the modern era, come back to this book. The author has done a good job of putting together some programming examples that show how to program in current versions of Java 3D including a 3D version of Conway's game of life. He then modifies the program to show off some of the features of Java 6 such as its ability to communicate with scripting languages. Further chapters show how to build creatures with operational limbs that demonstrate Java 3D's TransformGroups, how to handle physics and Java3D using a specific physics API, multitexturing for more natural looking outdoor scenes, and finally how to deal with level of detail problems using mixed mode rendering. In each case, the author just doesn't talk about how to do something, he produces working code that gets the job done and provides a blueprint for the reader to go further.
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.
29 of 31 people found the following review helpful
Little useful contentJan. 16 2009
Daniel T Brown
- Published on Amazon.com
The author states: "In this book, I show you how to develop and program 3D games in Java technology on a PC, with emphasis on the construction of 3D landscapes. I assume you have a reasonable knowledge of Java, the sort of things picked up in a first Java course at school." The publisher prints "The Apress Java Roadmap" consistent with this.
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.
6 of 6 people found the following review helpful
DisappointingJan. 2 2011
- Published on Amazon.com
The content simply does not live up to the title.
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.
3 of 3 people found the following review helpful
What Does "Pro" Stand For?Aug. 6 2011
- Published on Amazon.com
The "Pro" in the title of this book does *not* stand for "professional." By "Pro Java 6 3D Game Development", the author means he is *for* Java games ("pro" as opposed to "anti"). The book is a good starting point for would-be Java game programmers, but not for anyone looking to do this stuff professionally.
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.
2 of 2 people found the following review helpful
Not well organized and focussed on 3DApril 3 2011
- Published on Amazon.com
This book is very poorly written and seem to have been published unreviewed (or as-is). I wish I had not used this book at all - it was simply a waste of time. If you want to save some time and sanity - just use Java 3d online training.
The book does not focus on basis of 3D, rather first chpater discusses about screen saver, configuration Conway's life game for 45 pages - this is very poorly organized thoughts, too much repetition and too long to get it going.
I have spent a whole week trying to understand the first program and still don't have any idea where this book is leading. It leads into program and discuss other resources of screen savers - jumps back into configuration capability - overall it is a mess. The embedded jokes are not helpful to bring any lightness. I think the author should consider discussing basics and get the first simple program working rather than discussing basics for 45 pages with bells and whistles that completly irrelvant to subject. The second chapter is hopeless, it discusses about tray icon and pop-up menus and such - overall very distracting book for those who are experienced in Java. These material should have been in Appendix.
I wish I had not used this book at all - it was simply a waste of time
It is best not to buy this book at all - rather a free online training is more useful. if you really need to learn 3D"Foundations of 3D Graphics programming" is much better book. Just read 10 pages of chapter 6.