Oculus Rift DK2

By Shamus
on Sep 12, 2014
Filed under:
Projects

So this came today:

oculus1.jpg

I mostly knew what to expect. Michael Goodfellow wrote pretty extensively about his experience with the device. I count myself very lucky that I’m not nearsighted like himI only need to wear my glasses when I’m going to be driving or otherwise leaving the house. so I don’t need to worry about cramming a set of glasses inside the headset. This process is complex enough as it is.

It works like this:

You’ve got the headset itself. It has a cable that runs to a splitter, which has wires that go into an HDMI port (the “monitor” cable) and a USB port. You also have a camera that needs to sit atop your monitor so it can track your head movements. It has two more wires. One of them goes into the splitter box and the other goes to USB. The last piece of this Rube Goldberg contraption is a power cable that runs from the splitter to a wall outletSo the splitter has a total of 3 inputs and 2 outputs..

My desk is already home to my computer, my second monitor, my wife’s computer, the printer, the household routerWith several RJ45 cables running to machines elsewhere., the cable modem, a midi keyboard, the hookups for my digital camera, plus the many accouterments for all of the above: speakers, game controllers, headphones, etc. Adding the Rift to this mess seems like asking for trouble. I’m assuming that the consumer version of this thing will eliminate one or two of these cablesMaybe limit it to one USB plug, and one cable to the camera instead of two..

oculus3.jpg

The main demo people use is the Tuscany demo. (Pictured above.) It has a pretty slow walking speed for a viedogame. Without the Rift, I was constantly holding sprint. WITH the Rift, I really wanted a SLOWER walk speed. Part of the problem is that there’s no acceleration, so the moment you tap the forward key you’re moving at a brisk walk, which feels too abrupt. I was content to move around the house at normal speed and didn’t experience the same impatience you feel in a typical game. It’s interesting how freely you can switch between these two. The moment I take the headset off, I’m mashing down the sprint again. It’s not that moving fast in VR makes me sick (although it doesn’t feel good) it’s just that moving slowly in VR feels better.

Stairs do not feel good. Again, I feel like I’m moving much too fast. I wanted some kind of modulation of speed as I began ascending and descending steps. The stairs are treated as a ramp, which is good. That’s the only correct way to handle steps in VRIn real life, your brain cancels out the yo-yo head bob you experience as you climb steps, so it feels basically smooth. but abrupt change in vertical motion when beginning or ending a stair-climb was uncomfortable.

I really want to start working on my own VR stuff, but I can’t. A couple of weeks ago I agreed to help out a friend with a game he was working on. The stuff he wanted me to do was dead simple and I didn’t think it would be a big deal. But he’s using Visual Studio 2012 Professional and I’m using Visual Studio 2010 Express. (The free version.) There are some radical changes in VS between these two versions, including some significant additions to the C++ language itself. So I thought I’d just install VS 2012 Express and everything would be okay.

My basic problem here was that I began this task with the expectation that what I was trying to do would be – or at least SHOULD be – easy. So I didn’t treat this task with the respect it deserved. I didn’t take note of the changes I made, I didn’t carefully document the errors I was getting, and I didn’t make backups. I just jumped from one action to the next, always expecting that the problems would sort themselves out any second now.

The upshot here is that I think I broke my install of Visual Studio. Not only can I still not work on my friend’s code, but I can’t work on my own code, either.

Then just to seal the deal I got fed up and rage-quit after a couple of hours and lied to myself that I’d come back “in a bit” and sort this out. Instead I bought Magix Music Maker and spent all my creative time making music.

oculus2.jpg

So now it’s been weeks and I’ve forgotten what I did and where I left off. I strongly suspect that I need to uninstall one or both versions of VS to sort this out. I haven’t even explained to my friend where it all went wrong, and I’m very much wishing I could time-travel back to that one afternoon of foolish half-assery and prevent it from happening.

Which is to say: I can’t write code right now and I have a big mess waiting to be cleaned up when I finally go back to coding.

Sigh.

In any case, the Rift is a very interesting experience. As others have said, this isn’t going to replace traditional gaming in any way. This is something new. It’s fun, it’s stimulating, but to make it work we’re going to have to come up with new kinds of games. I enjoy the Rift, but when I’m in a VR world I have no urge to bunny-hop around and shoot people.

