Mountains, Cliffs, and Caves: A Guide to Using Perlin Noise for Procedural Gen | Dark Hacker News