By Mark Damon Hughes <kamikaze@kuoi.asui.uidaho.edu>
So, you want to start writing games in Java, but don't know where to start? Fortunately, all of the tools and much of the documentation you will need are free for the downloading.
You need the JDK. You will almost certainly want one of the four main development environments: Forte, Eclipse, Vim & Ant, or JEdit & Ant. The links for each of these are below. Most of these work on at least Linux, Solaris, MacOS X, and even Windows.
Tools
Java Development Kit 1.4- This includes the compiler and all libraries. Make sure you also download the documentation, and read it, especially the API reference. You may wish to use JDK 1.3 for a while longer - there's no port of JDK 1.4 to MacOS X yet, and 1.4 interacts in unstable ways with some Linux video drivers. However, there are many features and optimizations in 1.4 designed specifically for games.
Sun's New to Java page
Linux: Blackdown.org
JDK 1.4 status
The Sun implementation is based on Blackdown work, and I've found it
more reliable to use the Blackdown versions.
MacOS X:
www.apple.com/java/ and
developer.apple.com/java/
Vim- Open-source vi-based editor with syntax highlighting. This is what I use and personally recommend.
Ant- Open-source XML-based buildfile system. Learn to use Ant and you'll never want to use a Makefile or an IDE build system again.
JEdit- Open-source Java-based editor with syntax highlighting, with lots of plugins.
Sun ONE Studio- Formerly called Forte. Nice IDE, but deathly slow if you don't have a really fast machine, a fast video card, and tons of memory. The CVS integration works well, and the debugger is quite good.
Eclipse- An open-source IDE, reasonably fast, and similar to IBM's VisualAge for Java. However, it was, last I checked, still in development, so it's not up to my standards for "prime time use".
Information
There are currently few good books specifically about Java game programming - Cutting-Edge Java Game Programming from Coriolis was perhaps the best of those that were published, but it is quite old, and introduces little that you cannot pick up from the sources listed below.
Thinking in Java, 3rd Edition,
by Brucke Eckel- A free electronic book, and an excellent intro to Java and proper object-oriented design.
The Java Tutorial
Graphic Java Vol. 1: AWT,
3rd Edition, by David Geary- An excellent book on how to use the AWT (Awkward Window Toolkit) correctly and efficiently. There is also a Vol. 2: Swing, but Swing is a very slow and heavy GUI designed for business applications. Most games are going to be written with just AWT support.
Concurrent
Programming in Java, 2nd Edition, by Doug Lea- An absolutely essential book on writing multi-threaded applications in Java.
Online Supplement
Java 2 Network Programming, 2nd Edition, by Elliote Rusty Harold- While you can learn Java network programming the hard way, by trial and error as I did, this is a better tutorial.
Java Performance Tuning, by Jack Shirazi- Games are often processor-intensive, and while Java is much faster than it used to be, performance tuning in Java is difficult work. You'll want this book as soon as you hit that performance wall.