Chapter 7: Adding Games & Interactivity
UI 4 VR
As we were designing the minigames, we had to figure out ways for the player to interact with the game. Normally in a mobile game we'd default to buttons, but we didn't want to be so obvious in VR- didn't want to break the immersion. So we came up with some really fun actions- instead of clicking "ok" to confirm you like the dress you create for Cinderella, you use a magic wand on the dress and it magically transforms onto Cinderella. To continue in several scenes, you either have to place an object on a table or pick something up. We wanted a scene to be able to jump through to the other scenes, and I came up with a circle of banners around the player- you're right outside the castle, the water's going by- it's quite tranquil, and one of my favorite scenes in the game to be in virtually! And the banners surrounding you wouldn't really work in a 2D game- but in VR, you naturally look around to see what's surrounding you.
The one deviation we made was our pause menu- we weren't sure how else to present a list of options that would be easily visible in each scene, so I created a 3D dialog box with some decorative flowers. It's pretty intuitive, but the only traditional dialog-box-style UI in the game.
Creating the Minigames
These were fun to design! Cinderella VR has eight (nine?) minigames total, so there were a lot of interactions and games to work out. We both came up with ideas on our own, and a few were created in collaboration. The carriage ride (below), the dancing game and the apple throwing game took the most to work out; the flower picking, cooking, dress making, balloon popping and invitation scenes fell into place pretty easily. We had a lot of back and forth on the former- how to lay out the carriage game, how to detect dancing in the dancing game, and getting the apple throwing just right (it played out differently on our separate computers, took a couple builds to get synched up). We sketched out most of the ideas so we'd have a guide for setting up the assets in the scenes, which again was helpful in getting them constructed and ready to be hooked up to the scripts needed to make them interactive.
The Carriage Ride
My original idea was to have the player in the carriage, as if they were driving. There would be some kind of steering, gas, brake, maybe a jump, and you'd have to steer through the woods and not hit any obstacles. I thought it would be exciting, but Scott pointed out a high-speed carriage chase would probably trigger some motion sickness in VR. I hadn't even considered that and conceded it would be a bad idea, but we collaborated on a design for a small arcade style machine.
It took a few iterations to get right though:
So instead of the player being in the driver's seat, they're controlling the carriage like a little toy car. It works very similar to a foosball game, and it has a tiny pumpkin and in the tiny pumpkin is a tiny Cinderella wearing the dress you designed and oh my gosh it's so adorable. Best solution ever. Plus there's chickens and angry bulls that you have to dodge. A+ minigame imho.
Chapter 8: VR Development Pitfalls
The Inevitable Bugs
It's not a game until there's bugs. There were plenty of run of the mill bugs- things not working correctly, appearing in the wrong order, misplaced dialog, etc.
Two notable ones plagued us a couple times- it turns out the hotspots for the Rift and the Vive controllers are slightly different. The colliders would work fine with the Rift, but I'd have to move my controller until the middle of the controller touched the collider to get it to work. We ended up having to adjust the controller colliders a few times due to this. Weird, but I guess that's cross-platform development for you.
The other bug was for respawning- for several of the activities, you interact with renewable objects. Once you pick them up, a new one will "grow" in its place. Something happened in the respawn code where sometimes, if you "picked" an object, a new one would grow in its place, but bigger than the original object. It then grows too big, "picks" itself, and a new one grows in its place, even larger than the one before. And so forth, fairly quickly. Hilarious, but we had to fix it.
A few other funny bugs- the character's puppet bugging out, or me trying to get the farm animals to walk on the ground like normal gravity-obeying animals.
Troubles with Playtesting
So for most of the game's development, due to my studio arrangement, I only had access to the Vive a couple of days a week. I was able to work on the art and animations and work in Unity, but I couldn't really test anything until I got access to the VR rig. Then those days would just be filled with long lists of things to test, and I wouldn't get to spend time doing development. Towards the end of the project I got full-time access to the rig, and it was MUCH easier to develop quickly when I could test right away.
The other issue with testing was that it's difficult to be in VR for long periods of time- your body doesn't always agree with it. I'm pretty used to it at this point, but during one of my debugging days I had been testing the same scene for a few hours straight and had to stop. Had to be back in the real world for a little while! The next day, of course, was right back in- VR debugging waits for no man.
Regarding testing- quick story- I lucked into a meeting with an Oculus representative early in the game's development. I had around 24 hours to put together a pitch/presentation for the game, as well as gather up some of the game to show. It was very early in the game so there wasn't much to present, but I cleaned up our Unity build and got it ready to bring in and demo. I was rushed, and forgot my mouse. Turns out you need a mouse to really interact with a 3D game in Unity in simulation mode- you can do some very very rudimentary things, but I wasn't able to flip the camera around and really show off what we had done. Ouch. Lesson learned: bring a mouse, and a maybe a video just in case.
Difficulties of Showing Progress in VR
Speaking of videos- it's really hard to show people what you're working on in VR! No one but the people living with us had actually seen or played the game, as it was really hard to show people the product while it was in-progress.
Towards the end of development, I captured some footage and edited it into a short video to pass around to friends and family (and show them what I had been working on for months on end). Video seems to be the best way to show your game- although they are coming out with more and more portable VR headsets, so it'll probably be much easier to show them off now than when we started. Nonetheless, a video was nice to have to send around to show people I wasn't crazy and was actually making something.
Hi! It's me, Laura!