Killer Game Programming In Java by Andrew Davison