I've got a nice package for you:
http://users.telenet.be/vge/downloads/MazePack.zipThis is a complete package which I've written to generate mazes as 2D bitmaps so you can print them on paper to solve for yourself.
Afterwards I've written a converter to convert that bitmap into a datafile which declares at which location a certain maze-part is located (a straight corridor, a corner, ...).
Finally Maze3D loads this datafile and generates a 3D maze, through which you can walk (just moving a camera).
In the zip-file are 4 directories.
The "MazeGenerator" dir holds all files (including full source-code) which make up the maze-generator, which generates the bitmap.
The "MazeConverter" dir holds all files (including full source-code) which make up the converter (which reads the bitmap and creates the datafile).
The "Maze3D" dir holds all files (including full source-code) which make up the 3D-maze, which loads the datafile and generates the 3D maze as one big mesh.
Finally, the "MazePack" holds all binaries in one dir, because the binaries load and save their datafiles in their own dir (they're just put together so no copying/moving files).
Use it like this:
Go into the MazePack dir and run MazeGenerator.exe.
The generator asks for the size of the maze (use values from 5 to 50). Going over 50 is possible, but Maze3D might generate an MAV, because the maze gets to big (over 65k vertices). You should now have a file Maze.bmp in the dir.
Then use MazeConverter.exe.
This examines the bitmap and generates code and saves it as Maze.dat (which can be read in Notepad).
Then use Maze3D.exe and have fun collecting all the coins.
There are as many coins as the size of the maze.
If you created a maze of size 50, then there will be 50 coins to collect at random locations.
You can disable gravity by pressing spacebar and you can go up/down using z/s respectively, so you can view the maze from above.
It also has collisions built-in.
It's not optimized to reduce polycount by merging walls and such, I haven't been able to figure that out yet.
If you're searching for the code which reads the Maze.dat file, look into Maze3D\Includes\ReadMazeData.bb.