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.
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.
That’s great news as it means I will have more time to save-up some money 🙂
🙁
Well that sucks. I knew linux support was lacking But I did not realize no support for opengl at all yet.
*sad face* another user who really wants to see x-plane in the rift.
Well as always, despite the detractors, thanks for keeping us updated. I personally quite enjoy reading your highly technical posts about the behind the scenes magic driving x-plane.
Thoughts… X11 has support for separate screens.
one could set up the dk2 as its own screen(unfortunately would have to fight the xorg.conf, yuk.) and get an independent 75 Hz,
then start with $ x-plane -display :2
The tracking shows up as a million(slightly exaggerated) hid nodes and a uvideo camera, so easily accessed, but still needs an api.
The simple solution for the vsync issue as far as my experience goes is just to make the dk2 the primary display. This works around the issue in Unity. I notice slight performance degradation but all our demos work in extended mode at 75hz. Granted, I haven’t tried that with OpenGL.
Ya, That’s the solution I’ve seen as well. And it works great for me. Too bad X-Plane can’t support that for now. But I do understand the issue.
X-Plane with Oculus is a game changer. I hope, eventually, with tech like the Leap, well actually be able to interact with our aircraft panels.
Well, for now the fix is Prepar3d, Anteworld, and even E:D.
Thanks guys for the hard work!
Excellent recap. Thanks for getting the word out.
As any Rift owner knows, even the best implementations at this time are of beta quality. It’s kind of expected when the product itself is called “development kit”. I think X-Plane users by nature are more of a tweaker crowd and we understand the complications that come with new controllers, displays, plug-ins and add-ons.
Many big names in the DK1 game are now dead in the water with the latest SDK, so you guys shouldn’t feel alone (though you are a little more alone than others since you are in the OpenGL doghouse). To the credit of other developers, they did publish the DK1 support they had and they continue to receive feedback and publicity from their DK1 user base. It would have been nice to see X-Plane’s DK1 implementation released to the masses (even post-DK2) because, as I say in the forums, the longer we wait, the longer it’s going to take. There are plenty of Rift pilots out here ready and willing to break our teeth, and nobody is expecting a perfect (or even enjoyable) experience in the beginning. Seeing the light at the end of the tunnel doesn’t mean you’ve arrived, it means you’re on your way.
I know the X-Plane beta train is a heavy and slow moving beast, but with the live update infrastructure you have in place, releasing support in a beta (if only to pull it from a later release) seems do-able, and it wouldn’t be the first time something bad came down in a beta.
Apologies to Rift lovers. But why is a view system that is likely to be a rather small segment of the X-Plane user base getting this level of attention? Especially when it’s well known (as even noted in this entry) that it’s just not compatible at present. Occulus is a very immature product. Yet there are legions of features in X-Plane that have been promised and discussed since the beginning that would be of advantage to a far larger population? And there’s only one of you, Ben. When Austin opens up his pockets for a bigger scenery dev staff at LR, then the bitty fun things like the Rift could rise in the prio queue. That’s part of the frustration. Such a small team, so much unrealized potential in the sim itself. Sorry to be a soggy towel, and again I am not without empathy for the Rifters. But with view distance sorely in need of work, not to mention a long list of other stuff….Rift attention boggles my mind. What there is of it! 😉
There’s only one of me. But there are multiple programmers who work at Laminar Research (5 now, when last I counted). (And as of now there are TWO Alexes, but that’s another story.)
At this point the time we (and by we I really mean Philipp) have invested in the Rift is -not- disproportional to the impact we believe the product will have, and it’s not hosing other development.
But I do think there is the -risk -that if we -keep- chasing the rift like crazy -and- the DK2 stuff takes a while to stabilize, that we’ll get thrashed. That’s why I am eager to see what Philipp learns at the conference. We clearly need guidance on the time frame to approach Rift development efficiently.
Thanks for that, Ben. All for anti-thrash efforts! 😉 And we need more of yous, but I was unaware of the hording developer masses (developers, not scenery modelers, right?). When do you guys break ground on the new office building? 😀 (And are we still on track for the view distance fixes in 10.35 that you mentioned several blog posts ago? The underwater moon rises would be a good fix too.)
By the way, Ben, Philipp, my apologies. I didn’t notice the “by” line was yours, Philipp. Small print, olde farte eyeballs… my only excuse! Hoping for a new roadmap post soon to cover the various items besides the Rift that have been teased since we graduated to X-Plane 10.
Most of the demos in extended mode work perfectly and without judder as long as you put your primary monitor to 75hz. Then it works without any problem. Everyone with the dk2 is so used to do that in order to test the demos and all the programs. I don’t know if it would be the case with xplane right now as it is but it would be worth a try.
If you need a demo tester I’m here 🙂
To tell you the truth, the main reason why I got the Dk2 was to play with your wonderfull game. Thanks for the hard work anyway!!!
I also love corn so much!!!
🙂
No OpenGL support is a show stopping problem. most people in these comments are still talking about how they can get around the 75hz monitor issue. That’s great, but the big brick wall is OpenGL. I’m dying to do all of my flight simming in X-Plane in my Oculus Rift! but, until that gets straightened out, it seems like I’m forced back over to the FSX realm, and DCS and heck, I’ll even take Elite:Dangerous for now. But trust me, as soon as X-Plane gets a working solution for the Rift, that’s where I’m going to live.
Keep working on it guys! Know that there are plenty of us out here that are dying for rift support!
Here is an interesting workaround that you may be interested in.
OpenGL working in Direct HMD mode using Direct3D interoperability (updated)
http://www.reddit.com/r/oculus/comments/2gqo1r/opengl_working_in_direct_hmd_mode_using_direct3d/
I’m not a developer or programmer – just following Rift stuff. I do however watch stuff like Apple WWDC keynotes. The worry is (but maybe it won’t be) is that Apple dropped OpenGL in favour of METAL on iPad which apparently give vastly improved frame rates because it gets developers closer to the guts of the graphics processors. If Apple do the same with their laptops and desktops – will that mean the end of X-plane on Macs.
(Or could it just persuade Austin to drop the compatibility thing and come up with a super lightning fast Mac version)
My guess is the Oculus people are going to go native METAL
Metal is not available on OS X.
Hi,
Apple has, at this point, made no statements or indications that they intend to drop OpenGL, and there is no reason to believe that introducing metal would induce or require them to drop OpenGL. (For that matter, they have made no statements or indications that they intend to run metal on desktop, so it isn’t even available as a replacement for OpenGL.)
So…if someday they should say that they intend to drop OpenGL, we will consider it when it happens. But for now, it has not happened. 🙂
Thanks for the update! I was reading this blog every single day to catch news about Oculus support. As a DK1 user (yeah: I didn’t upgrade yet) I think it would be nice to release what Philipp developed… just “as is”: it’s a beta and we know Rift support will be rewritten for DK2 or even CV1, so nobody will complain about it and at the same time Philipp would have “his reward” knowing that at least one user is SO happy for the code he already wrote! 😛 🙂
Ben: any chance to support the Avegant Glyph? It has a far superior DMD DLP direct retinal display with one display element per eye . It also has a head tracker. The device itself straight HDMI compatible. So the only real support would be for the head tracker, it should be easier to create 3-D for this device since you are probably use alternating left right images this device runs 120 Hz . http://avegant.com/
Thanks
Jim
JazAero designs
Honestly: probably not.
Our view is that _most_ hardware should be supported by third party plugins that can be tuned by the hardware maker to take maximum advantage of that hardware. Anyone who remembers GoFlight support via built-in LR and via a plugin understands how much more detailed support can be when it’s done in a plugin. We (LR) are simply divided too many ways to give each piece of hardware a ton of attention, particularly when only a small percentage of our users have it.
The Rift is an exception because it’s operating at a different scale.
If the device is really only a head tracker, a plugin-based implementation will be pretty straight-forward. The Rift really only needs to be “built-in” for its stereoscopic display properties.
Not to surprised. While openGL is great, it becomes the neglected step brother of direct x with hardware support. The same thing happened with nvidia’s 3d vision.
Thanks to you guys for even jumping on the band wagon and getting the dk2 to start developing. I’m one of the early adopters of oculus, I have my dk2 and I can’t say that it’s worth it until I see it working with x-plane. So keep up the good work and I can’t wait to see the result!
Ben: Thanks for your response. I don’t know if you misunderstood me, the device is more than just a head tracker. It’s a next-generation virtual display. And although slower out of the gate then OR I believe the technology that Avegant is using will prove to be superior in the long run.. This is not a “us versus them response”. But it is my personal and professional opinion based on over 35 years experience in the computer industry. And I have seen a lot of technology, come and go. I hope the rift succeeds because right now it appears to be running on its momentum, while no one can get the DK2 to work properly. whereas the glyph is up and coming and if it garners enough support could overtake the rift. (disclaimer, No I don’t work for them or own stock in the company) just give it a serious assessment is all I can ask.
but I appreciate your candor.
Thank You
Yours truly
Jim
JazAero designs
Hi Jim,
_If_ another tech comes along that has adequate market share, we will consider native integration. My comment on plugin support and head tracking was based on misunderstanding your comment about HDMI. Currently it is necessary for us to do stereoscopic integration at the app level. This may change or we may provide a ‘canned’ stereoscopic solution if standards emerge; right now we have to get a stereoscopic surface from the driver, which is not passed on to the device in a general way.
Regarding OpenGL support…
I’m pretty sure that Outerra (www.outerra.com) runs OpenGL and it has some pretty excellent oculus support… so it must be possible?
Cheers
Ben
If they are running with OGL they are probably using client warping and extended desktop – this is -not- the path that Oculus recommends to ship an app on – it’s basically prototype proof of concept code; the same path that Philipp has mostly working. This is also the code path that has problems with vsync, etc.
Is there any news of the oculus connect by philip?
Yes. We’ve gotten lots of good input and are now in direct communication with engineers at Oculus. Also, at the conference Oculus stressed they want to fix their openGL problems very soon and that Mac and Linux support is not dead, it will definitely come.
Great News
Danke Philipp 🙂
Good news indeed. Although it’s a little vague what that means for us (well, X-Plane that is).
Does that mean that you guys are still dedicated to Oculus support, but will probably put it on hold for a while 🙁
Or does that mean you have enough information/support now that you are able to press forward now?
It simply means we now know that Oculus is dedicated to solve their openGL problems and be cross-platform. We can’t do it unless they provide a working foundation. Also, we are working with someone at Oculus to solve problems as they arise. However, it would be foolish to think that Oculus changes their internal priorities just because of us.