About This Book

This book began as a collection of notes I took during my journey as a virtual reality (VR) developer. When I got my first VR headset in 2020, I quickly noticed a pattern: while most VR applications and games shared a common set of fundamental features, there was little standardization in how these features were implemented.

Now, in 2025, the situation has improved—though only slightly. When you download a VR game from your favorite app store, there’s still a good chance that something will feel off the moment you launch it. That something might be:

  • You spawn outside the center of the scene, but your physical space limits your movement.
  • Your view is stuck at ground level.
  • You start the game facing the title screen backward.
  • Grabbing objects feels unintuitive, making it difficult to release them without nearly dropping your controllers.
  • Throwing items feels unnatural, and objects never land where you expect.
  • The locomotion system is either nauseating or frustratingly difficult to learn.
  • You reach for an item on your waist, only to have your view blocked by your own virtual chest.
  • The menu uses a laser pointer system that doesn’t work properly because it’s too far away, causing small hand movements to translate into exaggerated cursor shifts.

And the list goes on…

This doesn’t mean most VR developers lack skill—it simply highlights that VR development is still in its early stages. Unlike desktop or mobile applications, which benefit from decades of established design conventions, VR lacks a widely accepted set of best practices. As a result, developers sometimes overlook details that will likely become common sense in the years to come.


What About the “Toolkits”?

In this book, I aim to explore every feature I consider fundamental to VR applications. By explore, I mean discussing various approaches and implementing them manually.

You might be wondering: Aren’t there already existing toolkits—such as Auto Hand, VR Interaction Framework, and Unity’s XR Interaction Toolkit—that provide most of these features? Is there really a point in reinventing the wheel?1

The answer is yes—they do provide solutions, but understanding and implementing the core features of VR development is still worthwhile.

Each of these frameworks represents a complete system designed by its authors. If you jump straight into using one for a project, you’ll quickly realize:

  • Learning to use any framework requires time and effort.
  • The expertise you develop in one framework doesn’t transfer easily to another.
  • These frameworks are designed for production, not education. While they allow for rapid prototyping, your project may still suffer from the issues mentioned earlier—either because the framework doesn’t handle them properly or because you’re unknowingly misusing it. Without understanding the underlying concepts, you won’t know how to fix these problems or even recognize them in the first place.
  • If something doesn’t work as expected, modifying or extending the framework requires in-depth knowledge of the relevant concepts.

Now, I don’t claim that this book has the rigor of a formal university course, nor do I offer definitive solutions for every challenge in VR development. However, I will discuss both widely accepted approaches and my personal preferences. By the end of this book, you should feel confident in your ability to:

  • Recognize the hardware limitations of VR development and their possible workarounds.
  • Pick up any existing VR framework, use and extend it.
  • Start a VR project from scratch without relying on a toolkit.

A Non-Tutorial Approach

As the name VR101 suggests, this book is structured more like a university course than a step-by-step tutorial.

This means you shouldn’t approach it as a traditional tutorial series. While you can follow along and implement the examples line by line—since all code snippets are commented and explained—that’s not the primary goal. The real value lies in the discussions: the thought process behind design decisions and the reasoning that informs them.

To get the most out of this book, I recommend:

  • Engaging with the discussions – Focus on understanding the rationale behind each design choice. Think critically about how you might refine or expand upon these ideas.
  • Coding as an exercise – Implement the features yourself if you have the required coding skills. After completing a chapter or topic, compare your approach with my examples. If you’re more of a designer than a programmer, feel free to skip the coding sections.

Prerequisites

Required for everyone:

  • Familiarity with modern VR hardware and VR applications.

If you plan to code the exercises:

  • Basic knowledge of Unity Engine and C#.
  • A modern VR headset with two motion controllers.
    • Meta Quest 2 or Quest 3 are preferred2.
    • SteamVR headsets (Vive, Valve Index, etc.) should also work.
    • WMR or other headsets may also work as long as your version of Unity Engine supports their runtime.

Next: 0.01 – VR In 2025

Table Of Contents

Leave a Reply

Your email address will not be published. Required fields are marked *