While individual game developers choose whether to support macOS, the broader phenomenon of developers dropping macOS support is Apple's fault. They either have no interest in being a serious gaming platform, or else they've made catastrophic missteps in their quest to stay relevant for gamers.
I don’t think it has anything to do with their gaming specific capabilities, just their general philosophy matches poorly with the games industry.
Apple insist on having their own apis and they don’t maintain compatibility for older software for very long, these 2 facts explain things fine on their own. Game devs don’t want a major support burden, they’re happy to patch here and there but constant dropping of apis or even architectures is a lot to handle. The bigger impact is that macOS ends up with a lot less old games that still run, if you need a critical mass of games to become a gaming platform, that constant bleed of legacy games will always slow macOS down.
As for gaming specific features, Metal is a perfectly fine api whose only real problem is that it’s different from the other platforms. Maybe not the best, but certainly not terrible. They also have a really nice capability floor, it’s practical to make a modern game work on any Mac from the last X years (maybe the neo complicates that a bit).
There’s probably a few gaming specific capabilities they could improve on, mouse input especially, but that’s never been the real issue.
1. They don't exist, so if you own the game you still want it to work on your computer without maintenance updates
2. They still exist, so they don't want to have to update it every year because they can use that effort on making a new game and continuing to exist while still being able to sell from their existing catalogue because it still works
Either way it's in a game developer and gamers interest to have stable platforms
Yes, I can sort of understand Apple's argument that people should be running an email app that's been updated in the last 20 years, but I don't think it's defensible for software like games (or any offline productivity software, for that matter).
They've said that Rosetta 2 will stick around for games after it's phased out for other software, but it's hard to give much credence to that. Wouldn't be enough to make me want to bother publishing or buying games on Mac. They've dropped OS 9 compatibility (after having Classic), they dropped PowerPC support (after having Rosetta), they dropped x86 support after years of the OS supporting both 32 and 64 bit. And if they're keeping it available for games why not let me run other Intel Mac software?
Hard to imagine Rosetta 2 sticking around more than a couple years when Apple gets bored of supporting it.
Optimization and bug hunting makes supporting multiple graphics api's a pain. I really don't understand Apple's stubborn refusal to make vulkan drivers. Between Apple and the better performance on SteamDeck, I can see PC game developers seriously considering Vulkan over directx.
Sony's PS3 is an interesting comparison. It had some borderline ridiculous hardware by the standards of console development. I mean that both as a positive in terms of theoretic capability, and as a negative in terms of practical usability. Sony had a huge market, so I think they were banking on developers bending over backwards to build things to the strengths of the PS3 which would be such an undertaking that it'd almost undoubtedly have left the PS3 version of stuff as definitive, and other platforms operating as second class citizens. Unfortunately for them developers took the path of least resistance and ended up doing the exact opposite.
If game devs want to reuse their Vulkan code on Apple device, they can use MoltenVk or the more recent KosmicKrisp.
> Optimization and bug hunting makes supporting multiple graphics api's a pain.
The problems usually lurk in the graphics drivers, and not in the 3D API layer (e.g. optimization and bug hunting isn't much difference even when your code only supports a single API, and especially Vulkan drivers from different vendors may behave wildly differently on Windows, at least compared to D3D).
> I can see PC game developers seriously considering Vulkan over directx
Lol. That train has left the station long ago (around the time when Stadia was shut down, Vulkan saw a small uptick because of Stadia, but that soon fizzled out). Games need to support multiple 3D APIs anyway once they release on consoles. One or two more for the PC and Mac version doesn't make much of a difference (and most games are built on top of an off-the-shelf-engine anyway).
When a game glitches because of a driver bug, its the game developer that gets the bug reports (and the heat) and often has to isolate the problem to convince the gpu driver-team to fix it.
You may note that I specifically said "PC game developers" Your whole but consoles argument, completely misses the mark.
> When a game glitches because of a driver bug, its the game developer that gets the bug reports (and the heat) and often has to isolate the problem to convince the gpu driver-team to fix it.
Exactly, and having a Vulkan-only codebase won't make that problem go away. And IME it's much more likely to encounter vendor-specific driver issues on Windows Vulkan drivers than for D3D drivers.
Vulkan drivers on Linux are in a much better shape because they are centralized under the MESA project (except NVIDIA's drivers, which also have significant behaviour differences to the MESA drivers, at least in the window system glue).
> You may note that I specifically said "PC game developers" Your whole but consoles argument, completely misses the mark.
Why should a game developer support the tiny Mac market, but ignore the much bigger game console market though? From a business perspective, Mac support simply doesn't make sense, it's too much hassle for too little return (and the hassle isn't about the different 3D API, Metal is actually one of the best parts of the whole Apple developer ecosystem).
The drivers for D3D and Vulkan are separate, so supporting both opens you up to a whole new slew of bugs.
Mesa is largely an Umbrella. While some of the code is shared by in large, AMD works on radv, intel works on vulkan-intel and of course Nvidia work's on its own proprietary driver rather then very limited NVK.
Many games are first released on PC and only ported if they get big enough. So there are no considerations for cross-platform support in the original development.