Hi, my name is Michaël Dubé, Lead Programmer on the awesome FATED project!
Starting a new project is always thrilling and frightening at the same time. Venturing into virtual reality using a completely new technology, Unreal Engine 4, was something we were mostly excited about, though. Everyone on the team was super hyped for this project (and VR in general), which made the terrifying parts (hello performance!) not so terrible to bear.
Nevertheless, we learned a lot of really neat stuff during our first months of development, both about UE4 and VR, and my hope is for this blog to be half an entertaining view of the development of our game, and half a chronicle of all the blood and tears we shed to get there. It’s a Viking game after all; you can’t expect it to be all unicorns and rainbows!
For this first post, I wanted to keep it simple and talk about some basic but important virtual reality terminology, along with some tips on getting your rig ready to rock this new reality.
There are a lot of technical terms that come with VR development; I wanted to recap some of those and what they mean for FATED.
Basically, this is the time gap between your movement and its replication on-screen. You will often hear the term ‘motion-to-photons latency’ to talk about that. Low latency is very important in VR, as it is considered a major factor in reducing the effect of the infamous simulation sickness.
This is what you absolutely don’t want the user to feel! This is similar to motion sickness (reading in a car) or sea sickness. Research still haven’t pinpointed what exactly causes this, but everything points to cognitive dissonance. As soon as you make the user experience something he doesn’t do in real life, there is a chance it will trigger simulation sickness. The Oculus Best Practices Guide is a great place to get info on the dos and don’ts.
RESOLUTION AND THE SCREEN DOOR EFFECT
“The ‘screen-door effect’ […] is a visual artifact of the projection technology […] where the fine lines separating the projector’s pixels become visible in the projected image.”
This is one of the reasons the consumer version of the technology will need better resolution. However, for developers this means that we have to take extra care when it comes to performance. We got great performances tips we applied for FATED that I’m eager to share with you!
This is the frequency at which the screen refreshes. The DK2 is set at 75 Hz, so basically we need to update the screen at a constant 75 frames per seconds to get the best result. In VR, it is of the utmost importance to keep a steady framerate. Unless you want to make your players sick, that is (which we don’t, we swear!).
This is what VR is all about! This is basically tricking your brain in thinking it’s really in your game. We are designing with this principle in mind to create mind-blowing and/or powerful moments for the players to experience. FATED is all about making the player live a meaningful and poignant adventure. Because of this alone, I strongly believe VR is the next step in the narrative medium.
Installing the Oculus Runtime is as simple as it gets, but there are some important settings that every VR enthusiast should be aware of.
RIFT DISPLAY MODE
What Direct to HMD does is ensure that the application is synced to the actual refresh rate of your Rift. It also helps reduce latency since the step of going to your desktop is bypassed. While I prefer the simpler Direct to HMD, we are still using the Extended Display Mode on FATED for debugging purpose (more on that in another post!).
OCULUS CONFIGURATION UTILITY
This is where you can setup some information about yourself to get a better experience. Developers can then use this information to adjust the experience so it better fits the user, like adjusting the camera position using your IPD (interpupillary distance – the distance between your eyes).
BEWARE OF THE NVIDIA CONTROL PANEL!
If you have an NVIDIA card, chances are you can get a huge performance boost (we definitely saw a difference on some cards) by doing two simple things in the NVIDIA Control Panel. You should of course have the latest drivers before doing that.
First, in the Manage 3D Settings, there is a “Virtual Reality pre-rendered frames” setting that is set to 1 by default. You want to set that to “Use the 3D application setting”. Also, you will see “Power management mode”. Set that to maximum performance.
Next, you may want to go in your PC’s Control Panel, in the Power Options, and set your minimum processor state to 100%.
The above settings were part of changes I did for FATED when we encountered a problem known on the Unreal forums as the ‘37.5 fps lock’. This lockdown would normally happen if the frame rate drops below 75 frames per seconds, but this was not the case for us and some other developers. Some Oculus staff was involved in pointing this out, and this may not be necessary anymore once the consumer version is ready, but it definitely helped for FATED.
Well, that’s all for now. Obviously, there is a lot more to VR, and we will keep adding interesting content to this blog. In the meantime, if you have great tips to share with us or if you have any questions, we’d be happy to hear you out in the comments!
Stay tuned for more on FATED!