Coding Horror

programming and human factors

The Trap You Set For Yourself

The Dan Ariely books Predictably Irrational and The Upside of Irrationality profoundly influenced the way I design my massively multiplayer typing games. These books offer science in the small about human behavior, and stark insights into user behavior — and by that I mean our own behavior.

The Long Goodbye

All detectives are by definition students of human nature. As the famous fictional detective Philip Marlowe is fond of noting:

There is no trap so deadly as the trap you set for yourself.

We're born pretty darn great at lying to ourselves, and we get progressively better and better at it the older we become. In software development terms, every user lies.

We become experts at lying to ourselves to avoid being functionally crippled on a daily basis by the ongoing fears that:

  • your work does not matter.

  • your life does not matter.

  • nobody cares about you.

  • you aren't good enough.

  • you aren't smart enough.

  • gosh darn it, people don't like you.

Thus, lying to yourself is part of the human condition. Otherwise nobody would be able to get out of bed in the morning.

However, if you have daily internal struggles with self doubt and indecision, you are almost certainly not going to achieve your mission, whatever it may be. I have found that, to a disturbing degree in this world, you have to believe your own hype to succeed.

Unfortunately, this is something that men are better than women at.

And it looks to me like women in general, and the women whose educations I am responsible for in particular, are often lousy at those kinds of behaviors, even when the situation calls for it. They aren’t just bad at behaving like arrogant self-aggrandizing jerks. They are bad at behaving like self-promoting narcissists, anti-social obsessives, or pompous blowhards, even a little bit, even temporarily, even when it would be in their best interests to do so. Whatever bad things you can say about those behaviors, you can’t say they are underrepresented among people who have changed the world.

So how exactly do you suppress your self doubt without eventually becoming an overbearing, axe-grinding … male … zealot? Or, even worse, a character from The Wolf of Wall Street?

One of the odder asides in The Upside of Irrationality is about the 1995 movie First Knight. Which is quite frankly terrible. Don't see it. I'm not even going to link to it. But you should watch the first few minutes of this particular swordfight scene that Ariely highlights:

Mark: How did you do that? How did he do that? Was that a trick?

Lancelot: No. No trick. It's the way I fight.

Mark: Could I do it? Tell me. I can learn.

Lancelot: You have to study your opponent, how he moves, so you know what he's going to do before he does it.

Mark: I can do that.

Lancelot: You have to know that one moment in one fight, when you win or lose. And you have to know how to wait for it.

Mark: I can do that.

Lancelot: And you have to not care whether you live or die.

Mark: (stunned silence)

The way Lancelot motivates himself to get past self-doubt in combat is not to care whether he lives or dies.

I don't mean this in the glib way of saying you should stop caring what anyone else thinks. Obviously we care what other people think. Not caring what other people think of us and what we do is the path of the narcissist, the sociopath, and the insane. That's giving up.

As Ariely says:

Lancelot fights better than anyone else because he found a way to bring the stress of the situation to zero. If he doesn’t care whether he lives or dies, nothing rides on his performance. He doesn’t worry about living past the end of the fight, so nothing clouds his mind and affects his abilities — he is pure concentration and skill.

The opinions of other people matter, but they are the traps we set for ourselves. To get past our collective prison of self doubt – am I doing the right thing? Do I even know what the right thing is any more? – concentrate on the daily routine of doing what you enjoy, what you believe in, what you find intrinsically satisfying.

This is what your life is: whatever it is you get up to do every single day. Stop stressing out about the long term stuff and focus on improving that, and you too might eventually find you don't want to live forever.

[advertisement] Hiring developers? Post your open positions with Stack Overflow Careers and reach over 20MM awesome devs already on Stack Overflow. Create your satisfaction-guaranteed job listing today!
Discussion

10 Years of Coding Horror

In 2007, I was offered $120,000 to buy this blog outright.

