Currently, most virtual reality experiences use controls that are similar to traditional, non VR games. Today, this can be using a joystick or waving a controller like the Wiimotes of old. While having traditional controls make VR gameplay relatively intuitive, VR movement can seem out of place with the traditional controls. These control surfaces can make or break the immersive nature of the virtual reality experience and ruin the user’s sense of presence in a virtual world.
The most common VR movement strategies today use a left joystick for movement and the right joystick for turn–much like playing a first person shooter on a game console. Some titles provide teleportation (by pointing to a destination and clicking to go there), as a less immersive yet less dizzying alternative to move longer distances. Teleportation move is also commonly used in passive VR experiences, like VR art galleries, to navigate a large space that has distinct areas of interest. Another typical way to move in VR is grab and pull, seen in games like Gorilla Tag or The Climb, where the player first grabs the ground or wall, then pulls their arms inwards to propel themselves forward.
Beyond the joystick, teleportation, and grab and pull, it’s rare to see other kinds of movements used in VR games. There is a lot of potential to create more immersive experiences by implementing novel movement mechanics. In light of this, the question arises: are there any VR mechanics that have not been explored yet?
VR experiences defaulting to joystick and teleportation misses out on exciting game mechanics that can greatly enhance the immersion and enjoyment of the game. In this article, I explore other types of movement, their potential applications, with a focus on more intuitive movements that mimic real world inputs.
Head Tilt (Headset movement)
By leaning forward or backward, you immediately recognize the movement. Tilting more increases the speed you move. Because the movement does not use controller input for movement, it frees up the controllers for other uses. However, as this detects the movement of the head, it is not optimal for an action scene, where you would naturally move and look around a lot more. If we add a way to turn by leaning, this becomes similar to how a Segway or a Hoverboard moves. This achieves a faster way to move from point A to B that aligns closer to the physical movement of the body (as the player is leaning towards the direction they want to go). This kind of movement would be ideal for more calm experiences that move within a large yet limited space, like a virtual museum or a house tour.
Controller Velocity/Run-in-Place (Controller movement, headset movement)
When you walk or run, you naturally move your hands back and forth. Controller velocity movement takes any kind of physical movement of the controller as the velocity of the player. Where you’re looking dictates the direction. Because this can imitate the hand motion while running, it can be applied in sports games (like NFL Pro Era). This mechanic would fit well with applications that require short bursts of movement in a relatively short distance, as how fast the arms move directly correlates to how the player moves. There is potential to use this kind of movement in horror games, where exhaustion of the player due to rapid movement could potentially become a game mechanic.
Jetpack (Controller input)
You can press the primary button (X or A) of either controller to lift yourself up into the air and let the gravity bring you back down. Then the horizontal movement is dictated by the movement of the joystick, which is similar to how jetpack controls work. Other than the obvious use case of using jetpack in VR games, jetpack adds vertical movement that is simple and easy to control, which is suitable for exploring large 3D environments. Having a birds-eye view to a large scene with a smooth hovering creates a more natural movement in x, y, and z axes.
A variation of the jetpack movement is using the hands as the source of thrust, similar to how Iron Man uses his hands to lift off and fly. This type of movement allows for physical control which eliminates the need for use of joysticks. I’m not sure where this kind of movement would be useful besides using them for Iron Man or other superhero type movements.
Point Direction (Controller movement, controller input)
Reversing the direction of thrust from the Iron Man jetpack movement creates the effect of pointing in the direction you want to go, whether it’s up and down, forward and back or left and right. Having the ray and being pointing towards where you want to go is one of the most intuitive ways to move around.
Bird Flying (Controller movement, headset movement)
This is a fun one. You can flap my arms to move up, and bringing the arms closer to your body and leaning slightly forward mimics bird diving. Also, spreading arms out and putting them slightly behind creates the gliding motion. Other than a flappy bird VR remake, I doubt there are many applications to using flapping motion for VR movement, as it is quite a workout to keep your arms up for a longer duration.
Swimming (Controller movement, headset movement)
Swimming movement is recreated by first reaching forward with both hands, and pulling the arms back to move forward. To implement the simple swimming mechanism, the script takes in the movement of controllers and creates a force that is opposite of the hand direction, as swimming is essentially pushing against the water. This kind of motion would be suitable for any VR experience that has movement within water or moving through an open space in three axes. A variation of this would work well with movement in space, where gravity has no effect on the movement.
For each of the movement types discussed, I categorized them into three different buckets: controller movement (ex. waving the controllers around), controller input (ex. pressing buttons), and/or headset movement. Some aspects of one mechanic could be combined with another to create a new type of movement. I hope this could be a starting point for developers to implement a VR movement mechanic that better fits their desired VR experience.
[Table 1. Rank of intuitiveness, motion sickness, and exhaustion. Exhaustion is ranked by how tired I was after using the control for 10 minutes. Intuitiveness considers how similar to real controls/movement the VR controls are and how easy the controls would be to learn with no tutorials. Motion Sickness is ranked by how motion sick I got moving around with the control method for 10 minutes. Ranking is subjective to my experiences.]
The table above provides a summary of my experience using each movement, ranking them by how intuitive, how physically tiring, and how motion sickness inducing the experience is. Generally, I found out that the faster the player moves or turns, the more dizzying the experience became. However, there were ways that greatly reduced motion sickness. Having a movement that matches the physical input, like leaning slightly or moving arms, or methods that aligned the direction of looking to forward movement helped with the motion sickness. For the movements that require some sort of flying above the scene, being higher up alleviated it as well.
The scripts are available on our Github page, which you can check out here. In the main scene, there are various scripts attached to the XR Origin in the hierarchy, which you can toggle one by one to test them out. The instructions and the demo is in the video below.