Software Engineering For Automated Game Design