Design Patterns in Game Development by John Chamberlin