I was sorely tempted, because that's a lot of money. I had to think about it for a week. Ultimately I decided that my blog was an integral part of who I was, and who I eventually might become. How can you sell yourself, even for $120k?

I sometimes imagine how different my life would have been if I had taken that offer. Would Stack Overflow exist? Would Discourse? It's easy to look back now and say I made the right decision, but it was far less clear at the time.

One of my philosophies is to always pick the choice that scares you a little. The status quo, the path of least resistance, the everyday routine — that stuff is easy. Anyone can do that. But the right decisions, the decisions that challenge you, the ones that push you to evolve and grow and learn, are always a little scary.

I'm thinking about all this because this month marks the 10 year anniversary of Coding Horror. I am officially old school. I've been blogging for a full decade now. Just after the "wardrobe malfunction" Janet Jackson had on stage at Super Bowl XXXVIII in February 2004, I began with a reading list and a new year's resolution to write one blog entry every weekday. I was even able to keep that pace up for a few years!

Janet Jackson clothing malfunction

The ten year mark is a time for change. As of today, I'm pleased to announce that Coding Horror is now proudly hosted on the Ghost blog platform. I've been a blog minimalist from the start, and finding a truly open source platform which reflects that minimalism and focus is incredibly refreshing. Along with the new design, you may also notice that comments are no longer present. Don't worry. I love comments. They'll all be back. This is only a temporary state, as there's another notable open source project I want to begin supporting here.

It is odd to meet developers that tell me they "grew up" with Coding Horror. But I guess that's what happens when you keep at something for long enough, given a modest amount of talent and sufficient resolve. You become recognized. Maybe even influential. Now, after 10 years, I am finally an overnight success. And: old.

So, yeah, it's fair to say that blogging quite literally changed my life. But I also found that as the audience grew, I felt more pressure to write deeply about topics that are truly worthy of everyone's time, your time, rather than frittering it away on talking head opinions on this week's news. So I wrote less. And when things got extra busy at Stack Exchange, and now at Discourse, I didn't write at all.

I used to tell people who asked me for advice about blogging that if they couldn't think about one interesting thing to write about every week, they weren't trying hard enough. The world is full of so many amazing things and incredible people. As Albert Einstein once said, there are two ways to live your life. One is as though nothing is a miracle. The other is as though everything is a miracle.

Watchmen page

I wasn't trying hard enough. I had forgotten. I can't fully process all the things that are happening to me until I write about them. I have to be able to tell the story to understand it myself. My happiness only becomes real when I share it with all of you.

This is the philosophy that underlies Stack Overflow. This is the philosophy that underlies Discourse. These are all projects based on large scale, communal shared happiness. Love of learning. Love of teamwork. Love of community.

Love.

For the next decade of Coding Horror, I resolve to remember how miraculous that is.

[advertisement] How are you showing off your awesome? Create a Stack Overflow Careers profile and show off all of your hard work from Stack Overflow, Github, and virtually every other coding site. Who knows, you might even get recruited for a great new position!
Discussion

App-pocalypse Now

I'm getting pretty sick of being nagged to install your damn apps.

This-website-has-an-ipad-app

XKCD helpfully translates:

Xkcd-download-our-app

Yeah, there are smart app banners, which are marginally less annoying, but it's amazing how quickly we went from "Cool! Phone apps that finally don't suck!" to this sad, eye rolling, oh-great-of-course-you-have-an-app-too state of affairs.

Four years, give or take a few months, if you were counting. So what happened?

Millions of pointless apps

Your platform now has a million apps? Amazing! Wonderful! What they don't tell you is that 99% of them are awful junk that nobody would ever want.

Let's start with the basics. How do you know which apps you need? How do you get them installed? How do you keep them updated? How many apps can you reasonably keep track of on a phone? On a tablet? Just the home screen? A few screens? A dozen screens? When you have millions of apps out there, this rapidly becomes less of a "slap a few icons on the page" problem and more of a search problem like the greater web. My son's iPad has more than 10 pages of apps now, we don't even bother with the pretense of scrolling through pages of icons, we just go straight to search every time.

