Developers fear for Mac gaming as Apple deprecates OpenGL support

Apple held its annual WWDC event in San Jose today, and there was plenty of exciting news: macOS 10.14 Mojave, iOS 12, watchOS 5, tvOS 12, and more were announced. But while the latest macOS update has some great additions, like a night mode, one worrying change was included in the official documentation.

According to the official 'What's New in macOS' page, Apple is deprecating support for OpenGL and OpenCL with the release of macOS 10.14. If you're not familiar with developer terminology, deprecation means the feature will continue to work, but will not be supported moving forward and could break. Here's how Apple describes the change:

"Apps built using OpenGL and OpenCL will continue to run in macOS 10.14, but these legacy technologies are deprecated in macOS 10.14. Games and graphics-intensive apps that use OpenGL should now adopt Metal. Similarly, apps that use OpenCL for computational tasks should now adopt Metal and Metal Performance Shaders."

Apple introduced Metal, its proprietary low-level 3D graphics API, in 2014. As such, every game and 3D application designed for Macs before that point uses OpenGL. Many games and apps continue to use OpenGL, since it is open-source and cross-platform (thus, developers can re-use the same code). Apple has supported OpenGL since the late 90's.

The move has attracted criticism from both users and game developers, partly because Apple does not officially support the Vulkan API on macOS (unofficial workarounds do exist). Vulkan, the successor to OpenGL, is also open-source and cross-platform.

Designer Rami Ismail of Vlambeer, best known for Nuclear Throne and Luftrausers, tells PC Gamer that while the news isn't disastrous, it isn't good, either. "With deprecation, abandonment can vary from 'soon' to 'never', so until we have information on that, we can't really say," he said. "All we know is Apple seems to have shown intent to rid itself of OpenGL in favor of its own graphics API, Metal. The problem with Metal is very similar to the problem with DirectX: it's not cross-platform.

"It's not doomsday, it's more like Apple building a giant EMP machine and saying 'we might or might not use this.' The worst that's going to happen is old stuff will break, and our engines and libraries will grow a bit to support both Direct3D and Metal. Not having a clear guideline for future actions Apple might take in this regard isn't very good for developer confidence, I'd guess, and not having a single cross-platform graphics API is just a pain." 

Programmer Alex Austin is worried about the extra work that porting to Mac may require after this change. "Right now I develop games on Windows, and porting to Mac or Linux doesn't take more than a couple hours usually since all my code is portable," Austin said. "But I already had issues with Mac's OpenGL support. It only supports version 2.0 or 3.3, so if you're using 2.0 you can't use any extensions from higher versions, so I had to rewrite all my rendering to use only 3.3. I'm not going to spend any time on Metal because Macs are a pretty small percentage of the market and really probably not worth it even now. I just do it because I try to support fans if I can." 

Ismail agreed that this change will likely make Mac a more difficult and less appealing platform in general. "It definitely doesn't help," he said. "If you wanted to make a game that was cross-platform, you just ensured you used OpenGL, or ported to OpenGL. For developers that are entrenched in OpenGL for portability, this will basically mean that OpenGL will continue working on Windows, which is the largest market—and as such, the financial impetus to switch isn't pressing."

It's not clear at this point if Apple will completely remove OpenGL support from a future macOS release, or if the company is simply pushing developers to adopt its Metal API without real plans to end OpenGL support. Several major Mac games already use Metal, including Dota 2, Rise of the Tomb Raider, Bioshock Remastered, and Fortnite.