Space Pirate Trainer takes some of gaming’s most revolutionary mechanics and uses them to push the next generation of VR forwards. Dirk van Welden, founder of I-Illusions,explains how old can become new once again
Space Pirate Trainer (SPT) is a very active game, requiring players to move around, duck and dodge in room-scale VR. How did you balance the need to move around in the game with players’ physical limitations?
It involved a lot of playtesting. We really loved bullet time in all of the Max Payne games, so we tried to achieve the same effect in VR. One main feature is that bullet-time kicks in automatically, when you're about to get shot. This even allows players to dodge fire when they did not see the incoming fire, since you can hear the time slowing down gradually. It's like having some sort of spider sense, which feels really good.
We've also spent a lot of time balancing the decrease in game-speed and the velocity of the bullets, since it has a very big impact on the gameplay in SPT.
SPT involves staying aware of the enemies around you at all times – meaning a look of listening and looking around. How did you design the visual and audio cues to keep the player informed of their surroundings?
Audiovisual cues are very important in VR – you need to attract the player's attention at the right moment. The same goes for 360 videos; the director needs to be sure the audience does not miss any key moment because they were looking in the wrong direction.
We use audio and visual cues when the droids are preparing attacks (they light up) and another cue when they fire. Spatial audio is also very important. While it's possible to know the horizontal position of the droid pretty well, it's still difficult to know where they are vertically.
Since we are sure the player will be wearing a headset, we are currently looking into several spatial audio SDKs, which could greatly increase the spatial awareness.
We are also investigating how we can add some sound to the bullets themselves, so when time slows down, you've got an extra cue to pinpoint the position of the bullet.
Of course, all of this eats a lot of CPU, so we need to find the right balance.
"Audiovisual cues are very important in VR – you need to attract the player's attention at the right moment."
Dirk van Welden, I-Illusions
With players looking around so quickly, did you ever have worries of inducing nausea? How did you avoid this in the final game?
Well, we have not received any complaints yet about nausea when players have been playing on our hardware. This is the key reason: in SPT, all the movement is introduced by the player themselves.
Also, you need to be sure you'll have a steady framerate. We aim to get a steady 90 fps on VR-ready video cards. That means we have to be careful with polycount, heavy shaders and post effects.
Players wield two guns, which require increasing levels of accuracy to quickly take out the flying enemies. From a technical perspective, how did you ensure aiming with the Vive motion controllers felt accurate and ‘fair’ for players?
The tracking has improved so much over the past years, that we did not have any big challenges to make it feel ‘right’.
Aiming with normal guns is pretty much raw input, the only trick we are using currently concerns the Rail Gun. When you release the trigger, your gun actually rotates a tiny bit as well, which makes you miss the target sometimes. This is mainly because the controllers are fairly light, especially when compared to a real gun. Our solution is locking the target for 0.2 seconds if the gun has not rotated more then X degrees.
Due to its need for room-scale VR, SPT is exclusive to the HTC Vive. Are you concerned the need for space and the single platform release might limit the game’s potential audience?
You can play SPT in a small area as well; I've got a kit just behind my desk that only has about 1.5x2m of space. While a larger area is even more fun, small spaces really work as well.
Also, while the area that SPT uses is a bit more than 180 degrees, it could probably work with other systems as well, as long as the tracking is accurate enough.
SPT is clearly inspired by retro titles such as Space Invaders and Galaga, but must adjust conventional aspects such as user interface and menus for use in VR. What were the hardest factors to bring into VR, and how did you eventually refine their implementation?
SPT alpha had a retro-styled menu, displayed as a big holograph measuring about 3x2m.
There was no Unity UI VR interaction available at that time, so we created our own little system using raycasts that triggered the correct messages to actually have a UI that responded to ‘hover’ and ‘click’.
While that works really well, we feel that we might need a more arcade-like approach for our main menu. I can't really tell you much about that yet though.
"This first wave of VR games is all about experiences. It's a new platform, we want innovative gameplay, and smaller studios can take more risks when it comes down to fresh new approaches on VR."
Dirk van Welden, I-Illusions
You mention Unity – what other tools did you use to make SPT?
We are using Unity 5 with the SteamVR plugin. Valve's plugin is really easy to set up; it only takes a moment to enable VR in the environment you've created. Most of our models are made in Cinema 4D and painted/textured in Substance Painter and/or Photoshop.
While we used to work with Bitbucket for source control, we've switched over to Plastic SCM now that the project has started stealing away several gigabytes of our hard drive.
Our gameplay code is written in C# using visual studio and we prototype our custom shaders with Shader Forge.
What are the biggest challenges of building in VR?
Performance is always something that needs to be on top of our lists. We really want to get the visual quality as high as possible, and display as many droids as possible, but we always have to keep the high resolution and 90 fps in account.
While tracking of the hands and head works great, we still have to guess where the body is. When you see arms, legs or fingers that are not in the exact position as in real-life, it feels really weird. That why we try to limit displaying any info we don't know for sure. In co-op (which we are investigating), you actually have to show the other person, but you'll need to set up the character's position using only the headset and controllers as input data. I can smell a useful plugin here –anyone?
This first wave of VR games is all about experiences, and it's a good thing that smaller studios are actively participating in this. It's a new platform, we want innovative gameplay, and these studios can take more risks when it comes down to fresh new approaches on VR. I'm sure a lot of larger studios will follow in the next couple of years, if this first wave proves successful.
This article is part of our month-long Virtual Reality Special. You can find more VR content here.