MazeGen
Maze Banner Image
Maze Generator
Winter 2020
Kyle King

Project Description

Technologies Implemented

Lighting

A point light is spawned at the camera eye position to illuminate immediate surroundings.

GameCamera

This camera is controllable via strafing and dollying with WASD and looking around via mouse cursor position.

Maze Generation

Pressing G randomly generates a new map that is guaranteed to be solvable. A row of golden statues awaits you at the exit on a red carpet.

Collisions

A grid-Based collision system was used, such that attempting to move the camera into an occupied cell results in being redirected along a reflected vector away from the targeted occupied cell.

Sky Box

A starry sky box was placed around the scene.

Blinn-Phong Shading

The dummies and carpet were shaded with Blinn-Phong shading.

Textures

The maze walls and floor were textured with mossy wood and jungly floor textures over transformed cube objects.

Controls

C:

Toggles collision detection with maze walls.

Z:

Toggles triangle-only rendering.

G:

Generates a new gym.

T:

Toggles between top-down and entrance-in camera positioning.

WASD:

W and S are used to dolly the camera, and A and D are used to strafe.

Mouse hold / move:

Holding the mouse and moving it results in adjusting the camera's look at position accordingly.

Results

A general overview of the 3D scene

References and Resources

OpenGL

GLSL

GLM

GLFW

OpenGL

w3school.com for HTML and CSS references

Wikipedia for maze generation.

StackOverflow for debugging GLFW, GLM, GLSL, and OpenGL issues in general.