For fans of the virtual, reality has come a long way. In 2016, we’re living in a reality where not only virtual reality, but also augmented reality applications are commonplace, and hardware for supporting these types of applications is everywhere.

As is typical of new technologies, only after they have arrived in the marketplace has the software development process behind them begun to simplify and coalesce into a more manageable set of tools and practices.

Or, at least, they’re supposed to. The blunt edges and splinters along the sides of the VR development process are still there: They’re just being supplanted by more and more abstractions from third parties.

(Related: NVIDIA focuses on helping developers with virtual reality challenges)

Take, for example, 3D game development. Keith Kaisershot, programmer and self-styled “evangelengineer” at Other Ocean, said that in the early days of VR SDKs, things were different. The Oculus Rift’s early development kits, he points out, were open source from top to bottom.

“On the order of every month or so they’d come out with a new revision of the SDK,” said Kaisershot. “Early on it was very open. Oculus gave away all their source code. When they cut off support for the Mac, for instance, it didn’t matter. I did the first version of VRTron (a light cycle racing game); you could take their code and write the necessary distortion shader for whatever platform you wanted. I did an Intel Mac version. In fact, the Mac G4 my dad has supports OpenGL and shaders. That supported the Oculus Rift. [Old Oculus SDKs were] never going to support the Oculus on PPC Mac, but I could have done it.”

That changed, however, when Oculus introduced its non-GPL runtime. “They created the runtime and took that from the developer,” said Kaisershot. “That part isn’t open source. It became a little easier and little harder in different ways. It was an API call to get things like the user’s height, or the distortion mesh. It was less calls I had to make on the game side to make VR work.

“On the flip side, there were different issues. Not having source code, and doing a project like VRTron, it becomes more tricky to integrate that code into a GPL project. I can’t do that when Oculus has a close sourced runtime.”

For GLtron, the progenitor of VRTron released under the GPL, Kaisershot had to seek an exemption from the original author, who was happy to give it. This plan does not work, he said, when trying to port more popular games like Quake or the Marathon remake, Aleph One. Microsoft and ZeniMax, he said, will not grant GPL exemptions because they compete with Oculus.

Wesley Adams, who is in charge of the games market at Autodesk, said that the big trend in VR right now is the abstraction of device-specific SDKs. Developers don’t want to write their software separately for the Galaxy, Oculus, Sulon Cortex and Vive at the same time, he said.

“From a tools maker perspective,” he said, “it shows we can take more of those concerns and take care of them on the back end without needing a user to be so technically knowledgeable to go in and figure out the nuances. [Our] Stingray [VR game engine] makes the process of getting things onto a platform pretty simple, with one-click deployment options for Xbox or PlayStation 4. That’s the hurdle for those platforms.”

Optimization is big
Andrew Grant, product manager for the games team at Autodesk, said that a big part of VR development is optimization. “Performance is a big thing here. It’s extremely important in VR because if performance is not good, you literally make your customer sick. It’s about having good tools to find those performance gaps, figuring out how we can get the maximum performance at maximum resolution and avoiding the aliasing and sparkling. Tools to debug those situations are important,” he said.

Indeed, Kaisershot agreed that his current work with VR amounts to, basically, ticking a box in Unity that turns on VR support. It’s much easier than the early days, he said. That doesn’t mean this is the end-all be-all, however. Instead, he looked to a major figure in the PC gaming world to help solve the problems of cross-platform VR development: Valve Software.

Valve is the company behind Steam, the PC game sales platform that gives the company around a 25% cut of all game sales. As a result, Valve’s plans for VR involve an open standard for the resulting games coming to the Steam platform for sale. Valve has already bet heavily on the HTC Vive, selling the device inside the Steam Store.

When it comes to OpenVR, however, Valve is open to everyone’s platforms. “What makes OpenVR so nice is it doesn’t matter what headset you have if you use OpenVR, because Valve is about the software,” said Kaisershot. “They don’t care what headset you get because OpenVR is going to—they hope—tie you to Steam. They get a cut.”

Kaisershot said the Valve approach is more familiar to developers, who favor 3D abstractions such as those found in Direct3D and OpenGL. “If you’re a developer and you want to support VR, you don’t want to go get the Oculus SDK or Razer’s SDK or Google’s SDK to integrate every single headset,” he said. “You want something that gives you OpenGL. You write it once and it runs on these hardware vendors. That’s what OpenVR does. I think going forward, I want to use OpenVR for everything I am doing, because I don’t want to have to hunt down these SDKs.

“I think the interesting thing of how we’re looking at VR now is that it’s more consumer-friendly,” said Auto­desk’s Adams. “When prices come down, that makes it more viable for more people. I have a background in serious games. These guys have been looking at this technology for quite a while. I think we can expect is every other industry will be trying to figure out how applicable this is to them.”

Adams pointed out that Autodesk offers numerous 3D creation apps, and not all of them are for games and movies. “Autodesk is in architecture and building construction. There are so many other places where being put into the experience directly will change things for you. Whether it’s looking at a building before it’s built, or seeing a product virtually in front of you, it will be beneficial to people and move out into training of all kinds. A driving simulator is easy to see as a small jump forward. Medical training in VR is just the next step. It’s going to revolutionize how you experience your training, but it’s just the next leap of that thing that exists now,” he said.

About Alex Handy

Alex Handy is the Senior Editor of Software Development Times.