Maze Maker 1.0 for Doom 3

Download

Screenshot 1

Readme:

Map name: mazeMaker1
PK4 includes: new map w/scripts, new GUI w/graphic

-----------------------------------------

To run:
 * Copy "mapMaker1" directory included in this ZIP to your "Doom 
3" directory.
 * Run Doom 3.
 * Click "mods" on the main menu
 * Select "mazeMaker1".
 * Pull down the console (press CTRL-ALT-tilde, tilde being the ~ 
key to the left of the 1)
 * Type "map mazeMaker1"
 * Controls are on the panel to your left.  Enjoy!

-----------------------------------------

Description:
Essentially, maze maker is a simple proof-of-concept for recursive 
scripting in Doom 3.  I wanted to know if it was possible to 
program things like mazes and tree-based pathing with recursion, 
and the answer is yes, but only for very simple tasks (see notes, 
below).  When a button on the GUI is clicked, the program randomly 
generates a "perfect" maze, meaning a maze where any one square 
has a path to any other square.  You can drop down and run through 
the maze if you want, but the lighting might make that a little 
difficult.

-----------------------------------------

Notes:
 * THE LEVEL WILL RANDOMLY CRASH when it tries to generate a 
level, dropping out to the console and generating a stack 
overflow.  This error is not, to the best of my knowledge, due to 
a bug in the map or its scripting.  Doom 3 has a very intolerant 
limit on recursion; it looks like around 20-30 calls or so will 
cause it to error out (that's less than Flash!).  So recursion is 
an option only on VERY limited problems.  If anyone knows a way to 
increase this limit (not just how to work around it to make the 
maze - I could do that, but this is a proof of concept, not an 
actual map) drop me an e-mail.
 * The only difference between the 3 speeds of maze generation is 
the length of "sys.wait()" commands issued at each step.  They are 
functionally identical.
 * I've used the ceiling tiles here as a sort of stopgap boolean 
array (if the square over a space is hidden, we've visited that 
square before).  If anyone knows how to make Doom 3 create an 
actual array, please let me know.
 * You can increase/decrease the size of the maze generated in the 
source code; look for the maxSizeX and maxSizeY declarations.  
However, note that a larger map will increase the possibility of a 
stack overflow error.
 * The mazeMaker1.script file in the PK4 contains extensive 
comments on exactly how the maze is created.  Please look there 
for more specific info.  To open a PK4, just rename it to ZIP and 
use WinZIP, WinRAR, or a similar program to unpack it.

-----------------------------------------

License:
Feel free to use this code in your own levels, though the current 
stack limit will probably make its usefulness quite limited.  
However, I do ask that any releases that include my source - whole 
or partial - abide by the following rules, which apply to all my 
work:
 * Brief mention in the README, include my e-mail address
 * Mention in the script file where the code appears, again 
including my e-mail address
 * I would greatly appreciate if you'd drop me an e-mail and let 
me know where I can get your mod.  I'd like to see examples, if 
they exist, of recursion in action.

-----------------------------------------

Thanks for reading; please enjoy!