Beginning .Net Game Programming In C# by David Weller, Alexandre Santos Lobao & E. Weller