Walledgarden-cover

The more apps out there, the more the app stores are clogged with mediocre junk, the more the overall noise level keeps going up, which leads directly to this profligate nagging. Companies keep asking how can we get people to find and install our amazing app instead of the one question they really should have asked.

Why the hell are we building an app in the first place?

I want to know who exactly is going to all the trouble of installing the McDonalds app on their device instead of simply visiting the McDonalds website in the browser as needed. What problem does that app solve for french fry enthusiasts that it needs to be permanently installed on your device? Why are they giving away free Big Macs just to get people to install this thing?

Fragmentation into parallel and incompatible app worlds

It was so much easier when iOS was totally dominant and the iPhone was the only player. Before the iPad and tablets. Before Android got decent in 4.0 and Google standardized the Play store. Now there are, at minimum, four radically different mobile platforms that every serious app player has to support:

  1. Android phone
  2. iOS phone
  3. iOS tablet
  4. Android tablet

(For extra credit: how many of these are actually "mobile"?)

Unless you're careful to build equivalent apps in all those places, it's like having multiple parallel Internets. "No, sorry, it's not available on that Internet, only the iOS phone Internet." Or even worse, only on the United States iOS phone Internet.

If you're feeling generous, we should technically include Windows 8 and Windows Phone in here too. All with different screen dimensions, development stacks, UI guidelines, and usage patterns. Oh and by the way, that's assuming no other players emerge as serious contenders in the computing device market. Ever.

At the point where you find yourself praying for a duopoly as one of the better possible outcomes, that's … not a good sign.

Paying for apps became a race to the bottom

Buying an app is the modern Support Your Favorite Small Software Vendor Day. I was always fine with dropping ten or twenty bucks on software I loved. I'm a software engineer by profession; apps are cheaper so I can buy even more of them.

Have you ever noticed that the people complaining about apps that cost $3.99 are the same people dropping five bucks on a cup of fancy coffee without batting an eyelash? Me too, and I'm with the coffee people. $3.99 for your app? Outraaageous!

Now, contrast this with your app, Mr. Developer. I don’t know you from Adam. You’re pitching digital Instant Refresher Juice 1.0 to me in the form of a new app. The return I’m going to get is questionable at best. I already have 30 apps on my phone, some of them very good. Do I need another one? I don’t use the 30 I have. The experience I’m going to get from adding one more app is not trustable. I’m assured of nothing. Last week I bought an app for 99 cents and it was terrible. I used it once, for 15 seconds. I could be shoving $1 straight down the toilet again for all I know. Your app, good sir, is a total gamble. Sure, it’s only a $1 gamble… but it’s a gamble and that fact matters more than any price you might place on it.

For some reason I don't completely understand, mobile app review systems are frequently of questionable value, so all you really have to go on are the screenshots and a bit of text provided by the developer.

Imagine you bought your coffee, only to open the lid and find it was only half full, or that it wasn't coffee at all but lemonade. If only 1 in 5 cups of coffee you bought actually contained coffee, a $3.99 price for that coffee starts to seem unreasonably high. When you buy an app, you don't really know what you're going to get.

Turns out, the precious resource here isn't the money after all. It's your time. In a world of millions of apps, free is the correct and only price for most apps except those rare few of extreme, easily demonstrable value – probably from well known brands of websites you already use daily. So hey, everything is free! Awesome! Right? Well…

When apps are free, you're the product

I know, I know, I'm sick of this trite phrase too. But if the market is emphatically proving that free is the only sustainable model for apps, then this is the new reality we have to acknowledge.

Geek-and-poke-pigs-free

