menu
menu

DOOM 3 - MazeMaker: Random Maze Generator

Essentially, maze maker is a simple proof-of-concept for...

DOOM 3 - MazeMaker: Random Maze Generator

Essentially, maze maker is a simple proof-of-concept for recursive scripting in DOOM 3. 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. Read below for more details!

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

Maze Maker v1.0 8/14/04

Martin "mwoody" Woodard, [email protected]

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

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.

Top 3 DOOM 3 - MazeMaker: Random Maze Generator Alternatives

DOOM 3 - Cel Shader Mod

This revolutionary mod applies cel shading to Doom3, giving...

DOOM 3 - E-mail Mod: End the Silliness

This is a small mod that fixes the silly e-mails in DOOM 3,...

DOOM 3 - RUN!

This is a mini game in which you have to run to the end of...

Recommended Software

CSV2QFX (CSV to QFX Converter)

Convert data in comma-separated value (CSV) format to QFX for seamless importing into QuickBooks and other Intuit products

Snowflake

Enterprise cloud hosting, data management, and third-party data provider services for large companies and small businesses

G2 Marketing Solutions

Use G2's world-famous software review platform to get your company's solutions in front of new prospective customers each month