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

UKG Pro

Human capital management software that delivers payroll services, easy survey deployments, and more for multinational companies and large enterprises.

Snagajob

Online workforce management solution that includes a job board along with specialized recruiting services

Kahoot!

Presentation software for live collaboration and engaging training experiences through interactive video conferencing.