Archives For March 2015

 

Marianne

Hello, my name is Marianne Martin, Art Director on FATED.

I was thrilled when I learned we were going to work on a VR project – and Norse-themed at that! Like many, I wondered if virtual reality was a fad until I tried a few different demos and realized the fantastic potential for immersion. Here was an opportunity to build the most tangible game world ever! With VR able to fool our brains into the truest feeling of presence yet (to the point of vertigo!), visual development is entering a new age.

FatedBlog_Art_IMG1

During the initial concept phases, we were all excited about the epic narrative. This was VR: our Midgard and our characters had to be so… real! Character bios in hand, I started sketching detailed, documented designs. When concept artist Marie-Hélène Morin-Fafard joined the project, she drew some spectacular, moody environments that we hoped would be the perfect grounds on which to stage the FATED adventure. We did what pre-production is intended for: we went big.

FatedBlog_Art_IMG2

When we started getting more specs and technical info, we realized our strategy wasn’t quite right. With the unexpected technical limitations and a small team, we needed to change our academic, too-realistic approach. I took a step back and toyed with the idea of exploiting the limitations as if they were fully intended, rather than produce something that couldn’t be simulated believably on our platform.

FatedBlog_Art_IMG3

The games and animated movies that made a lasting impression on me are not impaired by stylization – they are probably better for being stylized. I thought: if we stylize FATED, focus on expression, create a meaningful color script, and give it distinctive visuals to enhance the experience that makes VR so special, we’ll have something extremely solid. We can make the player believe they are an emotionally and physically-involved part of that universe, and this became our focus.

FatedBlog_Art_IMG4

FatedBlog_Art_IMG5_fixed

So, back to basics we went, designing simpler characters and environments with more striking and memorable silhouettes. We got our 3D pipeline into gear to achieve the vision, and our technical artist, Étienne Carrier, developed clever systems to fully exploit our visuals and create environment variety in Unreal. Before long, we had a successful test scene, a new sense of wonder, and a few of the building blocks for the world of FATED.

We’re not out of the woods yet, so stay tuned…

FatedBlog_Art_IMG6

14246350856372on228iwwmi_1424640283664

http://www.xeqis.com/

THE JOVIAN might not be the sexiest demo out there, but it’s definitely a whole lot of fun to play. We loved the simple, yet effective gameplay and smooth controls. Absolutely worth trying it!

Mik

Hey guys and gals!

Following last week’s post, which introduced some basic VR concepts, I thought I would do the same but oriented toward Unreal Engine 4. Since the engine went free a few weeks ago, I bet there are a lot of newcomers who could use a hand! So without further ado, let’s delve into the subject.

THE UNREAL EDITOR AND VR

There are a lot of ways to preview your content in Unreal, two of which are particularly helpful for VR. The Play mode can be found in the toolbar above the viewport in the standard Unreal layout.

VR Preview:

This Play mode starts the game in VR mode directly inside the editor. This is new in Unreal 4.7 and is very useful to actually have HMD data inside the editor to debug (in blueprints, for example). This Play mode works well with the Oculus’ Direct to HMD, but it seems to have some issues in extended mode.

PlayMode

Standalone Game:

Prior to 4.7, this was the way to test your VR content. Pressing Alt+Enter starts the stereo rendering. We still use it to profile using Intel GPA. More on our usage of Intel GPA in another post!

World to Meters:

In the World settings, this value is under the VR category. This is the representation of Unreal units to real-world meters. 100 means that 100 Unreal Units equal 1 meter in real life. For FATED, we played a bit with this value to get the proportions we needed. It is recommended to set this value so that it fits with the real-life measurement of your in-game objects.

Head Mounted Display Blueprint Nodes:

There are a lot of exposed methods to do logic directly inside blueprints. This category should be the first place to look for HMD-related functionalities.

HMDBlueprint

Use Less CPU in Background:

You want the editor to stop most of its processing when testing your content. This option can be found under the Editor Preferences in the Miscellaneous section.

LessCPU

Scalability Settings:

