This project explores whether a higher-dimensional maze can be navigated when only partial spatial information is presented at any given time. Rather than designing a content-complete game, the goal was to prototype and evaluate the feasibility of rendering and traversing a non-Euclidean maze structure using conventional 2D presentation.
The maze data is effectively four-dimensional. Two dimensions describe connectivity between rooms, while the remaining dimensions determine how that connectivity is expressed visually and spatially to the player. Although the structure could be described as a “hypermaze,” it more closely resembles a graph of wormhole-like connections rendered through a constrained interface. The challenge was not generation alone, but comprehension and navigation.
This project was inspired by an interest in theoretical physics and abstract spatial models, but it was approached as a practical systems problem: how to represent, generate, and traverse complex structures without overwhelming the user or the renderer.
Here is a short demo.
Maze Generation and Structure
The maze is generated procedurally using a graph expansion algorithm rooted at a single node. Generation proceeds iteratively, expanding outward from previously created nodes while maintaining probabilistic control over growth, branching, and looping behavior.
Rather than enforcing a strict tree structure, nodes are allowed to reconnect to existing nodes or even loop back to themselves. This prevents predictable layouts and introduces cycles that are essential for navigability in higher-dimensional spaces. Each node may form multiple connections, though only a limited subset of those connections represent true hierarchical expansion. This balance avoids exponential growth while still producing dense, interconnected structures.
Expansion depth is controlled via a generation parameter rather than spatial bounds, allowing the maze to grow irregularly without assuming a fixed world size.
To shape generation behavior, I used multiple probability distributions from C++11’s random library. Bernoulli distributions gated whether expansion occurred at all, uniform distributions bounded connectivity, and piecewise linear distributions biased generation toward navigable density rather than uncontrolled sprawl. Randomness was treated as a design tool rather than a cosmetic effect.
Navigation and Rendering
The user navigates the maze one room or corridor at a time, with only a limited portion of the structure revealed during exploration. This constraint was intentional and central to the experiment: could navigation remain intuitive without line-of-sight or global visibility?
Rendering required translating between three coordinate spaces: the abstract hypermaze graph, localized terrain representations, and tile-map chunks. Because the maze has no fixed width or height, a conventional tile map was insufficient. I implemented a tile map system capable of dynamically expanding its boundaries as exploration progressed, allowing the world representation to grow organically alongside the maze itself.
Objectives
The primary goals of the prototype were to test whether a higher-dimensional maze could be navigated without technical or cognitive breakdown, to experiment with procedural generation parameters and probability distributions, and to implement a tile-based world representation unconstrained by fixed dimensions.
Challenges and Outcomes
Debugging was one of the most significant challenges. In generative systems, structural errors often don’t surface until traversal begins, requiring exploration-driven validation rather than static checks. Another major challenge was maintaining consistency across multiple coordinate systems while preserving performance and correctness.
Despite these challenges, the prototype successfully demonstrated that a hyper-connected, higher-dimensional maze can be rendered and navigated in a way that remains user-comprehensible. While not every discovered bug was resolved, the project achieved its intended purpose: validating the feasibility of this approach and establishing a foundation that could support a full game or more advanced simulation.
Results
This project reinforced the importance of designing procedural systems around constraints rather than raw complexity. It also deepened my understanding of generative debugging, probabilistic control, and the translation of abstract data into navigable representations. If extended further, the same approach could support more complex mechanics or be adapted into a 3D exploratory game.
Rover Recursive Pathfinding
Shirly
Word Search with Threads
Hypermaze Prototype
Orthanc PHI Filter Plugin