With last week’s launch of Samsung’s Oculus-powered Gear VR headset, we know two things about our weird future: Number one, virtual reality is indeed a thing. Tech companies will soon be falling over each other to try and sell immersive face computers to the masses. Second, our phones are getting capable enough to power the experience. For developers, this means exciting things. But it also guarantees headaches, especially when Android is involved.
Just ask John Carmack. The Oculus CTO and famed video game programmer recently partook in a Q&A with Gamasutra that’s chock-full of advice for developers looking to delve into mobile virtual reality gaming. His biggest takeaway? Building for Android is a nightmare.
Okay, there’s the normal hell of moving to a new platform–and I gotta say, Android was more hell to move to than most consoles I’ve adopted. Just because of the way Google has to position things across a diverse hardware spectrum, and because Google still doesn’t really endorse native code development–they’d still rather everyone worked in Java. And that’s a defensible position, but it’s certainly not what you want to be doing on a resource-constrained VR system.
So brace yourself: Android setup and development really does suck. It’s no fun at all.
For Carmack, adapting the Oculus operating system to work on Samsung’s new hardware was the first time the seasoned developer (remember Commander Keen?) has worked in the Android ecosystem. So to some extent, the growing pains are natural. But Carmack’s complaints echo not-uncommon gripes about Android development in general, particularly device fragmentation.
In the resource-intensive world of virtual reality computing, Android and other mobile platforms present unique limitations of their own, as Carmack and his colleagues quickly discovered. Power management, for example, is much more challenging on a phone than it is on the PCs for which Carmack has been building games for years.
The power issue is going to be a big battle, and it’s going to be interesting to see because we don’t know yet how many people will like smaller nuggets of entertainment experiences instead of longer-form things. We’re hoping developers make a lot of short, bite-sized nuggets of entertainment because they work well on mobile–they don’t tax the thermal and power so much, and they also have another benefit: Since we don’t have positional tracking on mobile, we know we’re going to cause problems for more sensitive people.
It’s not all bad news for game developers itching to give mobile virtual reality a try. For one thing, testing virtual games on a smartphone that slides into a VR headset is much easier (and more portable) than prototyping games on much bulkier systems.
As Oculus mobile VP Max Cohen spells out in the same interview, features developed for mobile are easily ported over to less restrictive platforms:
One of the great things about the mobile development process is that asynchronous timewarp, for instance, has been implemented on mobile, and that’s going to make its way to the PC SDK as well. So designing within constraints and making a highly optimized VR experience is something that’s useful, even if you have the most high-end PC in the world. What we’ve learned from the mobile development process will pay dividends for developers everywhere.
All things considered, it’s pretty remarkable that our pocket-sized devices are capable of such complex computing tasks, even if the limitations are still painful for developers. But this is just the beginning for VR, which isn’t even being aggressively marketed to consumers yet. We’ll start to get a glimpse at what’s to come at this month’s Oculus Connect conference, which Co.Labs will be covering when it kicks off in Los Angeles on September 19th. As VR inches toward mainstream status, expect the growing pains to continue.