How (and Why) Spelunky Makes its Own Levels