Teleportation and Locomotion System Design in VR

Our video game development company runs independent projects, jointly creates games with the client and provides additional operational services. Expertise of our team allows us to cover all gaming platforms and develop an amazing product that matches the customer’s vision and players preferences.
Showing 1 of 1 servicesAll 242 services
Teleportation and Locomotion System Design in VR
Complex
~1-2 weeks
FAQ
Our competencies
What are the stages of Game Development?
Latest works
  • image_games_mortal_motors_495_0.webp
    Game development for Mortal Motors
    663
  • image_games_a_turnbased_strategy_game_set_in_a_fantasy_setting_with_fire_and_sword_603_0.webp
    A turn-based strategy game set in a fantasy setting, With Fire and Sword
    859
  • image_games_second_team_604_0.webp
    Game development for the company Second term
    490
  • image_games_phoenix_ii_606_0.webp
    3D animation - teaser for the game Phoenix 2.
    533

Design of Teleportation and Locomotion System in VR

Movement in VR — not gameplay detail. It's main reason players abandon VR games in first 20 minutes or return daily. Incorrectly implemented locomotion — direct path to motion sickness. Correct — transparent system player stops noticing in minutes.

Physics of discomfort: why smooth movement makes sick

Motion sickness in VR arises from vection — motion illusion without real movement. Visual system tells brain "we move", vestibular apparatus — "we stand", conflict causes nausea in 40–60% audience at first experience.

Smooth movement through stick — maximum vection trigger. Doesn't mean can't use. Means must implement mitigation mechanics.

Main — locomotion vignette. During movement peripheral vision (beyond 40–50° from center) darkens through tinted overlay. Brain perceives movement only through central zone, reducing vection. In Unity realize through post-processing Vignette effect with dynamic intensity linked to movement speed via RTPC, or specialized component — TunnelingVignette in XRIT 3.x.

Vignette parameters for starter setup: easeInTime = 0.15 s, easeOutTime = 0.3 s, featheringEffect = 0.3, vignetteIntensity = 0.6. All should be in Comfort Settings — different players different sensitivity.

Teleportation: not just "move position"

Teleportation seems simple: press button, select point, move. Actually several details separate "works" from "works well".

Arc visualization — parabola from controller to teleport point. In XRIT realized through XRRayInteractor in Projectile Curve mode + TeleportationProvider. Parabola parameters: velocity = 8–12 (less — arc too steep, more — too shallow), acceleration = -9.8 (gravity). Landing point determined through raycast against Teleportation Area/Anchor colliders with Layer Mask only Teleportation layer.

Teleport point validity. Can't teleport to air, wall, NavMesh-inaccessible zone. TeleportationArea only checks collider, not NavMesh. For NavMesh check — custom TeleportationArea with override ValidateTeleportation calling NavMesh.SamplePosition at landing point.

Post-teleportation orientation. Simple: keep current orientation. Better: let player indicate gaze direction after teleport through stick rotation while holding button. TeleportationProvider supports MatchOrientation = TargetUpAndForward — XR Origin rotates so player after teleport looks in indicated direction.

Transition animation. Instant teleport — jarring. Fade to black + fade in 0.2–0.3 s — doesn't delay player, removes camera "jump". Realization: ScreenFadeProvider in Locomotion System intercepts TeleportationProvider.teleportRequest and adds fade through coroutine before actual XR Origin move.

Hybrid system: when both types needed

Most modern VR games use both locomotion types and give player choice in settings. XRIT Locomotion System supports this: one LocomotionSystem can have multiple LocomotionProvider registered simultaneously.

Important nuance: ContinuousMoveProvider and TeleportationProvider can conflict on simultaneous input. LocomotionSystem has exclusivityMode — when one provider active, others blocked. Correct behavior, but ensure priorities right: teleportation should have priority over smooth movement.

Snap Turn vs Smooth Turn

Snap Turn — instant rotation by fixed angle (usually 30°, 45° or 60°). No continuous rotation discomfort. Realized through SnapTurnProvider. Settings: turnAmount = 45°, debounceTime = 0.2 s (not rotate too fast on stick hold).

Smooth Turn — continuous rotation through ContinuousTurnProvider. Less discomfort than smooth forward movement, but uncomfortable for part of audience. Maximum comfortable rotation speed: 60–90°/s.

For combat games needing quick orientation — hybrid: snap turn small angle (22.5° or 30°) allows quick turning without discomfort.

System Timeline
Basic teleportation (XRIT out of box) 3–5 days
Teleportation + smooth + snap + settings 1–2 weeks
Custom system with NavMesh + transition + vignette 2–4 weeks
Full locomotion system with comfort profiles 3–5 weeks

Cost calculated after gameplay requirements and target platforms analysis.