Programming and Video Game Design