Master Thesis written at BMW NA for the MSc Computer Games Programming Degree at Staffordshire University