Advanced Game Programming by Drew Sikora & John Hattan