I was presented with the awesome opportunity to work with the Steam VIVE VR headset. I got to try out a whole bunch of impressively made games and applications, experiencing being able to interact with a virtual environment with the same precision, speed, and finesse as I could when cooking. Trust me; mouse and tablet can't even come close to the speeds you can achieve with a pair of fast hands when you've got tasks as complicated as changing tires or swinging swords. ... OK, maybe that last one's a bit exaggerated...
Recently, I was presented with the even more awesome opportunity to develop an application for the VIVE. I won't get into details (mainly because I'm not allowed to), but basically, I make stuff in Unity and walk around it.
How cool is that?
Sounds hard, doesn't it? You gotta account for head position and controllers, fast movements... heck, how does one even get the headset onto Unity? Don't you need to translate all this coordinate code in raw data format that the sensors pick up, figure out which sensors are broadcasting them, and then paint a picture out for both controllers AND the headset?
Turns out, Valve released a VIVE Unity plugin. Download it. Import into Unity. Plunk, onto the stage. Suddenly, you're walking around a grid world. Didn't even take half an hour.
Woooooah. I can make a whole world in here! One I can actually pretend to touch!
Getting coordinates isn't that hard either. The library already maps to some rendered controller sprites. All you gotta do is get their position and rotation, or even attach other ray-casting objects to them, and lo and behold, you've got a sword, or a gun, or a hand-held nuke launcher firing off into the distance.
And when I say distance, I mean it. Sure, the Legend of Zelda: Breath of the Wild looks like it's got a vast landscape, but one can only imagine the sheer intensity that a virtual reality headset can dish out. You're not really looking at a flat screen in that thing. It uses fish-eye lenses to flush everything out just like you're actually looking at it. Stand on that cliff, and you're actually looking at the grand canyon. It would take forever to walk to the other end.
So where am I going with this? As much as I like advertising VR in general (AYAYAYAWESOME!), I've got a slightly different topic in mind.
Note how I mentioned it was easier than I expected earlier on to get the headset working in Unity. Well, of course the reason for that is because when the library was built, it was built so that anyone could pick it up and do stuff with it. Otherwise, just brute-forcing it to work and not adding any API documents... well, that would be easy to do, but it wouldn't be worth it, would it? Nobody would use it, nobody could do anything with it. At least, not until someone makes a better library to make it easier for everyone.
And that's the thing. We like easy just as much as we like hard. We pursue intense challenges to answer a problem so we'd know the solution, and after presented with the same problem again, suddenly it's easy because we know what we're doing. Along with bragging rights, we can solve the same problem over and over and even extend it to help solve even bigger problems. We like doing hard things, and we like getting easy things done.
Originally, the mere thought of VR was but a dream and a monster of questions. How do we achieve 60FPS on 4000x2000px resolution and still run code processes? How do we detect physical positioning with real-time speed? Now it's done. The technology is out there, and ever since Oculus brought out their first prototype, we've got headsets coming from Microsoft, Sony, Steam, and even third-party competitors looking to sell at cheaper prices!
It's only been a few years; why is VR suddenly so big now? Because it's been made easy. The questions have been answered, the problems have been solved, but most importantly, the ideas have been shared. Now it's easy to do, and so more and more people are doing them. We are attracted to easy. Somebody built a quad-copter in a workshop once and now we've got police training falcons to hunt down malicious drones.
Mind that easy is not always good, though. Doing dishes is easy after weeks of practice. Does that make them any more enjoyable? No, they're a chore; nobody wants to do that. Because cars are so easy to handle now, plenty of drivers not yet ready for the road are getting their license. Because of all these public domain libraries making game development easy, dozens of indie developers are actually getting their inexperienced game-making into the online stores.
OK, no. I never said easy is bad. The fact that more game developers CAN make their own ideas into a game means there are a lot more worlds out there to explore, and at cheaper prices too.
My point is that there are a lot of ambitious individuals out there taking on the brunt of the work to make the same sort of work easy for the rest of us, and they deserve respect. They are the folks that study math because it's fun, who were actually good at social studies, and who didn't take a minute to scrap the dirt off their hands right after plunging them in mud. They worked, and they slaved, and they built their creations, and they threw them up into the air shouting "Here ya go, world!". Big props to you guys! You are simply awesome!
Not only that, but while we definitely should take advantage of these shortcuts, we should not be relying on them to do everything. One should research them; find out how they work, and even improve on them with their own ideas. Unique ideas are going to require some thinking, and without the experience, practice, and training that only application can provide, you're going to end up with something that's already been done before. A shoddy dollar-store version of what could have been a result. Sure, research says it might sell, but you can definitely do better than that.
So go do something difficult, alright? Make the effort, and do it until it becomes easy for yourself later on down the road. You'll thank me for it.
Until next time,