the programming process for game design