Killer Game Programming in Java
is for people who already know the basics of Java.
For example, students who've finished an 'Introduction to Java' course.
The aim is to teach reusable techniques which can be pieced together
to make lots of different, fun games. For example, how to make a
particle system, first-person keyboard controls, a terrain follower, etc.
If you don't know Java, then Killer Game Programming in Java
isn't for you. Instead, have a look at
my Java book suggestions.
The main emphasis of my book (over 17 chapters) is on 3D gaming
using Java 3D.
Java 3D is a great tool for very quickly building 3D
worlds, without needing to implement low-level 3D rendering
functionality. This is the only book on Java 3D and gaming.
The last chapter describes a networked 3D virtual space.
Early (sometimes very early) draft versions of the book's
chapters can be downloaded from here (see the links below).
All the book's code is here, either downloadable as a single zip
file (visit the code page), or on
a chapter-by-chapter basis from each chapter's page (see the links
below).
I've also been adding new chapters here; chapters which
don't appear in the book.
Important Note:
If you're using Java 3D with Java 7, then you need to need to set
the following property at the start of your application: System.setProperty("sun.awt.noerasebackground", "true");
This prevents the mixing of heavyweight (Canvas3D) and lightweight
Swing components in JRE 7 from causing redraw problems (i.e. the
Java 3D canvas is sometimes drawn as a blank gray rectangle).
This section does not appear in the O'Reilly book (due
to space constraints).
Important Note 1:
I've used GIF-formatted
images in my examples, which is fine in WTK 2.2, but isn't supported
by the M3G specification. For portability, you should use
PNG images; I'll be changing my code when I have a bit of spare
time.
Important Note 2:
In several places I've used textures that are 512x512 in size;
unfortunately, Nokia Series 60 phones only support 256x256, so
reduce the texture size if you're coding for those.