• Erik Luo

Methods of creating 3D locomotion in VR without motion sickness

Updated: Feb 13


During the prototyping of Project Freedom and learning from existing games I developed this method for making locomotion system that doesn't cause motion sickness.

(Locomotion in Project Freedom)


The cause for motion sickness in VR is the dissonance between the perceived motion, the actual motion, and the physical motion of the player.


Perceived motion is how the player think they are going to move. Actual motion is the in-game player character movement. Physical motion is the player’s body movement.

As an example, ever since when I was young I get car sick easily. Over the years I realized a few things that helped me understand why I was getting sick. I will only get sick if I'm not looking at the direction we are moving and can't expect when the car is going to turn, when my perceived motion is different than the actual motion. However when I drive I never get sick because I can see where I'm going and I have full control over my motion. Through prototyping, I realized is best to have a method that give the player full control over their motion both in terms of velocity and acceleration while at the same time make the input physical so it is easier to learn.


Five methods that solved the problem in different ways: (You can combine these methods)


1. Making the locomotion system functional and logical so the player can understand and control their movement in terms of both direction and speed. (This is the best method in my experience)

Any form of propulsion system can be used in VR if the motion of the system can be experienced through the controller used by the player. The design of the controller plays a significant role in how the locomotion should be designed. For example, the HTC VIVE controller is less immersive to play for Project Freedom because of the absence of the hand trigger. Since the boost come from your palm, the hand trigger is a very intuitive button to activate this function.

Examples:

Sprint Vector: The propulsion system Sprint Vector used is very much like skiing, pushing your self forward by pushing your hands downward. You control your speed by pushing downward faster. (This method only moves well as a forward motion method. Turning and stopping is challenging to do and it is tasking to play physically)

Echo Arena: Pushing yourself forward in zero gravity. You control your speed by pushing yourself harder away from where you were grabbing. (Because you need to grab things to move, so you can’t change direction or speed easily mid-flight)

Project Freedom: Boosting yourself towards the opposite direction of your palm as if there is a booster on your hand. The angle of your palm controls the direction, and the speed is controlled by the amount of force you are applying to yourself. If you continue to boost, there will be a constant acceleration applied. You can slow down by applying an opposite force to your current direction, or let gravity apply that force for you if you are moving upwards. Giving the player control over their acceleration is extremely important.



2. Eliminate the sense of speed, so the player only has a sense of direction.

The sense of speed is caused by the sense of objects moving towards us. This sense is the strongest when you can see objects passing by through the side of your vision direction. (Seeing things at the edge of your eye vision) We can only feel speed when our vision can make a comparison between the current movement and other moving/stationary objects. If the momentum system in a VR game is not consistent and changes dramatically, the player will get sick because their perceived motion is different from their physical motion. Most VR driving games face this problem. (This method is only needed when the player can’t fully control/understand their direction or speed)

Examples:

Wipeout: Omega Collection: Wipeout: Omega Collection: The cockpit of the ships has their side view blocked, so your field of view is limited, because you can’t see things from the edge of your eyes, you can’t feel the dramatic change in speed. The sense of speed is reduced to a comfortable rate.

Skyrim VR: FOV filter that blocks the side view when you move or turn. (This is also an example of how 2D movement is harder to do in VR because moving with a stick doesn’t make sense to our brain and the change in speed is very dramatic. You stop right away when you let go of the stick, which is not how we are used to move in real life)

All teleportation systems also use this method.



3. Show the player where they are going before they get there.

If you show the player where they are going before they get there, and you are moving at a constant or logical speed, the player can understand and expect their next motion, preventing motion sickness.

Examples:

All roller coaster VR games.

Thumper: Thumper is a great example of this. You can see your direction right before you get there, and you can control your speed by successfully executing the gameplay mechanic. This way you don’t need to limit the player’s field of view and their sense of speed. The simple visual also plays a significant role in this game, you only see things in front of you, and there is minimal side view movement.



4. Controlled acceleration or consistent speed

The change in speed must be known to the player or controlled by them.

