vr-ar

VR/AR development principles. Comfort, interaction, performance requirements.

$ Install

git clone https://github.com/xenitV1/claude-code-maestro /tmp/claude-code-maestro && cp -r /tmp/claude-code-maestro/skills/game-development/vr-ar ~/.claude/skills/claude-code-maestro

// tip: Run this command in your terminal to install the skill


name: vr-ar description: VR/AR development principles. Comfort, interaction, performance requirements.

VR/AR Development

Immersive experience principles.


1. Platform Selection

VR Platforms

PlatformUse Case
QuestStandalone, wireless
PCVRHigh fidelity
PSVRConsole market
WebXRBrowser-based

AR Platforms

PlatformUse Case
ARKitiOS devices
ARCoreAndroid devices
WebXRBrowser AR
HoloLensEnterprise

2. Comfort Principles

Motion Sickness Prevention

CauseSolution
LocomotionTeleport, snap turn
Low FPSMaintain 90 FPS
Camera shakeAvoid or minimize
Rapid accelerationGradual movement

Comfort Settings

  • Vignette during movement
  • Snap vs smooth turning
  • Seated vs standing modes
  • Height calibration

3. Performance Requirements

Target Metrics

PlatformFPSResolution
Quest 272-901832x1920
Quest 390-1202064x2208
PCVR902160x2160+
PSVR290-1202000x2040

Frame Budget

  • VR requires consistent frame times
  • Single dropped frame = visible judder
  • 90 FPS = 11.11ms budget

4. Interaction Principles

Controller Interaction

TypeUse
Point + clickUI, distant objects
GrabManipulation
GestureMagic, special actions
PhysicalThrowing, swinging

Hand Tracking

  • More immersive but less precise
  • Good for: social, casual
  • Challenging for: action, precision

5. Spatial Design

World Scale

  • 1 unit = 1 meter (critical)
  • Objects must feel right size
  • Test with real measurements

Depth Cues

CueImportance
StereoPrimary depth
Motion parallaxSecondary
ShadowsGrounding
OcclusionLayering

6. Anti-Patterns

โŒ Don'tโœ… Do
Move camera without playerPlayer controls camera
Drop below 90 FPSMaintain frame rate
Use tiny UI textLarge, readable text
Ignore arm lengthScale to player reach

Remember: Comfort is not optional. Sick players don't play.