The Game Engineer's Challenge: Generalizing and Grounding Language Abstractly and Concretely