🥽 Oculus Development Tips

Updated at 2015-01-17 11:55
  • Use Oculus VR distortion shaders.
  • Always allow head motion control. In menus, cut scenes, everywhere.
  • Images presented to each eye should only differ only in terms of viewport.
  • Your program should run at a frame rate greater than the Rift display refresh rate, v-synced and unbuffered.
  • Keep game loop latency consistent.
  • Avoid rotating the horizon line of the user's environment which would conflict with the user's real-world self-motion.
  • Avoid disabling positional tracking.
  • Users can move their viewport position slightly, mind the surface culling.
  • Warn the user when they are close to moving out of positional tracking area.
  • Real world movements speeds feel most comfortable, between 1.4 m/s and 3 m/s.
  • Give visual indication on teleportation.
  • Avoid zoom effects.
  • Avoid head bobbing.
  • Allow settings to adjust the intensity of the visual experience on-the-fly.
  • Oculus depth perception is sensitive up close but quickly diminishes. Increasing the distance between eye cameras can increase depth perception but might cause discomfort.
  • Use lightning, textures and parallax to increase feeling of depth.
  • UIs should be part of the virtual world and 2-3 meters away from the viewer.
  • Allow viewing UI in the middle of the screen using your head movement, eye movement is straining.
  • Draw all cursors and crosshairs at the same depth as the targeted object.
  • Produce audio always in 3D world.
  • In Unity, one unit is one meter.
  • Most objects are comfortable to view between 0.75m and 3.5m.
  • Prefer player having in-game avatar, but mind how the real-world and virtual world gestures contradict e.g. sitting or running.
  • Minimize need of strafing, back-stepping and spinning.
  • Keep in mind that player could watch in any direction in any given moment.
  • Prefer "tank mode" where your avatar movement direction is not affected by where your avatar is looking.


  • Oculus, Best Practices Guide