Beginning Java Game Programming, Second Edition by Jonathan Harbour