Enjoyed this post? Please share!

Footnotes:

[1] I only need to wear my glasses when I’m going to be driving or otherwise leaving the house.

[2] So the splitter has a total of 3 inputs and 2 outputs.

[3] With several RJ45 cables running to machines elsewhere.

[4] Maybe limit it to one USB plug, and one cable to the camera instead of two.

[5] In real life, your brain cancels out the yo-yo head bob you experience as you climb steps, so it feels basically smooth.


20204Feeling chatty? There are 44 comments.

From the Archives:

  1. swenson says:

    Ah, but VS 2012 is beautiful in so many ways. At my work, we’re pretty loose on what version of VS you’re using (so long as it’s 2010 or higher), and it took me forever to switch to 2012… but now that I have, I regret not doing it sooner.

    At any rate, hope you can get all of that stuff sorted out. Nothing worse than wrestling with recalcitrant software.

    • Matt Downie says:

      Heh. I had to go back and check which version I was using. Turns out I’m still on 2008 Express. Anyone know how hard it would be to update my game projects to use the 2012 version? And why I’d want to?

    • Blake says:

      “but VS 2012 is beautiful”

      Except maybe for all the flat toolbars that don’t do a good job of breaking things up visually.
      At least there’s a registry hack to get toolbars that aren’t ALL IN UPPERCASE because seriously, there’s a reason we weren’t doing that all along.

      • Rick C says:

        You don’t need that hack any longer–as of (I think) Update 3, you can turn it off.

        I don’t know why it induces so much rage in people, though–I saw it, said, “well, that’s annoying,” and then forgot about it.

  2. Cookyt says:

    Oh, the joys of Windows development! I forgot how much I hated coding C or C++ in Windows due, precisely, to how annoying it can be to set up a project in VS, and how the solution files don’t always migrate well between versions.

    • DrMcCoy says:

      That’s why I’m on GNU/Linux, where I can just install gcc and vim and be happy.

      ..And then I’m using autotools, and then a Windows user wants to contribute to my FLOSS project and I have to guide them through installing MinGW. Which is also a horror to set up. :(

      • lethal_guitar says:

        Have you tried CMake? It can generate Makefiles and Visual Studio solutions as needed. IMO the best option for cross platform development. I can see that you wouldn’t really want to switch build systems for a big existing project, but I’d say it’s worth it.

        Oh and yes, Linux (and Vim) is definitely way superior for development!

        • Alan says:

          Working professionally on a big project that converted to CMake, yeah, don’t do that. It’s perhaps the biggest mistake we we’ve made in the last decade, and we’re still suffering for it.

          Can’t speak to using it on a new project. I’m very skeptical of aspects of the design, but I might be a touch biased.

        • DrMcCoy says:

          Yeah, I have tried CMake and I’m really not a fan, for various reasons. I’m not going to go into this, lest this turns into a big rant. :P

          I’m also not a fan of SCons and qmake.

          I’ve come to the conclusion that it might be best to just parse the automake files (the syntax of the subset I use is straightforward) and create Visual Studio project files out of that. ScummVM does something similar, but the ScummVM Makefiles are a bit differently syntaxed. Someone™ would “just” need adapt ScummVM’s create_project. Of course, it doesn’t help that every version of Visual Studio completely changes the project files…

          • Bryan says:

            Attempting to not-rant and potentially failing, but we’ll see: The biggest reason I don’t like CMake is that there’s no standard way to do all the stuff that autoconf does.

            There’s no standard variable to set the install prefix. (–prefix=/usr)

            No standard variable to change the compiler to make it use. (!!!) (CC=foo or CXX=foo)

            There *might* be a standard way to edit the flags passed to the compiler (it’s been a while), but I don’t remember for sure and I wouldn’t be surprised if there wasn’t. (CFLAGS / CXXFLAGS)

            No standard way to add support for optional features or disable features whose autodetect succeeds but you (as the person building the program or library) don’t want to pay the penalty of a dependency for. Or to change where cmake looks for individual libraries’ header files or libs. (–enable-foo / –disable-foo, or –with-foo=XXXX)

            No standard way to get a –help page that even *shows* the options.

            It might be easier for people writing packages (I’m not sure), but it’s *way* harder for people trying to use it to build anything…

            • MaxEd says:

              CMAKE_C_COMPILER and CMAKE_CXX_COMPILER handle CC and CXX, the same goes for CFLAGS. It’s pretty standard and well-documented. The other stuff you mention is also in documentation, though I can’t remember it off the top of my head.

              I, for one, vastly prefer CMake to autotools, because whenever I see an autotools project, I know I’ll have troubles compiling it under Windows, and especially cross-compiling it for Android or Emscripten under Windows. It’s such a pain, that it often easier just to add all sources of library to my CMake project. autotools needs to die.

              Sorry for sounding enraged, but I had a lot of troubles with autotools-based projects lately and learned to love CMake.

              • DrMcCoy says:

                I’m quite the opposite. Whenever I see a project using CMake, I just know I’ll have problems compiling it with my cross-compilers (Windows 32/64 bit and Mac), whereas it’s a breeze with autotools.

                I admit though, there’s worse. Boost’s Jam for example.

            • lethal_guitar says:

              That might have been true for the older versions, but it improved a lot over time. With recent versions, you can do all the things you mention quite easily.
              Generally, CMake 3.x offers a way more declarative and standardized approach than earlier versions.

              As for the “help” page: There is CMake-Gui, which lists all the options for you to click on.

            • > There’s no standard variable to set the install prefix. (–prefix=/usr)
              -DCMAKE_INSTALL_PREFIX=prefix

              > No standard variable to change the compiler to make it use. (!!!) (CC=foo or CXX=foo)
              -DCMAKE_C_COMPILER=foo -DCMAKE_CXX_COMPILER=bar (though IIRC it should pick up your environment variables specified at the time you first ran CMake)

              > There *might* be a standard way to edit the flags passed to the compiler (it’s been a while), but I don’t remember for sure and I wouldn’t be surprised if there wasn’t. (CFLAGS / CXXFLAGS)
              -DCMAKE_C_FLAGS -DCMAKE_CXX_FLAGS (iirc here)

              > No standard way to add support for optional features or disable features whose autodetect succeeds but you (as the person building the program or library) don’t want to pay the penalty of a dependency for. Or to change where cmake looks for individual libraries’ header files or libs. (–enable-foo / –disable-foo, or –with-foo=XXXX)

              Every CMake based project I’ve ever used has this feature; consult the list of variables it uses. (ccmake, the ncurses UI, is great for this. I much prefer toggling flags in ccmake to waving random flags at autoconf and then waiting for the damn thing to barf some random error because the flag was wrong. autoconf is heinously slow)

              > No standard way to get a –help page that even *shows* the options.
              Whats wrong with ccmake ?

              > It might be easier for people writing packages (I’m not sure), but it’s *way* harder for people trying to use it to build anything…

              As someone who has to do complicated things with Automake based projects now and again… like hell it is. Plus, automake projects invariably depend upon a random 5 year old version of automake which isn’t the one I have installed, flatly refuse to work with newer versions, and even if you remove that version check, the autotools maintainers have taken it upon themselves to break backwards compatibility.

              Fuck autotools.

        • Neko says:

          As long as we’re geeking out about build systems: Our big project used to use a combination of Autotools and VS2005/2008 build files and oh man did I hate it. Switching to CMake still involved a bit of arcane trickery but at least it didn’t fall over under a stiff breeze, and we could use the same system across platforms with relative ease.

          Personally I like QMake. It’s less complex than CMake and gets the job done for small projects.

  3. Chamomile says:

    The Oculus seems like the perfect place to iterate on the Gone Home genre. A game of little else but walking through an environment, gathering objects, and slowly putting together a narrative? Add the Oculus and the game gains multitudes and loses almost nothing.

  4. Chris says:

    If you think stairs are bad, just wait till you try the ladders in Half-Life 2. INSTANT acceleration to vertical movement at what feels like 20 miles an hour. It’s completely jarring.

    I dunno how much of the Oculus Share works with the DK2, but there are a lot of interesting examples. If they work, I’d recommend:

    • VR Cinema – a virtual theater that plays movie files from your computer. I had a few Rifftrax .avis sitting around, and it’s REALLY COOL to watch movies in what legitimately feels like a theater from your own home.
    • VR Training – A sneaking game based on Metal Gear Solid’s VR missions. Really simple – just walking around and hitting objectives while staying out of sight. It’s tense and game-y without being an action shooter, and the limited FOV increases tension while peeking around corners feels natural. Pretty swank.
    • Blocked In – More of a… “scene” than anything. You can’t walk around or interact with anything, you just look around at a really cute twist on an old game. Great for selling the idea that just looking around can convey a feeling of a place.
    • UE4 Rollercoaster Demo – Now you can have your own rollercoaster in your home… kinda! Ride around on a Marlow Brigs scale rollercoaster that traverses a gigantic livingroom. It’s pretty fun, and a great way to sell people on the rift.

    And while I have no idea if it works with DK2, if you want to try the thing that got Lindsay and I motion sick for hours (seriously, the stomach pains we were having after trying this lasted for a long time), then try this: https://share.oculusvr.com/app/rift-park

    Everything about Rift Park is wrong. The scales are wrong. The movement is wrong. The speeds are wrong. It’s also glitchy and bugs out so that half the environment disappears some times. Also your “head” isn’t locked in perfectly to the seat it’s attached to, so it feels like even in relation to the wild rides you’re flipping and slipping about. Guaranteed to make you feel sick.

    Finally, I don’t know if you want to drop any more cash on experiences for the Rift, but if you want a complete “game” that’s sort of amazing check out Elite Dangerous. I’ve played it with the DK1, and it was functionally unplayable because the low resolution made all of the text and icons too small to read (which is sort of a deal breaker in a space sim). But despite that I stuck it out long enough to get into some space battles, and it is positively amazing. There’s something about being in the cockpit of a fighter and being able to look up and track the guy you’re after. It’s also much scarier when blaster fire and sparks fill your screen as shots seem like they’re really coming at you. As far as the “gamey” experiences go, this was by far my favorite Rift adventure so far. With the higher res of the DK2 I imagine it’d be even better. It’s still in beta and they have a high-ish pricetag to get access, but still, if you dig stuff like X3 or Freelancer and want to see what a proper game looks like using the rift I’d say give it a go. Beats the motion-sickness induced by Half-life 2 or Team Fortress.

    • ET says:

      So, do you think it’s just that the speeds/distances are wrong, or that it’s a lack of physical feedback* which makes ladder climbing** bad?

      * Not holding the rungs in your hands, no feedback from your feet on the rungs, etc.

      ** And other similar activities.

    • Zak McKracken says:

      This very much sounds like there will be two kinds of games for VR: first person non-action games where you walk about, and vehicle (potentially action) games where you’re steadily seated in a vehicle (car, aircraft, spaceship…). I’m looking forward to dusting off my old joystick. Or better still getting a new one that doesn’t use resistive potentiometers… if such a thing exists. Which it should.

      My personal guess for why the quick walking of ladders seems wrong while quick flying of spacecraft does not: Acceleration. Changing directly from horizontal to vertical movement is unphysical and from the new VR perspective that becomes much more noticeable than it was before. Especially if stairs are modelled as ramps and you just walk towards and up a stairs, you have theoretically infinite acceleration. I wonder if this would get better if there was an arc to join the horizontal floor and the ramp (bonus if that wasn’t a circular arc but vertical acceleration was slowly increased, then decreased again) — I also guess there’s a lot of potential for motion sickness in these things. “True” motion sickness, not caused by VR problems but by the fact that what you do in VR would make you sick in real life, too. And I wonder how much of current non-VR 3D gameplay would fall into that category.

    • Abnaxis says:

      Do you actually own a devkit, or is this experience from all those conventions you go to?

      And if you do own one, is it just early adoption for playing purposes, or are you messing with the idea of doing some design with it?

    • Wes1180 says:

      VR cinema isn’t currently working with the DK2, if you are wanting a similar experience right now you’d want to try something like Riftmax Theater or Infinity Drive-in.

      Also some ride related things: Such as ‘Cyber-Space’.

      Also an interesting thing to note, when I tried the ladders on Half Life 2 I was mostly fine (if I remember correctly) the biggest problem for me in Half Life 2 was when the NPCs bumped into me and it forced me out of the way and of course when you first meet Alyx and you are thrown to the floor by the combine. There seems to be a large variety in how people feel when doing certain things in the rift.

      EDIT: I would also highly recommend SightLine The Chair. as a pretty cool experience in the Rift.

  5. steves says:

    “we’re going to have to come up with new kinds of games”

    I would hope that’s always the case;) But for VR, just updating one of the best, and oldest ones is good enough for me.

    http://kotaku.com/i-just-spent-two-weeks-being-a-space-commander-1622502556
    (yes, I know, Kotaku, but this is good, honest!)

    You are sat (this is important – no motion sickness, or disconnect from actual movement) in the cockpit of a spaceship. With big windows. And a control setup that was designed to be ‘look’ activated from the outset. And you can look down and see a body that may or may not resemble yours, and ‘your’ hands on the joystick + throttle which you really need to be using.

    Space in VR is probably as close as we are going to get to the real thing in our lifetimes.

  6. Tomas says:

    I have had the chance to play around with the DK2 at my university and i can bring you the good news that you don’t have to use the power supply. It is only necessary if you want to plug USB devices into the Rift itself.
    The world of VR is moving fast and researchers i know are trying to find ways of making movement and sound feel natural in a virtual environment.

  7. Peter H. Coffin says:

    Hmmm… Stairs seem to be missing two things from the sound of it: Most games account for stairs/ramps by leaving the forward motion unchanged and simply adding a vertical component. Which essentially speeds up travel by 1/cos(ramp_angle). (Or somthing. I’m two cocktails into the evening and have transcended maths.) And you can’t do that. You have to leave the total movement to the same and split it into rate*cos(ramp_angle) horizontal and rate*sin(ramp_angle) vertical components. The other thing is that people move faster downward than upward, even at controlled rates, and move slower vertically in general. At least until falling sets in…

  8. Dave B. says:

    Shamus, I just saw your tweet about Gordon Freeman seeming to be 6 and 1/2 feet tall. That made me think: I have a friend who’s about that height. I wonder if HL2 would feel more natural to him than it was to you (in that way, at least.)

    Just my idle musings, I guess.

  9. Blake says:

    “I didn’t take note of the changes I made, I didn’t carefully document the errors I was getting, and I didn’t make backups.”

    Ah that sucks. I haven’t had a problem running 2010 and 2012 alongside each other at work (although those aren’t the hippy freeloader edition), at home I only have 2012 express.

    I haven’t really seen many problems upgrading projects from 10 to 12 (certainly not like 8 to 10), mostly just some strange ‘IntermediateOutputPath’ nodes showing up in the project files which meant git kept saying the files were modified when they weren’t (which was fixed by specifying a BaseIntermediateOutputPath in case you run into it).

    In any case I hope reinstalling makes all your problems go away, and if in doubt just use procmon to figure out where it’s actually looking for things instead of were you want it to be.
    Good luck!

    • Richard says:

      I’m very impressed with Qt Creator as my IDE, it’s far better than VS20XX in my experience.

      The idea of splitting “kits” (ie toolchains) and “qmake” (project) files into separate blocks works really well.
      – Most of it get autogenerated as well, with fairly clear options for the sections where the autogeneration options don’t apply.

      It’s made it a lot easier to port projects to new environments and to copy/move them onto other computers than when I’ve tried to do this with VS20XX projects.

      (I’ve not looked at “qbs”. Seems interesting but I don’t have time.)

      It even works very well for non-Qt projects – I’m currently using it to develop for embedded device with no operating system, monitor etc, and setting up the cross-compiler was relatively simple.

      Which shocked me, because last time I tried to use VS to do that (ok, it was Express) it seemed damn near impossible.

  10. 4th Dimension says:

    Basically as others are saying, I too don’t think it will be good for action FPS expiriences, untill at least we figure out some other kind of character control that is more analogue and eliminates acceleration.

    But for us flightsim nuts it will be a godsend. I would love to try this thing in something like DCS:World where you have fully interactable clickable cockpits, with a good joystick.
    We might need to find a way to do focusing and dynamic zoom though. Like let’s say make the center of screens more detailed so we can use those to read small text. After all we don’t really need too much resolution at the perifery of our eyesight.
    Oh no it won’t work since we can move our eyes indipendently from DK. But seriosly, some way to zoom in organically is necessary.

  11. Gobo says:

    My Oculus envy hobby: Use OR screenshots as stereoscopic images, to get a small feel of the real thing. :P

  12. SteveDJ says:

    I don’t suppose Roller Coaster Tycoon is Rift-compatible? :-(

  13. Tim Keating says:

    “I didn’t take note of the changes I made, I didn’t carefully document the errors I was getting, and I didn’t make backups.”

    I can’t recommend strongly enough that you invest some time in learning git, mercurial or some other dvcs. The ability to instantly create a repo around your project, right there on your local system, will totally change the way you think about versioning your work. I fond now that I will only let myself work on a project about a day before I want to get to a good stopping point, git init, and throw my files in there.

    The obvious upside of this is easier rollback, sure; if you’re doing regular commits, you don’t have to look as far back to return to a working state. But I find it also addresses the “what the hell was I doing here?” problem — you can get an idea from your checkin comments, and if necessary you can look at the evolution of the code itself.

    Naturally, you can do this with a client-server vcs like svn, too. I just found that this behavior sort of naturally arose from using git.

  14. Tim Keating says:

    I also want to point out that it is nearly impossible to edit a comment after submitting it if you are in a tablet. So yes, I did notice my typo, but I couldn’t fix it.

  15. kdansky says:

    VS2012: Basically uninstall everything, and re-install it from scratch in the correct order (which I don’t know, but it’s usually VS – VS updates – WinSDK – DirectX SDK – small auto-update patches). Anything else won’t work in my experience.

    New C++ additions: Learn how to use them. make_unique and auto solve like 50% of all annoying issues with C++. Memory management went from a huge pain in the ass to a triviality. Similar things can be said about lambda-functions.

    • AdmiralJonB says:

      I’ve come across this at my work: don’t have VS2010 and 2012 installed at the same time. Something screws up the compilers. There is a fix out there, but I’ve long since forgotten which MSDN article has the patch. For me, it worked to just completely uninstall everything and then install 2012. Mind you, this was the Ultimate version…

      Is make_unique actually implemented? Wasn’t it only recently introduced with the recent 2014 C++ standard? I would think make_shared and shared_ptr should be the ones that we applaud the most rather than unique_ptr.

      I could argue about auto, but that depends on the circumstance. I guess I just hate looking over Matlab code where you don’t have types for function parameters, and where most people don’t document what you should actually be putting in. Just don’t want C++ to go fully in that section. Having auto as a return type (which I think is in the new standard?), well, I can see many problems with libraries that their header files only have auto, and you have no idea what type is being returned when coding. Sorry, a bit of a rant…

      Lambda functions though? Can’t live without them now :)

  16. NotDog says:

    Were either you or Michael Goodfellow using a keyboard to move? Since others suggested that these types of simulations may work better with analog movement, I’m wondering if VR FPSs may work better with console controllers.

  17. D-Frame says:

    In my opinion, the Rift has about zero potential with FPS or similar games. There can be no immersion if your avatar is moving while your real body is actually sitting on a chair. It’s like your head is inside the game, but your body isn’t. It’s cool now because it’s such a new experience, but I’m pretty sure the Rift won’t have much of a future with FPS and the like.
    Games where the Rift really comes to shine are those where you are indeed sitting more or less stationary inside some kind of vessel: Racing games and flight sims. These are the applications that will grant the Rift steady success beyond the current hype, given that the developers realize this.

Leave a Reply

Comments are moderated and may not be posted immediately. Required fields are marked *

*
*

Thanks for joining the discussion. Be nice, don't post angry, and enjoy yourself. This is supposed to be fun.

You can enclose spoilers in <strike> tags like so:
<strike>Darth Vader is Luke's father!</strike>

You can make things italics like this:
Can you imagine having Darth Vader as your <i>father</i>?

You can make things bold like this:
I'm <b>very</b> glad Darth Vader isn't my father.

You can make links like this:
I'm reading about <a href="http://en.wikipedia.org/wiki/Darth_Vader">Darth Vader</a> on Wikipedia!

You can quote someone like this:
Darth Vader said <blockquote>Luke, I am your father.</blockquote>