I was really excited to see Apple talk about VR at WWDC this year. It's a sign that Apple can embrace a market it doesn't entirely control, or possibly even fully understand.
Microsoft, Google, and Facebook all now offer some form of AR or VR hardware and software stack, and the ways they're investing in the future of these markets are fairly clear. But I'm still left with a lot of questions about where exactly Apple is headed.
First, let's make it clear what was actually announced:
- Metal 2, an expanded version of Apple's Metal graphics API. Metal 2 now allows developers to bypass the macOS windowing system and render directly to a device — a VR headset, in this case. Super important for low latency.
- Official support for external GPUs. This means developers with lower-end iMacs, or even MacBooks, can get good enough GPU performance to play back VR, with some caveats.
- SteamVR and the HTC Vive now work with the Mac. Valve has been working with Apple on this since last summer, which shows a high level of technical and business confidence in Apple's VR efforts.
- Unreal Engine 4 and Unity, the two most popular development environments for games right now, will support Metal 2 VR development on macOS.
Apple also gave a definition of what it believes to be VR:
What's lacking here is any sort of clear story for consumers. Apple even specifically stated during its VR deep-dive that the external GPUs are primarily targeted at developers. And Apple's splash page description of its VR-ready iMacs is aimed at content makers, not gamers:
VR makes its debut on iMac, with the ability to edit 360° video in apps like Final Cut Pro and create cutting-edge 3D VR content.
So I see two main possibilities here. Either Apple merely wants to support developers and artists in VR, while being content to allow the experiences they create to be mostly consumed on third-party platforms like Facebook's Oculus, Google's Daydream, and PCs running SteamVR. Or Apple has a bigger plan for consumers beyond Metal 2 and external GPUs.
There’s something a little wrong with the first option: right now it's almost silly to develop VR using Metal 2. It's an Apple-specific API that only works on Macs, iPhones, and iPads. Obviously traditional iOS game development, and other apps that depend on GPU acceleration, can benefit greatly from the improvements in Metal 2. But the return on investment for building a full VR title for macOS using Apple's technology would be minuscule — a sliver of an already small market.
A sliver of an already small market
If Apple truly wanted to create the best system for cross-platform VR development, it could embrace Vulkan, which is similar to Metal but also works on Windows and Linux. In fact, Valve uses Vulkan for SteamVR on Linux. It's conceivable that developers who make games in OpenGL or Vulkan for Windows and Linux can port their titles to macOS with a small Metal 2 shim, but something written entirely in Metal 2 is stranded on macOS.
Of course, a majority of developers won't have to focus too much on these details. If you build something in Unity or Unreal Engine 4, both of which have promised to support Metal 2, most of the work of porting the title to various other platforms is solved for you. And it makes sense for these engines to target Metal 2, even without macOS VR, because iOS games are such a huge market. So maybe I'm reading too much into this.
But something tells me this is only Apple's first, developer-focused step into VR, and that the consumer part of the story is still to come. Maybe Apple will release a slide-in VR headset for the upcoming iPhone. Or perhaps something bigger, like standalone AR hardware, is actually in the works.
But even if this just means Apple is going to focus on gamers with affordable, VR-friendly computers, I won't be mad.