Been a while since I’ve posted on here, but since you’re talking procedural generation I thought I’d chime in. I’ve recently built a python version of the methods detailed here. At present it’s pretty much fully functional and game engine independent. Here’s the sort of things it can generate:
These are just some basic room/corridor set ups it can create (there’s loads more, it’s quite customisable, with a variety of utility functions). It also features it’s own grid based path finding as well so that it can AI can navigate procedurally generated terrain. It wouldn’t be hard to edit it for infinite level generation. And clever seeding of the random module would allow the player to return to the same point while keeping each level completely different (it’s on my to-do list for the generator) It was loads of fun to write and I’ve been using in Pygame and Blender projects.
I started working on a Blender wrapper for it, taking advantage of having a quick to search 2D array for object culling. Here’s some quick screen shots of my procedurally generated temple dungeon in Blender:
It’s great fun to run around in. As Agoose noted, you don’t need many assets to keep the level looking varied and interesting. And like Smoking_mirror pointed out, seeing less of the map hides repetition and makes it feel a lot bigger than it is. Using a spawner is way too slow, and a somewhat unnecessary step. Like others have said, using a 2D grid/array is much easier, it makes writing algorithms to generate content far more straight forward.
There’s a lot of good resources on creating procedural levels/mazes/content. The biggest challenge is creating an algorithm that generates levels that are fun to play (random maps aren’t fun, too rigid takes away surprise). The article I linked to above has a good discussion on this. A lot of the interest in developing my dungeon generator was in trying out various different implementations.
Another challenge I noticed was in creating the tiles, you’ve got to be very careful about how they all sit together and wrap around. And because they’re going to be repeated a lot it’s important that they look good.
On a side note, mixing indoor and outdoor lighting in the BGE is hard!