Post by Philipp

As many of you are aware, we have been showing custom versions of X-Plane with support for the Oculus Rift at different shows and conferences. Naturally you want to get your hands on it as quickly as possible, and some of you have engaged in lively discussions on the forums and in the Steam community, which is why I’d like to give you a quick update on the current state of development.

First of all a big “thank you” to Bob from RC Simulations, who provided us with a DK2. His order was in the first batch, and he generously lent it to us until ours got delivered a few days ago.
The good news is that my DK2 now sort-of works with X-Plane on my Mac and PC. Now hold your breath, because the “sort-of” is an important part of the story. The bad news is that Oculus recently introduced some fundamental changes into the way the display of the Rift is exposed to the operating system. The changes were quite disruptive and haven’t even made it to Mac and Linux yet.
The latest SDK from Oculus comes with a proprietary display driver for Windows, to allow for a smoother display with less motion blur because it runs at 75Hz (instead of the 60Hz of virtually every computer monitor nowadays). This driver apparently works okay for Direct-X based games, but doesn’t work at all with openGL applications like X-Plane. For Mac and Linux, not even an unstable driver is available as of now.
On Windows, if we try to use the low-latency “Direct-to-Rift” mode, we get a Blue Screen of Death. It is a well-known problem of the latest Oculus SDK, that it doesn’t work with openGL. Any title with native DK2 support you find out there runs on DirectX, which also means it is a Windows-only title.

A user on the org forum posted this Star Trek quote:
“The needs of the many outweigh the needs of the few” (or “the one”).
suggesting we should’t wait for Oculus to provide Mac and Linux support and instead release a Windows beta RIGHT NOW.
In case it’s not entirely clear from I wrote above, the platform availability is not the problem! Even if we were to release Windows-only, we’d still need working openGL support in the Oculus display driver.

Using the DK2 in “Extended Desktop” mode like the DK1 is not really an option. Due to the DK2 running at 75Hz, and your primary monitor at 60Hz (unless you still have one of those heavy CRT monitors) you will get terrible vsync. It is dropping frames left and right (regardless of your actual frame rate!) causing what people on the Oculus forums refer to as “DK2 judder”. In fact, DK1 looks better than DK2 right now, given we can only use the “Extended” mode, and that is just lame.
I am heading out to Oculus Connect later this week, where I hope to get some insight into the what and when of openGL support, the roadmap for their drivers and if we are ever going to see native DK2 support on Mac and Linux.
As of now, I have to tell you that for anything but DirectX-based games, the Oculus SDK is so beta that it is not even alpha. We will have to wait for future versions of the Oculus SDK to fix those issues.

Response from Ben

We (Laminar) have put third party developers in a real bind twice now: first with X-Plane 10.20 (and 64-bit), then with X-Plane 10.30 (and the new GPS).
That bind is: users want the new tech ASAP and pressure developers to release updates. Laminar, in the meantime, issues guidance like “don’t release until it’s final, because we might break everything during beta.” And indeed in 10.20 we did have a late-game change; in 10.20 beta 8 we had to totally change how the 64-bit ABI for plugins worked to fix linker conflicts. It’s beta for a reason!
So…irony, thy name is Oculus, because now we (Laminar) are in the bind. I swear that every other comment I get from users is “where’s the Rift? When do we get it? X-Plane’s not usable without Rift support.” In the meantime, the Rift SDK is clearly not ready for prime-time yet. There are simply technical problems that have not yet been solved.
We erred on the side of early adoption; Philipp had a nearly complete DK1 implementation finished and his reward for this: totally rewriting the code for the DK2.
Simply put, we really can’t ship Rift support until the Rift SDK is more stable. I am hoping that Philipp can get info directly from the Rift developers so we can have a sense of when this will happen. Trying to “ship” the Rift too early and having to rewrite simply takes coding cycles away from other features, which is bad for everyone.
So as an exercise in patients, I share an actual word-for-word transcript with you from dinner the other night with my 3 year old son.
Gabe: Corn please!
Me: Okay, I’m going to microwave it. We can’t eat it while it is still frozen.
Gabe: NOOOOOOO! YOU CAN EAT IT WHILE IT IS STILL FROZEN!!! I WANT TO EAT IT NOW!!!!!

Hopefully next week we’ll know how long the corn has to be microwaved before we can eat it without breaking our teeth.