Vlad's Portfolio Site

VR Maze Game

An exploration game that places the player in an randomly generated VR Maze.








VR Game

The VR Maze game is an immersive VR experience that allows the player explore and escape randomly generated maze guided by only faintly-lit torches on the wall and scattered hints.

With the help of procedural generation, the player experiences a new experience each time they play which means a new adventure each round. Throughout the maze, the player can find helpful hints to guide them to the end.

This project was collaborative in nature and part of the final project for a Virtual Reality and Augmented Reality Development course at The University of Michigan.

This was a fun project because learning procedural generation was extremely challenging but super rewarding. The game was developed in Unity, C# and the OpenVR framework.

Project Goal

This project's goal was to practice the fundamentals of VR and create an experience base on that. Since I'm an avid gamer, my partner and I decided to make a maze escape game.

Game inspiration

Gaining inspiration from certain parts of a Japanese supernatural theme, my partner and I wanted to create an immersive experience without any jump scares or shocking scenes.

Betrayal At The House On The Hill is a board game that prides itself on repeat gameplay due to its random map layout each playthrough. Additionally, this led us to explore procedural generation – essentially generating a map layout, randomly, each playthrough.


Procedural generation

One of the key features of this game that I worked on was creating a world that was different each time you played.

The primary reason my partner and I worked hard to implement this mechanic was because we want our game to have good replayability.


Another important aspect of the game was creating the feeling of being alone in the dark and the desire for the player to seek sources of light.

Dynamic Clue system

One aspect of the game we wanted to avoid was throwing a player into amaze that is either too difficult or not enjoyable.

To combat this part, my partner and I created a system that attracts the player to explore the maze and hopefully find the exit quickly.

This was more difficult than we had anticipated primarily due to the fact we didn’t know the layout ahead of time and had to create it procedural too.

Player interaction

To improve player immersion, we also implemented some light player interactions. An example of interaction is finding torches for supplementary light sources.

First Prototype

Testing out procedural generation with sample textures and basic movement.

Clue Lamps

Spread across the maze some lamps provided clues to the exit. My partner created a systematic way to generate these clues based on the starting and exit points.

Oni Masks

Throughout the map, there were placed masks that decorated the walls with the supernatural theme mentioned earlier.

Testing and Iterating

To learn how players played our game, we ran a few test sessions with classmates and some of our peers. Below you can find some of the feedback and improvements we received from the testing sessions.

Major Findings

Navigational Lamps

Some players used successfully used the lamps as points of interest and followed their navigation.

Disoriented In Maze

Although navigational aids were available, users still became discordant because of floor texture bugs, teleportation issues, not enough lamps, not enough feedback for completion.

Poor path finding

Many users failed to find the exit due to poor pathfinding practices.


Players got lost often and weren’t able to rely on safe landmarks that can guide them back to a previous point in the maze.

Second Prototype

Testing out procedural generation with sample textures and basic movement.

Second player bird’s eye

One feature that came out directly from running a test was co-op support. During our test, my partner had other people come by and help the main player escape because they were able to tell them which direction to go because a player already visited an area before.

Because of this, we enhanced the experience for both players by making it easier to see for the second player so they could be a better guide.

Informational Starting area

From our testing sessions, some players were unsure how to begin or what to do when they put on the VR headset. For an self-sufficient playing experience, we provided a starting area that explained the goal of the game and some basic game mechanics.

More Clues

To make the gameplay a bit easier, we added additional clues. Although, some clues were placed to also deceive the player. We didn’t want to make it too, easy.

Exit Celebration

The final piece to the puzzle was to make it clearer that the player had found the exit. The way we solved for this problem was creating a completion area that showed the player had won the game and finished the maze.