Introduction to Game Programming