Top 5 things every developer should know about VR

Virtual Reality (VR) is the next big thing. There is no question about it. It is one of the big paradigm shifts in software that is happening right now. It requires as radical a shift in thinking, user behavior and applicability as the shift that happened when smart phones became widely adopted. So now is definitely the time for software developers to start exploring the technology and picking up the skills to future proof their careers.

Top 5 things to know about VR.png

However, as with any new technology and paradigm shift there are risks to be aware of, well not exactly all of them can be classed as “risk” maybe “issues” is a better word. Being aware of these issues will mean that a professional can make informed decisions about the time and money she is ready to invest on learning the ropes of this new space. Our recent experiences in working in VR projects has highlighted some of these issues to us and we wanted to share them with you. Here are our top 5 issues list:




1. VR is still locked down to separate islands of technology

VR technology and the relevant hardware as of now is very much a story of closed gardened companies fighting out a turf war. With all the major players in action (Apple, MS, FB, PS, etc.) and with newer disruptive players (MagicLeap, HTC Vive, etc.) this is looking like a very nasty war that just about started. And us developers and of course consumers are in the middle of it. This is going to take a while to resolve, for a winner (if at all) to come out and for some sane standards to emerge for developers to work on. There is still no solid standard for different hardware. And there are very little sign of any emerging. OpenVR is a good contender, but we are probably years away from knowing for sure.

So moral of the story is: any programming skills you pick up expect it to be just a temporary thing, just a window of knowing something about the platform rather than something you can use in real life projects for some time. So our advice is just don’t invest too much time on learning any API set yet.

2. Any hardware you buy today will be obsolete pretty soon

There are a multitude of VR hardware option already available and more coming almost every month. Googling will probably lead you to HTC Vive or Oculus Rift if you aiming for something high end, but all of them are pricey and clunky. With wires coming out like a patient in ICU you know these things won’t last. Even the wireless ones that are just emerging every new design involves changes in the hardware MagicLeap with all it’s hype and billions of dollars of funding churned out to be a disappointment which will soon need to be replaced. This is normal for any ground breaking technology such as VR (everything from computers, flat screen tvs to mobiles went through such a early phase). All of these current hardware will be junk in a year or so.

So moral of the story is: Only buy the hardware if you are OK to throw it away pretty soon.

3. VR first design is still in its infancy

VR (and more importantly XR see below) brings in a completely new take on UX. There is a lot to learn and this is a fast developing space. With very detailed research being done by leading institutions this is very much an area to keep an eye on and invest time on. Unlike the tech stack and the hardware, UX design principles are likely to be much more reusable as the technology matures.

So moral of the story is: Invest time on learning VR design ideas as they evolve.

4. VR sickness is a real problem

This is more from the trenches rather than the HQ like the other ones. After hours and hours of developing, trying, testing and debugging that all software require you’ll be seriously feeling the pain that comes with motion sickness like VR sickness It will lead to headaches at the very least. It gets slightly better over time but it still is a real problem when you are developing in this space. As long as you are aware of it, and you take necessary measures to address it (google will tell you some ideas that work) you should be fine. Our strategy is to use 50% vignette around the periphery during all development and taking breaks between headset sessions. Something else might work for you.

So moral of the story is: Read up about VR sickness.

5. XR will be the ultimate winner

I’ve been talking about VR but in all likelihood VR as we know today will not be around. XR is the more generic term that encompasses Augmented Reality (AR), Mixed Reality (MR) and VR. And it is XR that will what people will be using. VR by itself is just too much of the synthetic world where as AR or MR brings in the real possibility of interacting with real life objects overlayed with synthetic content. Wouldn’t you want to change the color of a room to your mood? :) So XR is the right technology to keep in mind and follow. Your current skills of VR will definitely help you get to XR faster but you should grab every chance to try out XR. MagicLeap may have churned out crappy stuff in it’s 1.0 but it’s always worth checking out their SDK and developer doc.

So moral of the story is: Read up about XR, invest more time on developing for XR if you can.

If I sound ominous and forbidding in this article please forgive me, I definitely don’t mean it. VR is a real exciting technology to get into right now. It’s fun and it’s challenging. We just love it. Here’s our designer (Shihab) imagining himself in the matrix world of VR immersion :)

Shihab_Believes.png



"VIVE Vibe" - making the first VR game

As with the rest of the software world we were excited about the possibilities of VR and getting our hands dirty with some VR code. So it was with a big smile on our face that we took in our first official VR project. And not just any boring "also ran" VR app but a full blown first person shooting game!

vive.jpeg

Nothing compares to writing a game. Add to that the total immersive environment of a HTC VIVE (our first target platform) you have something that literally stops us from living in the reality of this world :)

I'll be writing here about our experiences in this first serious dabble in the world of VR. Here are somethings that we wish we knew from the beginning...

 

 

Virtual reality is a whole new ball game

Duh! That should be obvious. But if you think about a software company that has been around for 14 years, you'll realize that we are a group of people that has seen really wide range of technical innovations. So we just assumed (the wort possible word in our profession - as we learned once again) that most of our experience would translate to this new platform. We soon realized that although coding skills (e.g. Unity or C# skills) translate pretty well but as soon as you hit anything Ux be it GUI, interactions or usability you have to learn everything from scratch. The total immersion of VR and the closeness of that experience of that with everyday human experience leads to a complete rethinking of how the software should interact with the user. Mr. Cooper, a new About face is sorely needed.

Interfaces are your friend

I mean the Interface constructs the programming languages. VR hardware is still at infancy. Just like every other hardware race, several companies are fighting it out with their own set of hardware, SDKs and way of doing things (mostly bugs :) ). So the code you write needs to have a way to be abstracted easily so that you add new hardware support without rewriting the core game logic. And that's where all those OOP skills will come in handy. A simple rule we use is to keep asking "what if I switched to Rift here?" and that helps give perspective. So go for all the IPlayer, IScorePack, Ix you can think of!

Get early feedback

OK this is really ancient advice in software, but we felt that in VR software this is even more true than other spaces. Again, because of the closeness to everyday human experience and the immersion in a VR application (particularly a game with realistic graphics) it's very easy for users to assume they know exactly how (and where) things should be. Gone are the old escape routes that techies used to take like "Windows has their Cancel buttons there" or "right click is always context menu". As soon as we got our first broken version out we found that even team members were complaining about how a certain thing was being picked up or how a door was being opened. And it's obvious, these are things we have learned over years of real experience, there is a universally accepted convention out there for basic things like "picking up an object" and you cannot mess with it! So schedule demos at every point of the project, run usability sessions, even better run Joel's hallway tests at every opportunity you get. 

OK on that note let me leave with some of our "hallway tests" put together in a little video by our design guru.

I'll be sharing more of our VR development experience here, so watch this space!