VR/AR Development
Immersive experience principles.
1. Platform Selection
VR Platforms
| Platform | Use Case | |----------|----------| | Quest | Standalone, wireless | | PCVR | High fidelity | | PSVR | Console market | | WebXR | Browser-based |
AR Platforms
| Platform | Use Case | |----------|----------| | ARKit | iOS devices | | ARCore | Android devices | | WebXR | Browser AR | | HoloLens | Enterprise |
2. Comfort Principles
Motion Sickness Prevention
| Cause | Solution | |-------|----------| | Locomotion | Teleport, snap turn | | Low FPS | Maintain 90 FPS | | Camera shake | Avoid or minimize | | Rapid acceleration | Gradual movement |
Comfort Settings
- Vignette during movement
- Snap vs smooth turning
- Seated vs standing modes
- Height calibration
3. Performance Requirements
Target Metrics
| Platform | FPS | Resolution | |----------|-----|------------| | Quest 2 | 72-90 | 1832x1920 | | Quest 3 | 90-120 | 2064x2208 | | PCVR | 90 | 2160x2160+ | | PSVR2 | 90-120 | 2000x2040 |
Frame Budget
- VR requires consistent frame times
- Single dropped frame = visible judder
- 90 FPS = 11.11ms budget
4. Interaction Principles
Controller Interaction
| Type | Use | |------|-----| | Point + click | UI, distant objects | | Grab | Manipulation | | Gesture | Magic, special actions | | Physical | Throwing, 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
| Cue | Importance | |-----|------------| | Stereo | Primary depth | | Motion parallax | Secondary | | Shadows | Grounding | | Occlusion | Layering |
6. Anti-Patterns
| ❌ Don't | ✅ Do | |----------|-------| | Move camera without player | Player controls camera | | Drop below 90 FPS | Maintain frame rate | | Use tiny UI text | Large, readable text | | Ignore arm length | Scale to player reach |
Remember: Comfort is not optional. Sick players don't play.