Outside-Inside-Out: Using Oculus Rift S for Location-Based VR
When Lenovo-Israel got on-board as the main sponsor of AaronMan, it wasn't clear what VR headset would be used for it. Their main goal with the sponsorship was to promote their gaming PC brand - the Legion series. So we were sure to use these PCs, but other than that they didn't have an agenda for VR. Our code base at the time (March) supported Oculus and Vive, both unrelated to Lenovo. We suggested the idea to use their Windows-Mixed-Reality headset, the Lenovo-Explorer, since it was nicely branded. A final decision wasn't made yet, but we wanted to be ready for any scenario, and added support for WMR (more on that in a future post...).
What we didn't expect was that when the time came to order the equipment, Explorers were on their way out of circulation. Single units could be bought from certain vendors, but it wasn't enough. Eventually, Lenovo offered to order the brand-new Rift-S a model they had partnered with Oculus to create. We were super exited to have the most advanced PC-based VR running our game, less than a month after its world-wide release. But also - time was running out. Even though THEORETICALLY no programming was required to adapt the game from the previous Oculus, we weren't keen to take the risk. Everything HAD to work perfectly by the time the movie and the game premiered. No reviews on the Rift-S were published yet, and ordering to Israel meant waiting a couple of weeks before we got it. We took that bet, and committed to ourselves and to our partners to do whatever needed to deliver on time.
The headsets arrived at our studio just a week before launching the game. We ran tests. Our game worked. WHEW! What a relieve.......
However - with a location based games - things don't end there. Testing in the studio guarantees there are no bugs with your code, not that the end user gets a good experience. So the time remaining was spent optimizing the use of the Rift-S in the cinema, which proved to be a challenging location for inside-out tracking. The differences from the previous Rift made us re-consider several elements planned for the physical location.
We concentrated our insights on this model, and what we think should be taken into account when putting it in a location based attraction. Most of the ideas are applicable to other inside-out tracking headsets such as the Oculus Quest and Windows Mixed Reality. Here they are:
1. Less cables & no sensor = faster set-up. This made it easier to move the whole VR station around the cinema to accommodate its needs (events, opening hours, premieres and such...)
2. Without external sensors we could have a much more compact stand - all the equipment nicely fits into a cube-shaped pole in the middle, and 4 players can play around it. No need to hang anything from the ceiling, or add poles and walls on the edges of our area. This too brought down the costs of assembling everything.
2. In the cinemas the game is being presented, there are huge LED screens around the VR station. They are bright, and play videos that aren't stable, Tracking was very poor when facing them. On the other hand, when you have no external sensors, you can experiment very easily with the orientation of the play area. So the solution is to manually move between each position, find the direction where the LED screens disturb the least, and set it as the front-facing direction. Worked like magic.
3. The arrangement of the space around the VR area changed frequently, with movie promotional material, huge pop-up statues etc. being swapped and moved around, the Oculus Play Area had to be redefined pretty often. Sometimes every couple of hours. This slows us down. Instead of helping players in and out of VR, the cinema worker has to go through defining floor level, front direction, and the guardian system. We REALLY wish there was a way to ignore the Oculus saved Play Areas, and just use relative movement from tracking. Our game overrides the Oculus settings anyway and uses its own and boundaries and orientation that are aligned with the physical space. So This delay feels very redundant.
4. The VR operators at the sites have to deal with frequent Oculus software updates, probably because the model is still very new. This, in addition to handling the Play Area definition, and sometime solve tracking problems, amounts to a pretty demanding job. We learned that you must find good people to work with the equipment and customers, and to take the time to train them.
5. With the new design of the touch controllers it's a little harder to distinguish the left and right controllers. We didn't want customers to start the game with mixed controllers, and we wanted the operator to detect which is which as fast as possible. Our very simple and low-tech solution to this: stickers on the physical controllers, labels on the virtual controllers that are present in the game lobby.
6. The built in speakers did't work at all in a public space. It's summer break, there are a lot of families, kids, music, events. We added massive soundproof gaming headphones. They don't fit very well on top of the Rift-S, but the audio quality is amazing. It's the best we could do in the time we had.
7. The resolution jump in the display of the Rift-S made some of our lower-res texture appear a bit pixelated, so we changed them to a higher res version. There was no performance concern doing that cause we run on very powerful PCs. Perhaps with the Quest it's more of a struggle (we're curious to find out). That was the only change we made in the game itself when upgrading to Rift S.
So to sum things up - we're very happy with the Rift S. It gave us an advantage over other location based VR, which used an older generations with lower res displays. Also, and correct me if I'm wrong, AharonMan might be the first location-based experience to use this generation of headsets worldwide. I couldn't find other examples when working to adapt to this model, and also when preparing this blog post. We know that Oculus is designing hardware with emphasis on home entertainment, but they still make quality products at a reasonable price, and with a few small tweaks, you can use them in any location-based scenario.
Hopefully, sharing these conclusions will help other developers working on location based games, or upgrading their existing experiences.