Nothing terrifies me more than an app with no moral conscience in the desperate pursuit of revenue that has full access to everything on my phone: contacts, address book, pictures, email, auth tokens, you name it. I'm not excited by the prospect of installing an app on my phone these days. It's more like a vague sense of impending dread, with my finger shakily hovering over the uninstall button the whole time. All I can think is what shitty thing is this "free" app going to do to me so they can satisfy their investors?

For the sake of argument, let's say the app is free, and the developers are ethical, so you trust that they won't do anything sketchy with the personal information on your device to make ends meet. Great! But they still have to make a living, don't they? Which means doing anything useful in the app requires buying three "optional" add-ons that cost $2.99 each. Or there are special fees for performing certain actions. Isn't this stuff you would want to know before installing the app? You betcha. Maybe the app is properly tagged as "offering in-app purchases" but the entire burden of discovering exactly what "in-app purchases" means, and how much the app will ultimately cost you, is placed completely on your shoulders. You, the poor, bedraggled user.

The app user experience is wildly inconsistent

Have you ever tried actually using the Amazon app on iOS, Android, and Windows? iOS does the best, mostly because it's been an app platform for longer than the others, but even there, the Amazon app is a frustrating morass of missing and incomplete functions from the website. Sure, maybe you don't need the full breadth of Amazon functions on your phone, though that's debatable on a tablet. But natural web conveniences like opening links in new tabs, sharing links, the back button, searching within the page, and zooming in and out are available inconsistently, if at all.

The minute you begin switching between platforms – say you use an iOS tablet and an Android phone and a Windows 8 touch laptop, like I do – you'll find there are massive differences between the Amazon apps (and the eBay apps, and the Netflix apps, and the..) on these different platforms. At some point, you just get fed up with all the inconsistencies and oddities and quirks and say to hell with these apps, can I please just use the website instead?

Now, if your website is an awful calcified throwback to 2003, like eBay, then the mobile apps can be a valuable opportunity to reinvent your user interface without alienating all your existing users. If there's one thing I love about tablet and phone design it's that their small screens and touch interfaces force people to think simpler. This is a good thing. But if you don't eventually take those improvements home to the mothership, you're creating two totally different and incompatible UIs for doing the same things.

It seems like a fool's errand to dump millions of dollars of development time into these radically different, siloed app platforms when Amazon could have spent it improving their website and making that experience scale a bit better to every device out there.

The World Wide App

But that's not an option, because apparently the web is dead, and mobile apps are the future. I'm doing my best to resist a sudden uncontrollable urge to use my Ledge Finder app to find the nearest ledge to jump from right now.

The tablet and phone app ecosystem is slowly, painstakingly reinventing everything I hated about the computer software industry before the web blew it all up. Even fans are concerned:

I’m waiting for something that will unify the world of apps and make manually going to an App Store to find a new app as weird as typing in a URL to find a new website. My bet is that this won’t be Facebook. Instead, I would not bet against some young upstart, perhaps one inspired upon reading about a $19 billion deal, to go heads-down and come up with something crazy.

I'll have more to say about this soon, but I expect there to be an explosion of new computing devices all over the world in the next few decades, not a contraction. Sometimes the craziest solution is the one that's been right there in front of you the whole time.

[advertisement] Hiring developers? Post your open positions with Stack Overflow Careers and reach over 20MM awesome devs already on Stack Overflow. Create your satisfaction-guaranteed job listing today!
Discussion

Complaint-Driven Development

If I haven't blogged much in the last year, it's because we've been busy building that civilized discourse construction kit thing I talked about.

Civilized-discourse-construction-kit-inc