The best way to let the player understand how fast they will move is to make sure they change in speed is constant. Meaning the process of speeding up or slowing down cannot be instant; there must be a period where the feeling of friction or gravity is in work. As long as the acceleration and deceleration take place, no matter how fast the player is moving, they won’t get sick. Also, by giving the player control over how fast they can go and accelerate, they will have a greater understanding of their speed, reducing their motion sickness.

Examples:

Thumper & Sprint Vector: They both gave the player control on their speed and acceleration.

Project Freedom: The boost uses a constant force, making it easier to control.



5. Control must be simple and intuitive

The complexity in control can increase the difficulty in learning the locomotion system causing them to move in ways they don’t understand thus creating motion sickness.

Good locomotion system must use as little inputs as possible to make the game more accessible. Use the physicality of VR to its advantage.

An example of overly complex locomotion system:

Echo Arena: The locomotion system in this game is very complicated. You have two directional inputs, a physical movement system, and a brake system. This system makes the game very hard to play and learn, as the number of mechanics the player needs to master and learn is overwhelming.

Project Freedom: In Project Freedom, you can use one button to move to any direction at any speed. Using both controllers gives you the ability to have more complex motion control since you can be accelerating and decelerating at the same time while applying forces in two different directions. This simple system made it easy for people to pick up and learn the game in seconds. One of the first things I’ve seen people do in playtesting is when they first get into the game, they immediately started flying around and hovering. Instead of going to the next area, they will stay in the beginning area and fly from one side to the other repeatedly. They will try to go fast and then quickly decelerate. Flying is really fun in VR.




The goal is to let the player understand and have control over exactly how they are going to move, so there is no dissonance between the perceived motion, actual motion, and physical motion.



As a human being, we have always been moving with full control over our direction and speed. The reason why walking or running doesn’t cause motion sickness is that we have complete control over how we walk. We completely control our movement in 3D space, and we know the exact cause of our movement before we move. If I jump, I will fall. If I run towards a direction, I will need about the same amount of force to stop myself. I think this is why many locomotion systems or even locomotion controllers don’t work because we can’t understand how we can move forward in a physical space just by pushing the joystick forward. In traditional games, we do not need to understand our motion because we are not the character and we are not moving. However, in VR, the player will always have a first-person presence and will need to understand their motion. Joysticks were designed to move game characters 2-dimensionally in 3D space because the 3-dimensional movement is really difficult to experience through a screen. In VR, however, the 3-dimensional movement is almost natural because we can perceive things in true 3D. We need to design a new control type that is focused on 3-dimensional movements the same as we created the joystick for 3D games on a 2D surface.




Other problems:


Rotation

Although the locomotion system in Project Freedom solves many problems, the rotation in VR is still a problem I’m trying to solve. Physical rotation is good and won’t cause any sickness because it makes sense to the player, but virtual rotations are very disorienting and difficult to do. The good news is that I find the cause of motion sickness through rotation is very similar to the cause of motion sickness in movement, it is the dissonance between the perceived rotation and the actual rotation. The bad news is that the change in direction/speed (momentum) is often in conflict with the change in rotation. If you give the control for both systems to the player, they will get sick by trying to change them both at the same time. The reason why virtual rotation is needed in current VR design is due to the limitation of the hardware. The tracking and wire for all current headsets cause people not wanting to rotate physically. However, with the release of Oculus Quest, this problem could be reduced due to better tracking, and wireless. Since we still need to develop for both PC and mobile headsets, the virtual rotation is still a problem that we need to solve.

There are currently two main types of virtual rotation systems: Snap rotation and smooth rotation.

Snap rotation won’t cause any sickness, but it destroys the player’s sense of space at every use especially when the movement is fast. The player will feel like they are teleporting because of the space between the snap.

The smooth rotation will always cause the player to get sick and should be avoided altogether. The reason for the sickness is because we cannot know precisely how much we will rotate every time we move the joystick. Is very hard to rotate with the joystick even in traditional games for those who have never played video games before. Which is also why I think we either develop the hardware so that we never need virtual rotations or design a new type of controller that can support rotation for 3D movement.

