Yesterday at WWDC 2018, Apple revealed macOS Mojave, which is set to bring users a Dark Mode, redesigned Mac App Store, organizable Stacks, streamlined screenshots, and more when it launches wide in the fall. Alongside the new features, Apple has confirmed that it is deprecating OpenGL (Open Graphics Library) and OpenCL (Open Computing Language) in favor of Metal.
This means that apps built using OpenGL and OpenCL will still run in Mojave, but they will no longer be updated after macOS 10.14 launches. Apple encourages games and “graphics-intensive apps” built with OpenGL to adopt Metal ahead of Mojave’s launch, and apps that use OpenCL for computational tasks “should now adopt Metal and Metal Performance Shaders.”
This is going to be a major burden for small game developers.
The advice I’ve heard being bandied around, if you’re not using an engine like Unity which will probably insulate you from this mess, is to use MoltenVK so you can just have a Vulkan backend.
https://github.com/KhronosGroup/MoltenVK
They’re still working toward implementing all of Vulkan’s features, but they’re making excellent progress (especially since Vulkan is much simpler than OpenGL) and it’s not as if Apple is going to immediately cut off access to OpenGL and OpenCL.
https://github.com/KhronosGroup/MoltenVK/blob/master/Docs/MoltenVK_R…
The company that contributed MoltenVK to the Khronos Group also offers a paid, proprietary GLES-to-Metal layer called MoltenGL.
https://moltengl.com/moltengl/
Edited 2018-06-05 22:07 UTC
Not really, it will surely be an issue for those who wanted to develop more mature technology, but any small developer not using Vulkan is really doing themselves a disservice.
Vulkan is the modern OpenGL, and a nice replacement.
OpenCL on the other hand… is up in the air until it gets fully merged and replaced by Bulkan as well.
How good is Vulkan support under macOS?
As far i can tell, native support is non existing.
I don’t think native support will ever exist, because there is really no need for it.
https://github.com/KhronosGroup/MoltenVK
The two apis are conceptually very similar. This kind of thing is probably as close to “native” as you need to get really. Its easier to target Metal than to target the GPU directly, because most of the API can just be translated directly…
Edited 2018-06-06 02:21 UTC
It’s not like they can make WebGL disappear.
Yes, they actually already did…
https://groups.google.com/a/chromium.org/forum/#!topic/blink-dev/dxq…
It will take a while, but WebGL is already dead. The body just hasn’t become cold yet.
ps. WebGPU is an Apple led API effort, heavily based on Metal (but implementable on top of Vulcan and DirectX 12 too)
Edited 2018-06-05 23:48 UTC
..to port Elite: Dangerous to Vulkan, though since they couldn’t release the expansion for macOS due to too old of an openGL version, they should have switched to Vulkan already.. and maybe done a Linux port!
Either way, OpenGL has been basically dead for years on the Mac anyhow, they haven’t updated it in that long anyhow.
Sounds to me like more lock in.
Unity, Unreal, Ogre3D, Qt, Cocos2d-x, bgfx, SDL already support or are in the process of supporting Metal.
Really this is only an issue for those that insist in writing everything from scratch.
And even then, the actual rendering code is a tiny portion of loading meshes, handling shaders, doing UI widgets, loading fonts, textures, handling IO, GPU debugging,….
Any properly written engine already hides the actual 3D rendering calls behind modules.
Surely this is to improve cross-platform compatibly between iOS and MacOS? Noob question – is Apple not forcing iOS game devs to use Metal?
iOS 12 and macOS 10.14 both include working OpenGL drivers, but deprecate them. iOS 11 and macOS 10.14 also only work on devices that include Metal support.
This means if iOS 11 and macOS 10.14 are your minimum requirements, you don’t need to support OpenGL (whereas if you support older OS versions, some devices will need OpenGL so you must support both APIs [or just OpenGL])
Edited 2018-06-06 16:32 UTC
Most game development has already moved to using either off-the-shelf engines or open source frameworks. Almost all engines have abstracted away their rendering backend or are in the process of conversion.
Custom made engines from AAA studios might be affected, but they have AAA funding to implement the proper backend (if they already have at least secondary support for another rendering tech).
So no, small studios will just use Unity, UE4, Godot, whatever. Those that want to build their own engine will of course have to cope with the multiple platforms.
The ones that are going to be affected are those with a custom engine built on OpenGL only.
Edited 2018-06-06 12:18 UTC
Either you use SDL (like you should), or you use some 3rd party engine that will provide what you need.
Personally i think this is a good thing. OpenGL is functional and all but it hinders adoption of Vulkan – even though that’s not what’s going to be supported by Aople, and instead they will have their own API.
Apple often makes risky technological decisions, even if their intent is expanding their walled garden. As much as i don’t like them, i applaud their initiative.
Edited 2018-06-06 16:31 UTC