Definitely what forumaccount said: Everything in the map should serve some purpose. Various kinds of beings/features should interact in interesting ways. For instance, many RLs feature traps that you can lure monsters over, or even let you set traps yourself. Monsters can like/dislike each other: I remember this game, "Abe's Odyssey", where one monster (a giant crab-thingie) would chase and kill you upon sight, but whenever two of them met, they would fight it out between them, which was the motor of several puzzles. Also, monsters that can use items and react to their environment, adds to the fun. Terrain features can be used to create an interesting field: Water might effectively block movement, but allow shooting over it, and tall bushes could block sight but allow you to move through. (I actually think this is an underused feature in RLs: terrain that blocks sight, but not movement; in games like Legerdemain, Vapors of Insanity, Brougue, Pixel Dungeon …)
In a procedural level generator, try to make content open-ended, so that unexpected combinations will occur. Even with little or no hand crafted challenges, there can arise fun things like wading through dense vegetation, and suddenly being surrounded by fire monsters that set the whole grove ablaze. And of course it's nice with a system for putting in pockets of handcrafted content (Kyzrati just published an
article about that), allowing nice set-ups like a bridged chasm with some interesting object/switch on the other side. Even without "prefabs", you can still make imaginative places with a simple generator. A big room with lava pits you can try to push your opponents into, for instance.
I guess it's a question of giving the player purpose and agency – rather than endlessly passing down identical corridors, chasing some vague MacGuffin of the deep. There should be situations where you have some short term goal/reward (whether stick or carrot) that you try to reach with the resources at hand. Taking some examples from my abandoned game Squirm: I had a random place with a fenced-in "monster zoo", and a zoo keeper that would try to unlock the gates and release the hounds. This was intended to give the player some urgent purpose (apprehend the zoo keeper). There were bands of adventurers, who would be hostile to monsters and could become your allies, but also attacked the player if he picked up treasure or hit one in their group. I also put in "questlets" to keep it interesting. One involved retrieving the clothes of a bathing knight (the knight was generated in a pond in the middle of the dungeon, the clothes would be hidden somewhere). Another involved helping a hermit catch his runaway pancake (the pancake was really fast, and you had to work with the AI of the hermit to make it).
As always,
Minotauros