משחק חשיבה ,פעולה והרפתקאות שבו השחקן צריך למצוא את דרכו החוצה ממפה מבוכית תוך כדי לחימה עם אויבים ופתרון חידות. היחוד של המשחק הוא שהשחקן שלנו הוא לא אדם רגיל והמפה היא לא המפה היחידה. השחקן יודע להוציא את התודעה שלו מהגוף ולעבור לעולם שמקביל לעולם הראשי ששם המפה שונה מהמפה של העולם האמיתי וכשהוא זז בעולם המקביל הגוף שלו מצליח לזוז גם בעולם האמיתי ולעבור במקומות שבעולם האמיתי יש קיר ואין אפשרות לעבור למי שלא יכול לעבור בין מימדים. במהלך המשחק השחקן יצטרך להתמודד עם חידות, לפתור תעלומות, לחפש סודות, להלחם עם אויבים ולמצוא את הדרך מוצא מהמבוך.
למעבר להסבר לחץ כאן .
Use W,A,S,D to move ,SHIFT to sprint and SPACE to change the dimension (where some walls may change their status).
P - to pause the game and see the controls.
Mouse - to rotate players perspective.
Right Mouse Button - to aim.
Left Mouse Button - to shoot fireballs.
Was made as one a weekly task in a unity game development course.
By VictoKu1 .
The massive changes are:
-
Added a tutorial level with a short explanations of the controls.
-
Implemented a 3D Maze Generation based on Recursive Backtrack Algorithm.
A maze can be generated by starting with a predetermined arrangement of cells (most commonly a rectangular grid but other arrangements are possible) with wall sites between them. This predetermined arrangement can be considered as a connected graph with the edges representing possible wall sites and the nodes representing cells. The purpose of the maze generation algorithm can then be considered to be making a subgraph in which it is challenging to find a route between two particular nodes.
If the subgraph is not connected, then there are regions of the graph that are wasted because they do not contribute to the search space. If the graph contains loops, then there may be multiple paths between the chosen nodes. Because of this, maze generation is often approached as generating a random spanning tree. Loops, which can confound naive maze solvers, may be introduced by adding random edges to the result during the course of the algorithm.
The animation shows the maze generation steps for a graph that is not on a rectangular grid. First, the computer creates a random planar graph G shown in blue, and its dual F shown in yellow. Second, computer traverses F using a chosen algorithm, such as a depth-first search, coloring the path red. During the traversal, whenever a red edge crosses over a blue edge, the blue edge is removed. Finally, when all vertices of F have been visited, F is erased and two edges from G, one for the entrance and one for the exit, are removed.
This algorithm, also known as the "recursive backtracker" algorithm, is a randomized version of the depth-first search algorithm. Frequently implemented with a stack, this approach is one of the simplest ways to generate a maze using a computer. Consider the space for a maze being a large grid of cells (like a large chess board), each cell starting with four walls. Starting from a random cell, the computer then selects a random neighbouring cell that has not yet been visited. The computer removes the wall between the two cells and marks the new cell as visited, and adds it to the stack to facilitate backtracking. The computer continues this process, with a cell that has no unvisited neighbours being considered a dead-end. When at a dead-end it backtracks through the path until it reaches a cell with an unvisited neighbour, continuing the path generation by visiting this new, unvisited cell (creating a new junction). This process continues until every cell has been visited, causing the computer to backtrack all the way back to the beginning cell. We can be sure every cell is visited.
As given above this algorithm involves deep recursion which may cause stack overflow issues on some computer architectures. The algorithm can be rearranged into a loop by storing backtracking information in the maze itself. This also provides a quick way to display a solution, by starting at any given point and backtracking to the beginning. Mazes generated with a depth-first search have a low branching factor and contain many long corridors, because the algorithm explores as far as possible along each branch before backtracking.
The depth-first search algorithm of maze generation is frequently implemented using backtracking. This can be described with a following recursive routine:
Given a current cell as a parameter,
Mark the current cell as visited
While the current cell has any unvisited neighbour cells
Choose one of the unvisited neighbours
Remove the wall between the current cell and the chosen cell
Invoke the routine recursively for a chosen cell
which is invoked once for any initial cell in the area.