(Yes, that's actually the name of the company. This is what happens when you put me in charge of naming things. Pinball machines, people, what's the difference? I've apologized to Bill Budge already.)

So if you, like my investors, are wondering why this process took a whole entire year, I should explain how I build things, or at least, how we built Stack Overflow and Stack Exchange and now Discourse:

  1. Do a ton of detailed research on everything out there in your space. The successes: what are they getting wrong? The failures: what did they get right? Nobody should know more about the history of your area than you do. Have a story that makes sense, something you believe in, and more importantly, a story you can get others to believe in.

  2. Based on this research, assemble a team and build the minimum viable product that does something useful. If you need seed funding, this is the time to get it, so I hope you're pretty good at all that stuff in step 1, and maybe famous too, and ideally already successful as well, otherwise you are screwed.

  3. Have your team and yourself start using that minimum viable product, every day, all day long. This is way more than mere software development: it's your whole life. If you aren't living in the software you're building, each day, every day, all day … things are inevitably going to end in tears for everyone involved. And honestly, if I have to explain this to you, guess what? You're screwed.

  4. Launch a brief closed beta and get feedback from your Special Internet Friends™ on what you've built so far. I know what you're thinking: Friends! Damn it! I knew those things would be useful to me at some point! Listen to all their feedback with an open mind, no matter how dumb it probably is. Identify and fix everything major that comes up. Your product will still be terrible, but it'll be slightly marginally less terrible, and you'll now be slightly marginally less screwed than you otherwise would. (This is what we business experts call a "competitive advantange". Look it up.)

  5. Rapidly get to a public launch. It will suck, but you will ship it anyway. Don't screw up the basic logistics of the launch. You know what I'm talking about because you've seen those sad launches. Don't be those companies. Don't be those teams. Don't worry, you'll have ample time to screw everything up royally in the next step.

  6. Hey, remember all those brilliant ideas you had based on all that painstaking, detailed research you did in step 1? Turns out once you put them in front of actual honest-to-god real world users they were all … completely … wrong. Now spend the next year doing nothing but fixing all your idiotic screwups and stupid mistakes.

  7. ???

  8. Profit!

I never said it was a good plan for building software, but hey. Y'know. It's a plan.

I-love-it-when-a-plan-comes-wait

Each one of those steps is worthy of a blog entry in its own right, but it's step six that I want to focus on today because in my opinion that's the most critical part of this whole so-called "plan". I like to refer to this phase as complaint driven development:

  • Get your software in front of as many real users as you can.
  • Listen to all the things they complain about. It will be… a lot.
  • Identify and fix the top 3 things people keep repeatedly complaining about.
  • Do it again.

Now, we have a bit of an unfair advantage here because Discourse is discussion software. We host the discussions about all the things that are wrong with Discourse … on Discourse itself. But that's also why we built an open source discussion platform in the first place – my deeply held belief that actually listening to your customers should matter to your business.

Provided you're equipped to listen to your customers, complaint driven development isn't that difficult. Until you get deep into a multi-year design, you're dealing with fairly obvious, easy to fix complaints from users. You just have to be out there listening. As Steve Krug says in Don't Make Me Think:

You don't need to find all the problems. In fact, you'll never find all of the problems in anything you test. And it wouldn't help if you did, because of this fact:
You can find more problems in half a day than you can fix in a month.

You'll always find more problems than you have the resources to fix, so it's very important that you focus on fixing the most serious ones first. And three users are very likely to encounter many of the most significant problems related to the tasks that you're testing.

For example, we launched Discourse with a requirement that all topic titles and bodies be above a certain minimum character length, because we believe that extremely short posts and particularly titles aren't conducive to actual conversation. Philosophically, this is an important default for us, because it strongly relates to our core mission of building software that helps cultivate meaningful conversation on the Internet.

Unfortunately, users hated it:

I think it's especially annoying that there's no indicator of how many characters that you have to type. You only have whether or not the "Reply" button is greyed out or not, and not all users will realize that it's greyed out at first. Even then, if you click on the reply button it can bounce back on you if your post was mostly white-space. It's annoying as hell.

This was one of the consistently strongest bits of early feedback we got. So in the first 7 days after launch we quickly added a real time character count to the bottom right of the editor.

Discourse-character-count-1

I thought that'd help. It didn't. The complaints about our terrible, awful, onerous default title and body length restrictions kept pouring in. So we experimented with ways to make these requirements clearer, by using a red border, or a red background on the fields.

Discourse-character-count-2

Discourse-character-count-3

We deployed all of the above and more. Complaints did not abate one bit. Now this is a configuration setting, if you want the minimum title and body length to be 1 character in your community, it's trivially settable via a web browser in about 15 seconds. Frankly I started getting really sick of hearing all the complaints about the setting.

So we finally deployed the nuclear option: bouncy error dialogs right next to the field as soon as they lose focus.

Discourse-character-count-4

Since that change, I haven't heard word one about our terrible, onerous, awful default body and title character limit policies. Not one. Single. Complaint.

So that's the sort of thing we've been doing post launch, each day, every week, for the last year. It took us a full year of complaint driven development to get to software worth using. And even though we are now cautiously accepting customers, we're still practicing complaint driven development every day, just perhaps weighted a bit more heavily towards the people actually paying us money.

It's true that gathering feedback from your community can be hard work. And 90% of the feedback you'll get will be terrible for a whole host of reasons. It's a lot easier to imagine some heroic expert swooping in and magically blessing you with the correct answer. Well, good luck with that fantasy. The only thing I've ever seen work is getting down deep and dirty in the trenches with your users, communicating with them and cultivating relationships. That's how you suss out the rare 10% of community feedback that is amazing and transformative. That's how you build a community that gives a damn about what you're doing – by caring enough to truly listen to them and making changes they care about.

[advertisement] Stack Overflow Careers matches the best developers (you!) with the best employers. You can search our job listings or create a profile and even let employers find you.
Discussion

The Road to VR

A month after I wrote about John Carmack, he left id Software to become the CTO of Oculus. This was big news for two reasons:

  1. Carmack founded id in the early 90s. An id Software without Carmack is like an Apple without Woz and Jobs. You wouldn't leave the prestigious company you founded unless you had some pretty compelling new dreams to pursue.

  2. Oculus is the company many are betting will break VR headsets into the mainstream. And even if they don't manage to pull that off, they are now the most credible contender to make serious headway towards consumer VR the industry has ever seen.

Virtual reality is the stuff of programmer legend. Every software engineer that's ever read Snow Crash (or more recently, the excellent Ready Player One) has dreamed of jacking into the metaverse. But why now? Well, if you think of it in very coarse terms as strapping two smartphones on your face and writing clever glue software, modern consumer VR is a natural outcome of what Chris Anderson calls the "peace dividend of the smartphone wars":

It's hard to argue that we're not in an exponential period of technological innovation. The personal drone is basically the peace dividend of the smartphone wars, which is to say that the components in a smartphone – the sensors, the GPS, the camera, the ARM core processors, the wireless, the memory, the battery – all that stuff, which is being driven by the incredible economies of scale and innovation machines at Apple, Google, and others, is available for a few dollars. They were essentially "unobtainium" 10 years ago. This is stuff that used to be military industrial technology; you can buy it at RadioShack now. I've never seen technology move faster than it's moving right now, and that's because of the supercomputer in your pocket.

It's no coincidence that another programming legend, Michael Abrash, is also head over heels in love with VR. He worked with Carmack on Quake, and joined Valve software in 2011. His recent treatises on VR are practically religious tomes – "excited" doesn't even begin to cover it:

I apologize that these are both PDFs, but like everything else Abrash writes, they are amazing. You should read them. Closely. I don't call him one of the best technical writers I've ever encountered for nothing. If you find these interesting – and if you don't, I will personally drive to your house and pull your damn geek card myself – you should also dip into his blog, which drills into the specific challenges VR presents.

I thought VR would be at best a novelty in my lifetime. I remember playing Dactyl Nightmare at a storefront in Boulder, Colorado in the mid 90s.

If nothing else, it is abundantly clear that even after all these years, VR presents deep, hairy technical challenges even on today's insanely fast, crazily powerful hardware. That's exactly the sort of problem suited to the off-the-charts skill level of legendary programmers like Abrash and Carmack. Having both of these guys working on the newest Oculus Rift prototype with an enthusiasm I haven't felt since the early 90's means we could be on the verge of a Doom or Quake style killer app breakthrough in VR.

Oculus-rift-crystal-cove

There's no shortage of breathless previews, such as this one at Gizmodo which ends with

But if the original Oculus was a proof of concept, this model is proof that the concept is genius. There's zero doubt in my mind that when the final version of this device comes out it is going to change the world. For me, today, already has.

I'm optimistic about the next generation of Oculus Rift. But cautiously so.

Thanks to a friend, I had an opportunity to borrow the older Oculus Rift developer kit. And to be honest … I wasn't that impressed.

  • It's a big commitment to strap a giant, heavy device on your face with 3+ cables to your PC. You don't just casually fire up a VR experience. It takes substantial setup and configuration to get it ready. And even after configuring it, entering and exiting that VR experience is a far cry from quickly sitting down in front of a TV and grabbing that extra controller, or turning on a tablet.

  • Demos are great, but there aren't many games in the Steam Store that support VR today, and the ones that do support VR can feel like artificially tacked on novelty experiences. I did try Surgeon Simulator 2013 which was satisfyingly hilarious.

  • Having your eyes so close to the screens means the display is effectively very low resolution. And I mean extremely low resolution; I'm talking literally 320x200 type stuff. Everyone talks about the "screen door effect" which is the actual matrix of pixels. I personally found it very distracting, probably the number one thing that bothered me about the experience. Any kind of text was basically unreadable. The prototype is only 720p though, whereas the newer models will be 1080p. That will help, but the resolution problem was so severe to me that I'm not sure it'll be enough.

  • VR is a surprisingly anti-social hobby, even by gamer standards, which are, uh … low. Let me tell you, nothing is quite as boring as watching another person sit down, strap on a headset, and have an extended VR "experience". I'm stifling a yawn just thinking about it. I suppose games could present a friendlier set of data on the screen for others to spectate while sending a different set of data to the VR headset, but most of the games we played showed the actual VR screen, which is extreme distort-o-vision to the naked eye. Not really something you can watch or enjoy.

  • Wearing a good VR headset makes you suddenly realize how many other systems you need to add to the mix to get a truly great VR experience: headphones and awesome positional audio, some way of tracking your hand positions, perhaps an omnidirectional treadmill, and as we see with the Crystal Cove prototype, an external Kinect style camera to track your head position at absolute minimum. Eventually maybe even wear a suit to track your whole body. Notice how quickly we get into geez-this-is-a-lot-of-equipment territory.

The Oculus Rift prototype was an excellent and interesting and worthwhile experience, don't get me wrong, but it was more of a tech demo than anything else. It felt a long way from something that I'd be comfortable donning on a regular basis.

I'll leave you with Michael Abrash's summary:

  • Compelling consumer-priced VR hardware is coming, probably within two years
  • It’s for real this time – we’ve built prototypes, and it’s pretty incredible
  • Our technology should work for consumer products
  • VR will be best and will evolve most rapidly on the PC
  • Steam will support it well
  • And we think it’s possible that it could transform the entire entertainment industry

But that hardly does it justice; read the entire presentation (pdf).

If you want some of the hardest practical problems in computer science to work on, bringing VR to the world is as ambitious (and fun!) a goal in software and hardware engineering I can think of. So like any proper card-carrying geek, I'll certainly be ordering the new Crystal Cove model of Oculus Rift as soon as it's available.

It's a start. Maybe a big one.

[advertisement] Hiring developers? Post your open positions with Stack Overflow Careers and reach over 20MM awesome devs already on Stack Overflow. Create your satisfaction-guaranteed job listing today!
Discussion