Killer Game Programming in Java

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.

Announcing my new Kindle e-book, Vision-based User Interface Programming in Java

[VBI cover]

I've received a book award from the university for my work, and two prizes from the faculty: pictures here and here.

There's a Czech edition of my book.

So now I'm an expert author: (not a) Eight Step Plan to Publishing Greatness.


 
[Guan Yu PIC]


Chapters    Last updated 21st March 2014:
Added Marvel Comic Covers search example in chapter 36 (the "Networking" section).

This section does not appear in the book.

This section has moved to my VBI book page.

This section does not appear in the book.

This section has moved to my Kinect book page.

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 has been moved to the new book.

  • Webcam Snaps
  • Navigating a 3D Scene by Waving Your Arm
  • Waving a Magic Wand
  • Building a Game Pad Controller with JInput
  • Game Pad Grabbers
  • 3D Sound with JOAL
  • The P5 Glove
    JOGL
     

This section has been moved to the new book.

  • Two JOGL Programming Frameworks
  • Touring the World
  • Picking on the Models
    Networking"
     

This section does not appear in the O'Reilly book (due to space constraints).

This section does not appear in the O'Reilly book (due to space constraints).

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.


Locations of visitors to this page Dr. Andrew Davison
E-mail: ad@fivedots.coe.psu.ac.th
Back to my home page