Skip to content
Jake Dube edited this page Feb 12, 2017 · 3 revisions

Note: this wiki is for the developers...if you need support you can contact us via the Blender Market.

Maze Generator [Pro] Wiki

Tasks

  • Clean custom tile storing interface - nice workflow (create tiles --> test tiles with a predefined maze --> export tiles)
  • Research circular mazes further to see if that could be implemented
  • Training videos

Notes

  • Add bias for x or y axis (giving it a higher chance of going in a particular direction)
  • Kruskal's Algorithm - DONE
  • Recursive division algorithm
  • Eller's algorithm - DONE
  • Hunt and kill algorithm
  • Binary tree algorithm - DONE
  • Sidewinder algorithm
  • Other shapes...see mazegenerator.net below

Important Links For Maze Algorithms

Best

Must Read Still

Average

Using and Maintaining toggle_in_blender.py

I created this script to quickly switch all the files that can be used in/out of Blender with slight modifications between Blender and non-Blender mode. Just add new scripts to it's files list and fire it up, then type "T" or "F" for if you are in Blender (T = True in Blender).

Growing Tree Algorithms

  1. Start at a (random) cell, make it a path, and add it to a stack
  2. Choose a cell in the stack
  3. If there is a valid neighboring cell, pick one at random
  4. Make the cell a path and add it to the stack
  5. If there is no valid neighboring cell, remove the cell from the stack
  6. Repeat steps 2-5 until the stack is empty

Depth-First Variation

Always choose the last (most recent) cell in the stack.

Breadth-First Variation

Always choose the first (oldest) cell in the stack.

Prim's Variation

Choose a random cell from the stack.

Binary Tree Algorithm

  1. Choose 2 adjacent cardinal directions (NW, SE, NE, or SW)
  2. For every cell, choose 1 of the 2 directions to make a path

Kruskal's Algorithm

TODO

Eller's Algorithm

TODO

Dube's Algorithm

  1. Start in the center of the grid (or space you would like to infinitely fill)
  2. Assign that cell to a unique set
  3. For every set on the +x face of cells, clone it to the right
  4. Fill in cells in the x + 1 column that were not filled when cloning with their own unique set
  5. Repeat steps 3-4 for the -y, -x, and +y axis until an axis hits a boundary
  6. If an axis hits a boundary just remove it from the list to loop through, and continue on
Clone this wiki locally