Making multiplayer VR experience
Development of a multiplayer VR escape room: Dark Side of Anubis
Dark Side of the Anubis is a VR experience, where up to five people can walk through a pyramid's dungeon and explore its secrets. The playfield is taking place in 10x6m and 8x2m room, where the virtual walls and some props are there in the real world.
For the free movement, the VR headsets are connected to the computer that is placed in the backpack, so the players can take it with them. Limbs are tracked with additional trackers paired with the same backpack that belongs to the player's VR headset.
The hardware was HTC Vive Pro for the VR headsets, HTC Vive trackers, and Zotac VR GO 2.0 for backpacks.
Our job in this project was these:
- Create the server and the client application in Unity engine with SteamVR
- There are multiple servers and up to five clients can connect to each
- There are two rooms with full cover between, the clients can move from one to another without losing tracking (the multiroom setup officially is not supported, so we had to found a workaround)
- The clients on the same server exist in the same virtual world where they can see and interact with each other
- About half time the second team should go inside the play area and they must not meet the previous team
- The experience length should be no longer than 15 minutes
The First Vive Tracking tests were fun and promising
While the game designer planned the levels and timings, we are started making POCs and test the devices. With two-player, the full-body tracking was done fast, but turned out, that the trackers are not as stable as we need without cables. Four or five trackers wirelessly in one space around 40% battery easily drop tracking and without the cable sometimes they are not willing to start operating. With two players the whole thing was a mess, full of unpredictable and weird misbehaviors. Because of this, the maintainability would be difficult, so we had to plug the hand trackers into the backpacks and remove the trackers from the legs entirely (the movement of the legs was solved by scripting).
The supply of accessories also wasn't barrier-free, so we had to be creative. We used jar rubbers instead of TrackStraps.
Operation jar rubber initiated :)
The multiplayer part was flawless at first in the office (at this time we could test the system only with two equipment because we didn't have more). Firstly we started to test Vive's boundaries in different environments and setups. In the office's courtyard, using cars as base station mounts. In outdoor, we managed to create a 45m long and 2m wide lane fully tracked with four base station, and figured out that one base station's tracking ends 6.95m straight ahead.
In outdoor sometimes having electricity is not self-evident :)
Despite the tracker problems, it turned out that these devices fortunately hardly lost track even if they are haven't seen by any base station. The headset also needs a few secs to realize that it's not in the trackable area.
At the scene we had some network communication problems, the provided router wasn't good enough, so the first real testing failed. At that point came to light that there will be a lot of struggle with the logistics. The backpacks, VR devices, trackers, cables and developer equipment is a lot of stuff.
The next big task was to figure out, how we place the base stations, so in the next post I will talk about that sometimes less is more.
See you next time.
Base station placement testing