Procedural Generation : Where Math Meets Magic in Game Development