My experience building 7 Vive games in 7 days
When I first received my Vive and tried out the sample projects, I was hooked. My mind was immediately racing with all the possibilities for this new format. I’ve done VR work since the DK1 shipped, but this was revolutionary. Day 1, I started trying thing’s out in Unity and was blown away with how well it worked.
I had a couple ideas and quickly got to work on the first. This was going to be a remake of Rampart in VR. You would pick up the walls and drop them in place, then use the controllers to aim and fire cannonballs. Within a day, I realized my design was far from optimal and I needed to rethink my plans.
Next, I decided to write a getting started tutorial. I’d done previous VR tutorials and classes with baseball themes that were a hit so I started the conversion to room-scale. Within a few hours, I had a working prototype where you could swing a bat and really feel like you were in the game. This was great, I knew I had to push forward with the Vive.
While I was working on the baseball game, my mind kept wandering to all the other things that could be done. On the way to a family trip to Disneyland I was talking to a good friend about how great the Vive is. (it’s close and these trips happen monthly, in fact I’m writing this in the car on another trip back). While talking to him, I decided it be great to prototype a bunch of games. A few minutes into the conversation, I’d decided to challenge myself and build a game a day.
I told my wife the plan, and it was locked in.
The first thing I needed to do was build a plan. I had to come up with a few ideas for games I thought might be fun. Luckily, there were plenty of friends and to bounce ideas off and I had a flurry of great ideas coming in.
I needed to have a release schedule. Since it was going to be 7 days, I knew there was some risk of slipping, so I immediately decided to pad my releases by a day. A game built and recorded Monday would go out on Tuesday. I’d also tried to have a simple game idea that could be built safely in 2hrs or less in-case things went drastically wrong. To my surprise, the 2h game idea was a total failure, but everything else worked out great.
Before going into the lessons learned, I want to give a quick rundown of the different games that were built.
The first game I built was a dungeon defense game where you ruled over a little dungeon that was being invaded by goblins. In this game, your goal is to prevent the invading goblins from stealing gold from a few scattered chests placed throughout the scene. To do that, you’d shoot at them from above with some magic wands. Initially, I’d considered building this as more of a tower defense game, but I quickly came to my senses and remembered that building a basic tower defense game would require quite a bit more work than could be done in 4 hours, let alone doing it as a VR experience.
The driving force behind the theme of being giant and ruling over a tiny dungeon or world came from a demo I saw at the first Occulus connect conference. They showed a small cartoon town with a lot going on that you could view from wherever your head would fit. I thought that was a great experience and wanted to follow along while adding some interaction.
Archery was an idea championed by my wife. The gameplay here is simple, you have 10 arrows per round, you shoot targets and get points. Targets further away or moving are worth more points. Your left hand holds the bow (sorry I’m right handed), and the right hand pulls the string and arrow back. Once you’ve aimed, you pull the trigger and the arrow launches away.
This was probably my favorite of the set. It’s a straight forward game where zombies come from all directions and your only task is to stay alive. You’re equipped with 2 shotguns that automatically reload every second. The real thrill in this one comes from having a variety of zombie speeds. I’ve seen plenty players focus on a single area, forgetting to turn around, then be startled when zombies are at their back.
Candy catcher is a fun goofy game where candy falls from the ceiling. You have 2 plates to catch the candy with and a tray to drop it into. Each piece of candy you drop into the tray is worth a point. The initial concept for this was going to be catching ice cream scoops, but good ice cream scoop art was hard to come across. In the end though, the ice cream shop with the fun music and colorful candy turned out to be pretty entertaining.
Pitching was something I wanted to do so I could add it as a feature in VR Baseball … Unfortunately, it didn’t work out and wasn’t fun at all. Nobody really seemed to enjoy it, including myself.
That said, VR Baseball itself is quite a bit of fun. Hitting a ball is a blast. Attempting to throw one.. is not.
Stack 'em Quick
In this game there are 4 colored blocks. In front of the player, a copy of these 4 blocks will appear in a random order. The player’s goal is to pick up the blocks from the ground and stack them in a matching pattern. When you complete a match, you score a point and a new combination is generated. This was actually a lot of fun and one of the most popular games I built. The gameplay is simple, but the challenge is really exciting.
Dungeon Crawler - Hack & Slash
One of the most requested things during this week was a sword fighting experience. Having already built a basic dungeon defense game on day 1, I thought I’d re-use some of that work and build a fun hack, slash, & casting type game. To move the player along, they float on a ‘magic carpet’. As you move, goblins come around corners and start attacking you. Your controllers are swords that you swing, tearing through the goblins with ease. There are also a few weapon replacements you can pickup throughout the experience. In total, this game lasts a full 10 minutes, though it starts feeling repetitive and slow after the first 2.
What I learned
During this week, I learned a lot about VR development, and more specifically the Vive. I’ve done a large variety of VR projects in the past on the Oculus DK1, DK2, and GearVR, but this was something totally new.
The HTC Vive is an amazing device. If you’ve never tried room scale before, I implore you to go find an opportunity to do it. Room scale experiences are a huge change from any previous VR games I’ve played in the past. It’s hard to explain how big a leap it is in text or words.. For me, the jump to the Vive is equivalent to the jump from Google cardboard to an Oculus device. Controller tracking was available previously with devices like the Razer Hydra, but they pale in comparison. The Vive controllers are a near perfect input device, working well as a bat, gun, hand, sword, and more.
Unity integration with the Vive is even more noteworthy. The job the Valve team has done integrating the Vive with Unity is nothing short of incredible. To convert a game to be Vive compatible, you literally only need to import the SteamVR asset pack and drop in the [CameraRig] prefab. This simple action gives you full room scale tracking for both the player and the controllers. Customizing your game from here can be as simple as adding a child gameobject to the controllers and disabling the ‘model’ that renders the controllers by default, which is exactly what I did for most of the games produced.
Room scale as I mentioned is amazing, but it requires a big shift in mindset when developing games. There are many opportunities for really interactive experiences and a few gotchas to watch out for.
- Moving around! – Experiences where the player had to actually move physically were a big hit. The one that stands out the most in this set was Stack ’em Quick. In this game, people were running all around the play area picking up boxes, carrying them to another part, and stacking them up. They’d duck down low to pick up the boxes, and reach up high to put them on top. I think the full use of room scale and movement is what made this game stand out as the second best.
- Swinging the arms – You’d may be be surprised to learn that many people actually get tired or exhausted playing some room scale games. Even my wife who’s extremely fit gets worn out after 10-15 minutes in some of the more intense games. Of course like anything, how tired you get depends on how intense you play, but many of these games are so engaging that people get really active while playing them. Archery & StackEm were both games where people tended to get very immersed and exert themselves. VR Baseball is another example where swinging a controller as a bat wears people out much like a real batting cage.
- In-game Player Movement – Unfortunately, movement is a bit more complicated when you’re dealing with a room scale setup and a standing player. Game 7 is a good representation of the challenges presented. When moving a standing player, movement at any real speed is very disorienting. Rotation is far worse! Turning the player at even the slowest speeds can make them fall over or get VR sickness. If you try the Slash & Hack demo, you’ll see that even rotation at a 1-2 degrees/second is not fun.
General Virtual Reality Performance – FPS!
I can’t stress enough how important it is to remain above 90 fps when building a VR game. That number may seem really high, and it is, but it can’t be avoided. 60 fps used to be the standard for high end PC gamers, but in a VR game, 60 will make you sick.
You have a limited budget for vertex count in your VR games.
Use that vertex budget on things that are close and very visible (hand held items like weapons).
Visual Effects, Trees, and Anti Aliasing
One of the issues I ran into a few times before realizing what was going on was a terrible effect when I'd put trees in a game. If you look at the games above, none of them actually use trees at all. When I'd put them in, I would inevitably end up blinded & sick from light flickering through the branches. It turned out that the biggest cause of this was the default quality setting in Unity that I was running in. Without anti-aliasing turned on to at least 4x, trees were unbearable. Even with it enabled, many trees still look terrible. If you plan to have a forest or just a bunch of trees in your game, make sure you test them out right away, and look for trees that don't flicker and blind your players.
Asset Store & Mixamo
Without the Unity asset store, this project would not have been possible. All the games other than #6 relied solely on cheap and free assets from the store. There are some important things to take into consideration when finding assets for VR projects though.
Many of the assets on the store look great but perform terribly. There were a few assets I purchased for these projects that ended up not working out due to excessive poly/vertex counts. Currently, there’s no easy way to find out how things will perform without either emailing the asset providers or downloading and trying them out.
One thing that worked well for me though was searching for mobile/optimized keywords when finding assets. Assets designed for mobile tend to be highly optimized and have little to no impact on framerate. You do however have to find assets that also look good in VR.
Favorite Assets Used
BitGem Dungeon Builder Starter - I used this for the first and last games. While it didn't say in the description that it was mobile ready or optimized, it ended up performing better than anything else I'd tried. The pack and included demo scene looked great in both 3rd and 1st person views. If you want to build a VR dungeon game, I'd highly recommend you give this asset a try!
Goblin Piker – I also re-used the goblin piker in both the first and last games. This was an asset I was very impressed with. I wanted something cartoony looking that would fit well in the Dungeon I was using and this was a perfect match.
If you haven’t checked out mixamo.com yet, do it asap. It’s a site with great character models and a giant variety of animations. And right now, it’s all FREE! These models and animations used to be pretty expensive, but they were recently purchased by Adobe, and until they get a pricing system setup, they’ve made all the assets free to everyone. The Zombies in game 3 were sourced from here, and there are countless other amazing models you can get there.
This may be the most interesting part of the retrospective. Building 7 games allowed me to try a large variety of mechanics and to not worry about total failure. Because of that, I got a good amount of insight into what was fun and what was ... "less than fun".
The Fun Stuff
Picking things up
Of all the mechanics I explored, this one was probably the biggest surprise for me. The feeling of actually picking up objects in Stack 'em Quick, made that game a real joy to play. Even though you're not actually closing your hands, just pulling the trigger to grip something, then moving and releasing it somewhere else is very enjoyable. I should note that I've played other Vive games with similar mechanics, and every time, I've felt far more immersed just due to this simple mechanic. If there's one mechanic you should definitely include, it's this!
This may seem obvious, but shooting stuff never gets boring. The way the Vive controllers are designed, they work equally well as pistols or shotguns. Aiming and pulling that trigger is something everyone who played seems to really love. It's also a very easy to pick-up mechanic that doesn't need to be explained. I should note though that aiming in VR can be difficult at first. In the Zombie game, I actually added a simple laser sight to make it easier for people to get started. (I actually just added the laserpointer script that valve provided with the SDK on a child object and aimed it the right way)
The first game I did had a big gods eye view with little minions below. As I mentioned before, hovering over a miniature world is oddly satisfying. Everyone who played this in front of me ended up bending down to their knees to look closer at the little goblins walking around. Now I'm not sure what the best experience will be for this type of game, but I have no doubt that someone will crack this style and make a game-changing product. And in typical Valve fashion, the only thing you need to do for this to work is increase the scale of the [CameraRig] prefab.
360 Degree Gaming
The only games the really featured things to do from all sides were the Dungeon Shooter and Zombies (hack & slash to a lesser degree). For Zombies, I'd say this was a key feature. Being surprised by things from behind made this game so much more intense. Eventually, players learned to keep watching their back, but inevitably they'd get distracted and surprised again. It's also important when doing these kind of experiences to make good use of audio cues. While they may not notice the Zombie running up behind them visually, they'll definitely realize it when they hear the footsteps and a loud growl. This is such a great mechanic that I've decided to make it a key part of my next Vive game.
I mentioned this before, but it's worth repeating. Making the player move around the room really adds a lot. While I don't expect this to be really common just due to the limited room space many players have, I think it should not be overlooked. Actually walking across a room to pick something up adds more immersion than anything else.
I was shocked at just how bad a feeling it is to have your camera rotate while you're standing still. In the hack & slash game, my original design was to move the player around with the touchpad. Within a few seconds of testing, I realized this was a terrible idea. Moving forward with the touchpad was a bit disorienting and I almost fell over. Turning was SOOOO much worse. When I started, I had the turning bound to the headset with forward movement bound to the touchpad. At the first turn, I had immediate VR sickness that didn't fade for at least an hour. From here, I tried a few tweaks, and eventually ended up with VERY SLOW controlled rotation and movement on a flying carpet. Even though the movement is abysmally slow, it's still somewhat nauseating. Perhaps someone else will find a way to conquer this problem, but to date, I've found no fun way to do it.
Throwing Objects / Releasing the hand
The baseball pitching game seemed like a great idea before I actually tested it out. The problem I ran into was that when you throw a ball, you instinctively want to open your hand and release that ball. Throwing a ball by releasing your finger from a trigger just doesn't feel right. I think throwing something from the end of a long stick may be a bit less un-natural with the Vive controllers, but a basic ball just isn't fun, and almost nobody could do it successfully.
However this doesn't mean you can't throw anything, there are plenty of great ways to throw objects, it just feels bad throwing balls specifically..
Hitting Controllers together
With archery, this was a real problem. Everyone who played would put the right controller up to the left and smack them together. After that collision, they'd smack themselves in the face with the controller while pulling back the string. A big part of this was changing the in-game representation of the controllers into something that didn't physically match the device held in the players hands. Of course, even if we show the controllers, I've still seen plenty of people smack themselves in the face while trying to bring things up close to their eyes for inspection.
Unfortunately, sword fighting on the Vive is not an easy problem to solve. The biggest issue here is that there's no physical requirement to swing a sword and nothing that prevents the player from simply wiggling the controller back and forth as fast as they like. A real sword requires force, strength, and control... but a light weight controller can't really reproduce this.
Update: A couple of games have figured this out, and made it a lot of fun. But it took time and work to get it right.
I hate to conclude this post at all, but I fear if I write for as long as I really want, nobody would make it to the end. I have to say that building these 7 games was one of the most exciting experiences I've ever had and while it was a bit exhausting, it was worth every bit. I also have to reiterate just how impressed I've been with Valve and HTC. The device works amazing, and the software & support are the best I've ever had the pleasure to work with.
If you take away only one thing from this article and experience, let it be experimentation. When you decide to build your own VR game, don't build out an elaborate design and plan from the start. Try everything! Take every little idea you have and put a day or two into it.
See how things feel in VR. You'll be surprised at what fails and even more surprised at what's a giant hit.
Downloads - Get the Games now!
If you'd like to try out these games yourself, you're in luck! They're all freely available for download right now!
Thinking about building your own VR game?
After building these 7 prototypes, I went full in and built 6 full games for the HTC Vive & Rift that are selling on Steam now. If you're considering building a VR game of your own and want to get a head start on the process, give my VR Game Development course a test run.