The Masked Dimension

Full-scale VR Escape Room
Full demo of the escape room, recorded at WPI in 2019
  • Platform: Windows
  • Tools: Unity 3D, C#, HTC Vive
  • Duration: Summer 2018
  • Role: Solo programmer

Main Tasks

  • Developed a flexible, event-driven puzzle framework
  • Prioritized VR-specific, "natural" interactions for game mechanics (grabbing, pulling, swapping masks)
  • Ran playtesting sessions to find bugs and puzzle design oversights


  • Classic escape room in VR, with effects not possible in real life
  • Use enchanted masks to collect objects and solve puzzles
  • Physically interact with cabinets, bookshelves, and more in the search for clues


The Masked Dimension is a VR escape room I created during the summer of 2018, for an internship with Castle Steps (a small game studio based in Santa Monica, CA, that made multiplayer games for VR arcades). As part of the internship, I was given complete freedom in terms of what I worked on. This included making use of Castle Steps' own testing setup: 600 ft² of empty floor space, fully monitored by HTC Vive trackers, with a set of backpack-mounted PCs for untethered VR gameplay.
To take advantage of this, I decided to create a virtual escape room; while players usually do have enough space in VR to move their arms and grab things as they would in a physical escape room, most cannot dedicate enough floor space to emulate the space of a full room. As a result, developers of VR experiences must choose between making rooms small enough for players to walk around in, and adding a teleporter tool while keeping the space large. With the free-roam setup, however, I did have plenty of space available - and thus could make the room large enough to actually walk across.


While many of the issues I faced in development were related to puzzle design, the ones that stumped me most had to do with the VR platform - most notably, striking a balance between believable physical interactions (like burning wood or opening a drawer) and making sure the player couldn't find clues early, break physical joints, or make the room unsolvable.
I spent many hours fine tuning physics settings before conceding - and realized that although the physics math will always be beyond my control, I can guide the player away from destructive interactions in the first place. This set of fixes - for example, limiting forces from the player's hand, keeping loose items in large containers, and making objects that haven't been unlocked yet invisible - proved to be much easier to implement, and didn't upset or confuse players in the slightest.
Now, whenever I design a system, I still try to follow the same principle; it's easy to confuse chaos for complexity, but it is usually possible to reduce the amount of uncontrolled calculations without reducing the system's appeal.