Layer-Based Procedural Generation for Infinite Worlds