However, if we want to create a good rotation system within the current limitation, we need to use the same methods as the movement system. Creating something that’s functional and makes logical sense to the player so that their perceived motion is the same as their actual motion.


Update:

I solved this problem using the same design method for the locomotion system.

The new methods I design are called Head Tilt Rotation and Stick Tilt Rotation.

I realized one of the main reason most smooth rotation method doesn't work is that the speed of rotation doesn't have acceleration and deceleration time, thus creating dissonance between the perceived rotation and actual rotation. Also, the physical movement of most current rotation method uses the thumbstick which is not the most natural way to rotate in real life.


Here are the new methods:


Head Tilt Rotation:

Rotate by tilting your head to the direction that you want to rotate.

This method is easy to understand and doesn't require any button input.

The degree of your head tilt determines the acceleration of the rotation. This mechanic gives the control of speed and acceleration of the rotation to the player.

The rotation only starts when you head rotate beyond 15 degrees towards the direction you want to turn to (Left or right). This limitation eliminates unintentional rotation.


Stick Tilt Rotation:

Rotate by tilting the right thumbstick to the direction that you want to rotate.

The difference between this and normal smooth rotation is that the rotation for this method has an acceleration and deceleration time.

This method is less comfortable than head tilt, but it is faster to use — an option for those with a high tolerance of motion sickness.



Level design:

After I designed the locomotion system for Project Freedom, I started trying to make levels that use this system. I realized that the 3-dimensional free movement requires an entirely different design philosophy. Most traditional games design their levels on a 2-dimensional plane because the player character can only move in two dimensions and they use an extra button to jump. Of course, some games have 3-dimensional movement, but their designs are mostly within the limitation of the camera and lots use of UI to give direction. However, in VR you can see all around you, and you do not need to turn your camera to shoot or fly towards a direction. The use of UI should also be limited if not completely avoided. These problems make designing level very difficult and require a new set of rules to be created. I did not want to create any limitation in terms of the locomotion systems themselves, because flying is the most fun part of the game. Most flying games have a limitation in terms of how far and how long you can fly. That’s okay because when you are flying on a screen, your experience of flying is very limited. However, in VR when you are flying, you really do feel like you are flying. I didn’t want to take that experience away from the player. You can fly as fast and as far as you wish. Which creates a whole array of problems to solve in terms of level design. If the player can go anywhere in all three dimensions, we are going to need limitations in all three dimensions. Resulting in a very closed area without a sky, since the player can just fly away from everything. Also, the levels need to be designed for movements on all three dimensions, and verticality is very important. These are problems I’m still solving.


VR tiredness:

There is a max limit to how long a person can play in VR. For me, after about 3 hours I will get tired and want to stop. As to the exact reason or cause for this, I do not know. However, this is very important to keep in mind when designing; the player should be able to play for a short amount of time and have a sense of progress. This design choice is one of the reasons why Beat Saber and Superhot are huge hits because they can be played in a short period and enjoyed. I also realized that the more I played VR, the longer I can stay in VR. Is like my brain and body is getting used to it more and more. Currently, VR’s playtime is in between console/PC and mobile. I can’t play for more than three hours, but I will always play for at least 30 minutes to one hour. With the release of the Quest, it will be much easier to play VR, whether that will increase or decrease the playtime for people is still yet to be seen.



Conclusion:

There are still many different locomotion systems that are unexplored and waiting to be discovered. It is an exciting time for VR development.


Overview:

The cause for motion sickness in VR is the dissonance between the perceived motion, the actual motion, and the physical motion of the player.


Five methods:

1. Making the locomotion system functional and logical so the player can understand and control their movement in terms of both direction and speed. (This is the best method in my experience)

2. Eliminate the sense of speed, so the player only has a sense of direction.

3. Show the player where they are going before they get there.

4. Controlled and consistent speed

5. Control must be simple and intuitive

Erik Luo

Game Designer

VR/MR Developer

Contact

Follow

©2017 BY ERIK LUO.