Skip to content

roemervandermeij/Procedural-Maze-Game

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

8 Commits
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Procedural-Maze-Game

This is a work-in-progress procedural maze game developed in the Unity3D engine. The game is not finished by any definition.

Highlighted functionality:

A set of classes and methods that allow easy manipulation of maze objects to form levels of arbitrary numbers of sub-mazes

  • Assets/Scripts/MazeCreation/MazeFrame.cs
    Main maze class containing a set of interconnected MazeNode objects, and a large set of methods to safely manipulate the MazeFrame object, such as concatenating mazes, merging mazes, rotating/translating in the game world, recursively manipulating its MazeNode objects, etc.
  • Assets/Scripts/MazeCreation/MazeNode.cs
    Class describing individual maze nodes, i.e. a point in space with unconnected and connected neighbors. It contains methods to manipulate individual nodes and their connections.

Tools for generating mazes inside an arbitrary set of connected nodes (a NxMxL square structure, vertices from an arbitrary mesh, etc)

  • Assets/Scripts/MazeCreation/MazeFrameCreator.cs
    Abstract class containing maze creation algorithms (Hunt and Kill, Backtracking), to generate a maze (a set of connected MazeNode objects) within a MazeFrame created by child classes.
    • Assets/Scripts/MazeCreation/MazeFrameCreatorSquare3D.cs
      Child class inheriting from MazeFrameCreator.cs that creates the MazeFrame to generate a maze in. Square3D creates an XxYxZ set of nodes, as a cube (named w.r.t. to planned Square2.5D, a set of XZ planes sparsely connected within Y)
    • Assets/Scripts/MazeCreation/MazeFrameCreatorMesh.cs
      Abstract child class inheriting from MazeFrameCreator.cs containing methods specific to the generation of mazes from mesh vertices.
    • Assets/Scripts/MazeCreation/MazeFrameCreatorMeshIcosahedron.cs
      Child class inheriting from MazeFrameCreatorMesh that creates the MazeFrame to generate a maze in, creating maze nodes and their connections using the vertices from a specific set icosahedron meshes.

Game effects intended to make navigating the game world more challenging

  • Assets/Scripts/MindWarp/MindWarp.cs
    Abstract/interface class for creating individual effects during the game at maze junctions, intended to make the game more challenging.
  • Assets/Scripts/MindWarp/XXX.cs
    Child class inheriting from MindWarp that applies specific game affecting effects (such as generating multiple cameras with semi-random orientations)

Tools for creating procedural meshes warped around Bezier curves (using rotation minimizing frames for minimal mesh rotation in XYZ axes)

  • Assets/Scripts/SplineMesh/NDegreeBezierCurve.cs
    Class containing N-degree Bezier curve representation and methods to obtain derivatives/normals/positions at a position along the curve.
  • Assets/Scripts/SplineMesh/Spline.cs
    Class forming a spline, which is a set of connected Bezier segments (NDegreeBezierCurve objects), and methods to obtain derivatives/normals/positions/etc at a position along the spline, connected seperate Bezier segments, etc.
  • Assets/Scripts/SplineMesh/SplineFittedMesh.cs
    Class containing both the mesh to warp around the spline and the to-be-warped-mesh.

About

A work-in-progress procedural maze game developed in the Unity3D engine.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages