The Dragon’s Puzzle — A VR Game
Documentation of my design process for The Dragon’s Puzzle, a Google Cardboard game.
The Dragon’s Puzzle is a Google Cardboard game I designed and developed as part of my coursework with Udacity’s VR Developer Nanodegree. The goal of this project is to create a full VR game in Unity, test it with users, and iterate until I have a clear and intuitive experience. I also had a personal goal to use Tilt Brush Toolkit to create all the visual assets in the game.
Tools: Unity3D, Tilt Brush
Resources: GoogleVR, iTween, TiltBrushToolkit, Udacity sample code, freesound.org
The outcome of this project is a Simon-says-inspired puzzle game set inside of a cave.
The gameplay consists of 5 magical orbs that light up in a randomized sequence. The player memorizes the order that the orbs light up in and then repeats the same order by tapping on the orbs after the sequence is complete. If the user answers correctly, they move to the end. If they answer incorrectly, the puzzle restarts.
The project was broken into several phases, each of which consist of brainstorming, testing, and iterating. It started with understanding the problem space, then establishing the setting, building the user interface, followed by implementing the movement controls, scripting the gameplay logic, and finally, integrating feedback & polish.
The assignment was to create a Simon-says-esque puzzle game for Google Cardboard. From my knowledge of VR gamers, I created a persona that I felt captured the essence of the target user for my game.
The setting is a vital part of any immersive VR experience. I started with sketches to get some ideas down on paper quickly. I knew the end result was going to be a puzzle game, so I sketched variations on how the puzzles would be themed.
I picked a setting that would play with the user’s sense of scale, so I chose C, the dragon cave. I then began building the base assets so that it can be user-tested. I modeled a simple cave and populated it with some gemstones for a magical feeling. I set up the player scale and lighting, then tested this with users to make sure the game appropriately fits the mood I want to convey.
With the setting and mood established, I began sketching variations of UI placement. Since VR experiences tend to use world-space UI for better spacial awareness, I wanted to go with a diegetic interface that fits the theme.
I chose the wooden sign treatment and modeled it in Tilt Brush. Once the UI was made, I hooked it up, tested the scale with users, and moved on to interaction.
Before beginning the puzzle gameplay, I want the user to navigate up to the sleeping dragon and have a chance to look around the cavern to really be immersed in the VR-painted world. I tested three different methods of locomotion in Cardboard VR and went with a linear, on-rails type of movement. With an on-rails movement, the user is moving at a constant velocity to a defined point, which would be handy for taking them on a short tour of the cave before starting the puzzle.
Gameplay & Feedback
I began with the base gameplay code provided by the course. From there, I made improvements to and tweaked the player feedback mechanisms to make the player intent more clear.
Subtle audio and visual feedback cues help to ensure the player knows what’s happening at any given time. I added sounds that ramp up as the user comes closer to the dragon, sounds for when the game is about to begin, and sounds for win and fail states. Visually, color changes on the orbs help the user piece together the cause and effect relationships between user action and gameplay response.
In order to ensure that I was successful, I tested several times with a user and gathered feedback on further improvements.
User Testing Outcomes
“The mood felt gloomy and isolated.”
The initial set of user tests occurred during the setting phase. Overall, the participants felt that the scale was appropriate but the comfort could be improved, as the scene was too dim, and the cave felt too sparse and empty. In order to improve the comfort and mood I:
- updated the lighting to be brighter
- moved the orbs further apart to fill the space better
- created a model of a dragon to better fit the original concept sketch for the scene
The second set of tests involved the interface. There were two tests: the first was testing the scale of the panels, which were built with placeholder assets.
When the scale felt appropriate, I stubbed in the wooden sign model, picked a themed font, and tested again.
The participant then felt that the panel’s fonts were difficult to read and the button was too subtle to suggest interaction. With the wooden sign model grounding the interface panel, the user felt the scale was no longer appropriate.
“The sign is way huge!”
Also, the signs had no feedback when hovered, and they felt that it was awkward for the user to simply walk through the sign upon clicking the “Go” button. The next iteration involved:
- Adjusting the font case on the sign
- Shrinking the scale of the sign models, but bumping up the font size to maintain legibility
- Providing feed-forward on buttons
- Making a custom button graphic that provided more contrast to the panel behind it
- Creating a sign disappearing animation
“It would be cool if the orbs were closer to the dragon, I want to see more detail!”
Next was the testing for the on-rails movement mechanic. The user felt that the initial movement to the puzzle was way too fast, like they were sprinting. They also wanted the orbs to be closer to the dragon. With this feedback in mind, I:
- Slowed and delayed the initial movement
- Pushed the gameplay waypoint closer to the dragon and changed the speed accordingly
- Repositioned some gemstones that were in the user’s way once the user completes the puzzle and moves to the end sign
Finally, I conducted testing on the gameplay. Once the puzzle mechanics were in, the user felt that the sequence was beginning far too fast; they did not have time to react and missed the first orb that lit up. They also were disappointed in the lack of victory; when the participant won the game, they simply moved to the end sign. Furthermore, when the participant failed the puzzle sequence, they were confused and didn’t know the puzzle was restarting. The final iterations fixed these issues by introducing:
- A starting chime to alert the user to pay attention when the puzzle sequence was beginning
- A sound feedback when the player wins
- A red flashing feedback on the orbs when the player loses
The Dragon’s Puzzle was a great learning opportunity for me. The process that I developed can be applied to designing any Cardboard VR experience to ensure usability and comfort. I had a blast building the project from start to finish, creating 3D assets with Tilt Brush, and watching users interacting and providing feedback for continuous improvement!