Apple’s WWDC 2018 conference is currently underway and while I was hoping for exciting news regarding Metal and Mac gaming, quite the opposite happened.
Apple announced that with the next version of MacOS, called Mojave, OpenGL will be deprecated:
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.
As pointed out by industry experts, this is Apple’s first step to officially kill OpenGL and that could have serious ramifications for Mac gaming. Many went so far as to say it will eventually kill Mac gaming.
Is MacOS Mojave really the end of Mac gaming?
Twitter is currently buzzing with variations of this question.
— Lars Doucet (@larsiusprime) June 4, 2018
Because if OpenGL is removed, who in his right mind would spend massive resources to support the tiny Mac platform? Right?
The internet loves drama and people love to hate Apple. This explains why many were so quick to call for the death of Mac gaming.
To set the record straight, I reached out to developers that both:
- Have experience with MacOS
- Have created successful games
They all came to similar conclusions: Mac gaming will be just fine.
⚠ Keep in mind this is the personal opinion of developers, not official statements from the companies they are part of.
First of all, OpenGL is not dead
For those unfamiliar with development jargon, deprecated means the feature will continue to work, but will not be supported moving forward and could break. Deprecated does not mean removed.
To be fair, Apple stopped supporting OpenGL years ago, and if the past is of any indication, OpenGL will continue to work for a few more years.
OpenGL has not been updated on macOS for 7 years at least. Deprecated does not mean removed. 10.14 will have the same drivers and support 10.13 had. Not sure what all this fuss is about. They are just making clear they will not update OpenGL, which was obvious at this point.
— Matteo Bertello (@Corralx) June 5, 2018
And by the way, Matteo Bertello works for one of the top Mac porting companies. He understands how MacOS works and knows what he’s talking about.
Raymond Doerr, the developer behind Rise to Ruins concurs:
Assuming the code only remains deprecated and *not* removed, no, I don’t think it’ll hurt anything at all. […] Anyone who needs even-newer OpenGL standards will also have the manpower to support Metal.
Another developer, who preferred to remain anonymous (but is behind one of the most successful strategy games released this year), agrees:
OpenGL is not going anywhere, it’s more like Apple are officially admitting they won’t be advancing it – which they haven’t, for many years.
This means the short-term is safe and developers can continue selling OpenGL games for Mac.
Mac gaming won’t only survive, it will improve
What will happen when Apple eventually kills OpenGL in 3 or 4 years? From all the developers I talked to, there are clearly two camps:
- Small indies
- Medium to big-sized studios
The medium to big-sized studios agree that Mac gaming isn’t going anywhere and that moving to Metal will be a good thing.
As the same developer who prefers to remain anonymous told me:
OpenGL isn’t going anywhere, and the sooner people switch to Metal, the better.
We don’t have yet experience with Metal. From what I hear from other developers, Metal is a joy to use, and implementing Metal is a fraction of the effort required for e.g. Vulkan. It is an extra effort, true, but it seems to be worth it.
And if their long-term intentions aren’t clear enough already, he also told me:
We’re in the middle of a push towards DX12/Vulkan, and it only strengthens our desire to add Metal to the list.
And it makes sense. OpenGL for Mac was in a such a bad state, it was hurting Mac gaming. Do you remember all the games that were on hold because OpenGL was too old to support critical features?
This guide includes all the Mac games that already support Metal. As you can see, it includes some very impressive games.
Platon Fomichev from Elverils, a studio specialized in porting games to several platforms, agrees that moving away from OpenGL is a good thing:
Metal is cool for Mac/iOS but it’s a closed source thing. But one thing you should keep in mind. OpenGL/Metal/Vulkan, it really does not matter as long as renderer components are separated in a small component. […]
The renderer component is 5% of code of the game! Even less. So porting DX->Metal is very easy as long as MTL has enough capabilities.
If you want to learn more about Metal, this video from Apple is an excellent introduction for non-programmers.
But what about the smaller indies?
This is where removing OpenGL could become a real issue, especially for the indie devs who use proprietary engines. Raymond Doerr was clear:
If they remove OpenGL entirely I’d sadly have no choice but to drop support. It’s just not realistic to be a one-man dev and support two entirely different rendering APIs in my custom engines.
They’re asking developers to dedicate their time to an entirely new API only used by one OS with a very small market share (3-4% of my total sales last I checked). It’s simply too time expensive to support, many developers will just drop support entirely.
And that is exactly what many have been screaming on Twitter. If you’re a one-man dev (or a very small team) with a proprietary engine, the day OpenGL is effectively removed, it could mean the end of supporting the Mac platform. But that’s a lot of ifs and OpenGL still has a few years left.
And even for smaller indies, there are solutions.
Multiplatform engines are ready
Engines such as Unreal or Unity are more than ready for the end of OpenGL on Mac. Aras Pranckevicius, a Unity employee, shared his personal opinion with us:
This might affect niche/indie games somewhat more — on the other hand, quite likely many of them already use Unity or Unreal as their engine, so updating to Metal “should” be easy.
Unity will keep on supporting Mac platform for sure. We already have supported Metal on both iOS & macOS for quite some time.
If you’re an indie and use Unreal or Unity, the heavy lifting will be done for you and your games will support Metal without requiring much more work from you.
That said, already released games are a different story. Aras does warn that:
It might mean that some of the games that have shipped some years ago and have never been updated, will stop working. But they might also stop working due to Apple dropping 32-bit support.
I personally will be sad if some of my existing game catalog will stop working. Will they get updated to 64-bit and to Metal from OpenGL? I don’t know. I hope they will!
And there’s also the Vulkan alternative.
Using Vulkan and MoltenVK
Recently the Khronos Group and Valve released MoltenVK, a third-party tool to allow bring Vulkan games to MacOS.
In theory, that could be a great alternative to support Mac, Windows, and Linux simultaneously. Even Valve used it to make Dota 2’s Mac version up to 50% faster than before.
But according to Raymond Doerr, the reality isn’t that simple:
Using Vulkan (and thus, Molten) is completely out of the question for indies. I love Vulkan and I’m trying to learn but it’s a huge beast. It takes about 1,000 lines of code to draw a triangle in Vulkan (not exaggerating!), it takes about 15-20ish in OpenGL depending on what OGL version you use.
While I love Vulkan, it just isn’t viable for us little guys at the moment.
There are no easy solutions, but all is not lost.
Parting advice for smaller indies
We also asked developers if they had any advice for smaller indies. This is what some of them had to say:
- Learn Metal. It will help you port to iOS and iOS IS the place where you can get rich.
- Use some sort of engines/middleware/libraries
- If you don’t use Unity, look at bgfx and Sokol – two excellent low-level, very lean rendering libraries.
- Stick with OGL anyway even if you’re stuck with 4.1 and older standards. Very unlikely you’ll need anything that high anyway.
What does this all mean for Linux?
Linux isn’t directly concerned here but it goes without saying that Mac and Linux gaming have a lot in common. For a while, using OpenGL has been an incentive to support both platforms. Apple’s move to push devs away from OpenGL will certainly impact Linux too.
The dev who prefers to remain anonymous summarized it well:
OpenGL, and especially Mac OpenGL, is a major pain in the ass. We’ll gladly switch to Metal on MacOS, and somewhat less gladly switch to Vulkan on Linux.
Mac gaming isn’t going anywhere
With everything that has been said regarding the death of Mac gaming, we had to set the record straight.
With all due respect, the radical opinions of unknown one-man developers are not representative of how the industry will react. Some of the developers we talked to agree that in certain cases, some games won’t be supported when OpenGL is finally removed.
But that won’t happen anytime soon. And more importantly, the vast majority of the major indies and AAA studios believe that moving away from OpenGL on Mac will be a good thing.
As Michael Blair from Aspyr told us:
We’ve been here before, and this is definitely not the end of Mac gaming.