I feel like I’m repeating myself, but performance is critical in a VR game! Unreal Engine 4 comes with a great scalability features that can help create the range of performance for your game, from your minimum specs to your recommended specs. More on this in a performance post I’m planning to write soon.

Scalability

COMMAND LINE FUN!

If you’re already familiar with Unreal development, you know about the console and all the commands that can be entered through it. This is also true about the HMD Interface (Head-Mounted Display). Most of these commands are accessed with the “hmd” keyword; here is a list of the ones we use the most in FATED’s development.

hmd stats:

This command displays info about your HMD. A lot of the stuff I’ve mentioned in my previous post can be seen here. Your current latency, whether positional tracking is activated, whether the camera is detecting the HMD, etc. There is also information on Time Warping, and whether the engine is updating the HMD info in the render thread. These are techniques to reduce latency that come right out of the gate in Unreal 4, making it a top-of-the-line choice for VR development.

hmd sp YYY:

YYY must be replaced by a number between 30 and 300. This is one of the easiest performance boosters at the expanse of visual quality. To create a better-looking picture, Unreal scales the image before the distortion process, sampling down afterwards to fit your HMD screen. By default it is at 135, but you can easily bring it down to 100 for better performance. It does look better at a higher percentage, though!

hmd vsync on/off:

Deactivating vsync can be useful to track your actual framerate.

stat unit:

Figure out if you are render thread-bound or GPU-bound. For FATED, we are pretty much always GPU-bound.

stat fps:

Are we running at 75 fps?

stat scenerendering:

This will show useful information about the scene’s rendering. You want to keep an eye on the number of draw calls, for example.

show YYY:

The ‘show’ commands are useful to hide some elements of your scene to try and figure out how much each of these elements takes to render. ‘Show staticmeshes’ and ‘show postprocessing’ are two examples of commands we used in early profiling.

ShowCommands

profile GPU:

This will launch the Unreal Engine GPU Profiler. You can also do this at any time by pressing [Ctrl+Shift+,]. This is a good one to know about, as it is the first tool you will want to use for GPU performance profiling. It is kind of limited (and the reason we are using Intel GPA for deeper profiling), but it will point out some of the costlier effects in your scene.

GPUProfiler

These are the most useful ones for us, but go digging in there and you’ll find plenty other commands that are useful.

In my next episode of the FATED blog…

That’s it for now! Next time, I will talk a bit more about performance and how we got FATED running on a “normal” rig while still retaining great visuals!

Meanwhile, don’t hesitate to comment or ask a question; we’ll be happy to discuss with you guys!

14075174848987urrqgjh5mi_1407521605324

http://sightlinevr.com/

When it comes to showing a demo to someone new to Virtual Reality, this one has become a classic for us! Great concept plus it showcases some of the best strengths about VR. Also, great ending for both the player and people around! 🙂

Mik

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.

VR VOCABULARY

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.

LATENCY
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.

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.

http://static.oculus.com/sdk-downloads/documents/Oculus_Best_Practices_Guide.pdf

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.”
http://en.wikipedia.org/wiki/Screen-door_effect

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!

REFRESH RATE
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!).

PRESENCE
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.

BlogPost01_BasicsRev03 (Mode Protégé) - Microsoft Word
http://static.oculus.com/connect/slides/OculusConnect_Epic_UE4_Integration_and_Demos.pdf

HARDWARE TIPS

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).

BlogPost01_BasicsRev03 (Mode Protégé) - Microsoft Word_2

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.

BlogPost01_BasicsRev03 (Mode Protégé) - Microsoft Word_3

Next, you may want to go in your PC’s Control Panel, in the Power Options, and set your minimum processor state to 100%.

BlogPost01_BasicsRev03 (Mode Protégé) - Microsoft Word_4

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!

I’m leaving for San Francisco today. Armed with a short demo of the game, I will be meeting with partners and members of the press the entire week.

Good job to the FATED team, who worked extremely hard on this demo. I love you guys!

I can’t wait to show people what we’ve been working on!

It will be a busy week, but I’ll make sure to post updates.

 

Vincent Martel / Producer / @Vincent_Martel