Programming Through Game Design