| |
|
|
||||
![]() |
||||||
| |
|
|||||
|
Java for Games
This is an annotated list of references for Java. It is by no means complete, but it should give you some starting points to track done the tools and information you require. Java for commercial games is one of the few topics that is not excessively covered yet. Usually the examples and documents cover "Gamelets", like http://java.sun.com/features/ 1998/08/games.html. There are a few games that use, or tried to use, Java. The Rainbow Six Postmortem in the May 1999 issue of Game Developer magazine reports some experiences with Java-based technology. The Java3D-related programming articles here on Gamasutra are probably more useful with respect to applets, and maybe for writing portable editing tools, but do not relate to full-sized games: http://gamasutra.com/features/programming/ 19990115/java3d_01.htm http://gamasutra.com/features/programming/ 19990122/java3d_02.htm On the topic of using Java in commercial games, Robert Huebner of Nihilistic gave a talk at the 1999 GDC (found in the proceedings on pages 403-414), the slides of which are available at http://www.nihilistic.com/GDC99/ Java/index.htm. Huebner focuses on using Java as an embedded script interpreter, and the print version has a very detailed list of requirements and constraints and how they are met by Java. His review also puts some emphasis on the Embedded Java Application Environment (EJAE) http://java.sun.com/products/ embeddedjava. I suspect that EJAE is not really relevant. Sun has created various Java specifications in attempts to cover potential markets, but I am not aware of anything actually delivered that would be significantly different from the core JDK. For example, the GUI toolkit for embedded devices (called Truffle) will basically implement AWT. For our purposes, "embedded" Java is simply equivalent to a VM created and destroyed by the game engine. The Java Native Interface (JNI) By now there should hopefully be a full specification for JNI in Java 2, at http://java.sun.com/products/jdk/1.2/docs/guide/jni/index.html. If not, the document to get is the "Java Native Interface Specification" as of Release 1.1, revised May 1997, available at http://java.sun.com/products/jdk/1.1/download-pdf-ps.html. This describes the Java 1.1 JNI in its entirety. The few JDK 1.2/Java 2 changes to JNI are described at http://java.sun.com/products/jdk/1.2/docs/guide/jni/jni-12.html. There are also some very simple tutorials on how to use JNI. JNI has not been dealt with in many books yet. A good reference is Rob Gordon's Essential JNI (Prentice Hall, 1998). It covers the JDK 1.1 JNI and Invocation in lots of detail with both C and C++, including, for example, a UNIX/Win32 example which shows how to access serial devices via JNI. The sample code is at: ftp://ftp.prenhall.com/pub/ptr/professional_computer_science.w- 022/gordon/essential_jni/. Check out the book Java Native Methods, to be published under the Alligator Descartes alias (it's written by the main developer of Magician). It is scheduled for release in August 1999. See http://www.oreilly.com/catalog/javanm/noframes.html for some details. The book will cover both Sun's JNI and Microsoft's RNI, with insights gained during the implementation of the Magician OpenGL interface, which is supposed to serve as the basis for the ARB specification of JavaGL bindings (see http//www.arcana.co.uk/products/magician/). The author is very critical of JNI and AWT design (performance is his top priority), and for those developers that are willing to wed themselves to Microsoft's Java VM and tools in exchange for possibly better performance, the book might give some insights in what gains are actually possible. |
|
|