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 (opens in new tab), 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 (opens in new tab).
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 (opens in new tab)). Vulkan, the successor to OpenGL, is also open-source and cross-platform.
feeling conflicted about mojave opengl deprecationone hand: metal is a really, really good graphics API and other gfx people should learn itother hand: opengl is the common language of all graphics programmers and this decision alienates macOS further as a gaming platformJune 4, 2018
Designer Rami Ismail (opens in new tab) 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."
If this happens it will be the end of any of my games supporting the Mac https://t.co/3VPrYzN3wDJune 4, 2018
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 (opens in new tab), including Dota 2, Rise of the Tomb Raider, Bioshock Remastered, and Fortnite.