Teaching the arts and sciences of digital game development