The reality is likely just market share, hardware and the makeup of that market share.
Macs used to actually be a big gaming platform once upon a time. Myst was a Mac exclusive (built with HyperCard) and Bungie used to make games for macs first before getting bought by Microsoft.
But windows got the upper edge:
1. Much larger slice of the market
2. More of the market is made up of gaming enthusiasts than Macs which are usually either targeting light use, education or professional.
3. You can make affordable gaming PCs with windows. You can’t really do it with any kind of Mac because there’s no product for that market between the Mac Mini and iMac (which were targeted at more casual users) up to the Mac Pro and iMac Pro (which were targeted at professional users)
It’s easier to target the biggest piece of the pie and the one that will buy your products.
That’s why the “API” reason never makes sense, because iOS is THE dominant gaming platform despite having the same APIs as a mac. Game engines often need to support multiple graphics APIs anyway.
So Mac gaming did take off, but it fumbled and never recovered. Part of that is that Apple themselves fumbled as a company, on the verge of bankruptcy before the return of Jobs. What made them successful post his return is also what killed gaming on their platforms: they targeted a different audience.
Before Metal, macOS used to ship with old OpenGL versions. I remember around the Tiger days (10.4) OpenGL was 4-5 years old compared to the version shipped in Windows. And with DirectX, Windows had a better API about two decades before Metal for macOS was released.
I do agree with your other points. Macs are expensive so they are always going to be a niche market. And in most countries, Apple products are luxury products.
Another point is really that Windows GPUs have always been more powerful. If you wanted to play the latest AAA games at good quality and fps you had to be on Windows.
And there's also an ouroboros vicious circle. Devs don't put effort into the Mac because there aren't many gamers on it, and there aren't many gamers on it because dev don't put too much effort. And it doesn't help the decisions that Apple has taken to further ostracize themselves form the desktop gaming market.
> iOS is THE dominant gaming platform
In the US. Worldwide iOS has like 28% market share I believe.
Nevertheless, Apple could really become a gaming powerhouse outside of mobile. If they released an AppleTV with a gamepad and an M3 chip, they bought or partnered with a couple of good console/desktop game studios (not mobile game studios).
The AppleTV already has games but there's not a lot of good content and Apple doesn't even provide an official gamepad. It's clear Apple doesn't care much about gaming outside of iOS.
Seriously though, one hiccup for gaming in macs is the screen resolution: it’s not until recently you could get good performance at such high dpis in games, especially on a laptop. Now that gpus can push those pixels better than before, it will start being more viable to make games for macs
Also, macs are all about being premium while enabling ecosystem lock in. When they have to compete with diy desktops with hot swappable, upgradeable hardware, how can apple possibly charge such a premium for their gaming machines? How can they differentiate via software when gamers don’t care about their os — they want their os to get out of the way so they can game? Apple can’t. So they don’t even try. It would hurt their brand to be seen struggling like that
They won’t compete until they see a way to use their playbooks to gain a platform advantage. Eg, ar/vr with m3 chips
Most games are using off the shelf engines that support Metal anyway, so I think api would only matter for the small subset of games using custom engines.
Regarding your point of the US, I should clarify that I didn’t mean by market share, though I suppose that’s also true in the US. I meant by profit.
According to the WSJ , Apple makes more from gaming than Nintendo, Sony, Microsoft and Activision combined worldwide.
The problem with OpenGL ES AIUI (especially in the early days) is that it exposes lots of hardware specific weirdness. The reason this works for iOS is the same reason it works for Nintendo etc. Millions of devices with identical hardware.