Maze Builder Docs 6.0.1
|
Build textual representations of mazes quickly and easily on multiple platforms and languages. Below is an example of the string generated from the command-line interface.
The library provides multiple export formats like Wavefront object, PNG and JPEG images, JSON, and plain text or stdout.
Enables rapid prototyping and creating example levels for games and simulations. The exports can be integrated into game engines and renderers like Unity, Godot, Blender, Unreal Engine and so forth.
Run the binary_tree
algorithm with long arguments:
Run the dfs
algorithm with short arguments:
Use the maze API in a modern C++ program:
CMake 3.2 or greater is required. The included examples require external dependencies which can be grabbed from the Internet:
CMake can fetch these dependencies from their respective git
repo's on the Internet.
Use the following CMake options to configure this project:
CMake Option | Default | Description |
---|---|---|
MAZE_BUILDER_EXAMPLES | OFF | Build with project examples enabled. |
MAZE_BUILDER_COVERAGE | OFF | Build with code coverage using CppCheck . |
MAZE_BUILDER_TESTS | OFF | Build with testing using Catch2 . |
MAZE_BUILDER_DOCS | OFF | Build the docs using doxygen . |
MAZE_BUILDER_MEMCHECK | OFF | Build with Valgrind and Memcheck support. |
CMAKE_TOOLCHAIN_FILE | cmake | Building with a specific toolchain. Useful for `Emscripten` builds. |
cmake -S . -B build-examples -DMAZE_BUILDER_EXAMPLES:BOOL=ON
Build it: cmake --build build-examples --config Release
By default, both a shared-object library and static library are produced. The shared and static files have different naming conventions depending on the platform:
Platform | static lib | shared lib |
---|---|---|
Windows | mazebuildercore_static.lib | mazebuildercore_shared.dll |
Linux | libmazebuildercore_static.a | libmazebuildercore_shared.so |
MacOS |
Configure the project for testing: cmake -S . -B build-tests -DMAZE_BUILDER_TESTS:BOOL=ON
Run the tests: ctest --test-dir build-tests/tests --verbose -C Debug
Configure examples for the browser using Emscripten and their toolchain file.
The follow is an example of a JSON input file:
The out.json
file might look like this:
The Ruby script mazes.rb
generates PNG images of mazes using algorithms and methods similar to the C++ library. It is a good place to start learning about the maze-generating algorithms. The Python script solver.py
plays with the maze generation by loading PNG files and finding paths and networks.
Script dependencies:
gem install chunky_png
pip install numpy pillow networkx
Provided is a web interface in a voxel world that enables interactive maze generation.
Check out the this example in a live app!
The web app can be run locally with the provided secure_http_server.py script. Once the provided script is running, then open the browser to http://localhost:8000
.
JSONHelper
impldoxygen
formatscppcheck
grid_interface.h
#include <MazeBuilder/maze_builder.h>