THE 3D MAZE
description
Transcript of THE 3D MAZE
THE 3D MAZE RECURSIVE BACKTRACKING MAZE GENERATOR
By::: Nishan Pantha(528) Navin Ayer(526) Pusparaj Bhattarai(532)
1. To learn Object Oriented Programming in C++.2. To use built-in features and functions of C++ in a simple manner.3. To learn about the graphical programming using OpenGL.4. To learn file streaming (create, write, save and read files).5. To model the real world in programing using OOP.6. To use 3D graphics to make the program look real and user friendly as possible.7. To use the external library and utility…
1. Opengl (Open Graphic Library)2. GLUT (or freeglut)3. SOIL (Simple Opengl Image Library )4. SDL
Objectives
1. Random Maze Generator using Recursive Backtracking Algorithm .2. 3D maze simulation .3. Game is efficient i.e. runs using less memory and processing .
Introduction
1. Inspired from the algorithm of maze solver and maze generator.
2. There are several flash game… from which some are Random maze generator . Till now there are no famous maze game as far our knowledge.
Existing System
1. The game is designed by employing Object Oriented Approach of C++ .2. 3D graphics is done through OpenGL and freeglut(utility) .3. Window and key events through OpenGL and freeglut .4. Texture loading through SDL / SOIL .
Methodology
1. For the gaming lover and puzzle solver……2. For any age group….since it does not contain any violence or scary scene ….3. For people who likes random level than the same one.4. 3D gaming instead of 2D gaming experience . 5 .Complex algorithm into simple programmable code .
Application
Lets take this maze for the description of the algorithm i.e.
Recursive Backtracking Maze Generator
The real maze looks like this after intialization.
Initial position(which is
floor)
No permission to visited the surrounding wall of the whole maze (since they are not surrounded by walls )
Closed(i.e surrounded
by wall)
Closed(i.e surrounded
by wall)
No permission to visited the surrounding wall of the whole maze (since the wall are not closed)
Closed(i.e surrounded
by wall)
Closed(i.e surrounded
by wall)
Lets chose this(random)(we have two case jump
i.e down and right)
Now this place becomes the floor i.e. the path between
initial and final for this case….
Afer many successive recursion let this condition arrises
No permission to visited the surrounding wall of the whole maze (since the wall are not closed)
Closed(i.e surrounded
by wall)
Not Closed(i.e not surrounded by wall from left and down) and for another not
surrounded by wall from left and right
No choice but to jump there
Again Afer many successive recursion let this condition arrises
No permission to visited the surrounding wall of the whole maze (since the wall are not closed)
Not closed(that’s why we jump to next block to avoid unwanted recursion since there is no
condition for visited block)such that backtracking can be done(i.e exiting from present recursion to
back….
No choice but to backtrack to the
condition where there are available closed
block
No permission to visited the surrounding wall of the whole maze (since the wall are not closed)
closed
Move to available block
Again Backtraking Occurs to available condition
No permission to visited the surrounding wall of the whole maze (since the wall are not closed)
Not closed
Now again backtracking occurs to the previous condition until there is a
available condition…….
Again After many successive recursion let this final condition arises
No permission to visited the surrounding wall of the whole maze (since the wall are not closed)
No available condition so…..backtracking occurs to the initial
condition…..
Now backtracking occurs to the initial position……After which the
maze is entirely created….generated…….
Start Game Main Menu
New Maze Instruction High score Credits Exit
Maze Size Input
Gaming Rendering
End Game
1. To find the algorithm for maze generator .2. To change the algorithm into real code.3. To convert 2D maze(2D array) into the 3D world.4. Collision Detection was the hardest part which was solved
using Axis-Aligned Cubic Collision .5. Glut is a C library …so glut callbacks function accepts only
the void function pointers…i.e function pointers to an instance of any class is not accepted by the callbacks.
6. This was solved by creating a bridge/transition class(Engine class) and an anonymous namespace.
Problem Faced and Solution
1. Maximum size of the size is 35 .. To avoid fps drop…….2. There is no 2D view of the maze while playing(accepts
while start).3. There is no 3D model (or animation) in our game.4. Older version of OpenGL(2.1) which does not support
shader implementation and many more….
Limitation
1. Making games is fun and we got to know about various aspects of programming.
2. We learnt about team work and work division
Conclusion