Movement

It is best, but not always possible, either due to the distances or the type of HMD used, that the user be in control of movement with a 1 to 1 ratio. That is, if a user walks 1 m, then the world moves with them 1 m. There are situations where this is not exactly possible; a game on a very macro scale where you control planets and stars would not be enjoyable or practical with 1 to 1 moments. The same is true for a game on a micro level, where you need to protect blood cells and destroy cancer cells as you fly though a human body. The movement should at the very least be consistent and relative to the size of the player in their world.

Rapidly moving can quickly create a mismatch between what your eyes are telling you (visual) and what your body is telling you (vestibular and proprioceptive). This mismatch can quickly create motion sickness. Motion sickness is an important design consideration as it doesn't just make a user sick in the short term. The effects can last for hours and the user may have an aversion to your content (or any VR/AR experience) in the future.

It is best to keep the movement slow, steady, and predictable. If large areas need to be traversed quickly, move the user there instantaneously and fade to black in between the old location and the new location. This teleportation is the most common form of movement for large distances currently in use. Often the distance the user can move is restricted, not for technical reasons, but to give the user more control and greater accuracy, ensuring that they will move where they are expected to move. Often this distance is represented with an arc, not unlike the user tossing a marker of where they wanted to move to. You can get away with fast movements in your design, if they still enable the player to be in control: a cockpit in a spacecraft, for example.

Make sure that the user maintains control of camera movement. Do not use camera shake as you would in a traditional, non-VR game to add to the illusion of movement, and provide feedback that damage is being taken or the character is waking from a dream. When you take the camera control away from the user, you are dramatically increasing the likelihood that the user will suffer motion sickness. Always keep head tracking enabled once the user begins their VR experience. Don't turn off head tracking, to enable a more traditional gamepad or mouse/keyboard movement scheme. The user will become disorientated.

There is nothing to prevent the player from clipping through the geometry. Regular game collision will not work as the user can keep moving through any object (wall, car, couch, table) that they can reach. However users, especially new users, are very reluctant to move inside of an object that seems to be real, to be solid, even if it is just in VR.

Latency must be optimized. Even slight pauses in rendering can lead to motion sickness. Frame rates should be at 90 FPS for positional tracking (Vive, Rift, PSVR) and 60 FPS for rotational tracking (phone-based systems).

If the user is in a system that does not track them positionally (Cardboard, Gear, Daydream), it is best if they are seated before the experience begins. This will help reconcile the visual cues and vestibular cues. As a bonus, if the chair can spin, it will enhance the experience, and encourage the user to look all the way around.

If the user is near a very large object (iceberg, ship, whale,) that is moving, they may believe they are the one that is moving. Providing sufficient visual cues to drive home the fact that the large object is moving and not the player is key for ensuring that the player does not get motion sickness.