HACKER Q&A
📣 behnamoh

Does Apple secretly want to prevent gaming on macOS?


I can't believe this, but compared to Linux, macOS actually provides worse gaming experience (at least for me). On Linux you have Proton to help with Windows games, but it cannot run natively on macOS due to macOS missing several APIs:

- eventfd syscall is Linux-specific, without good alternative on macOS

- Apple does not support Vulkan, which is needed for DXVK

- Apple deprecated OpenGL support, which is needed for WineD3D

- macOS is missing support for Python 3 OOTB

- etc.

It just looks as if they _want_ to avoid success at all costs. Is there any reason that a megacorp would make such decisions?


  👤 belltaco Accepted Answer ✓
The simple answer is that Apple wants a 30% cut of all games that can run on a Mac. Since that's harder to do without a huge backlash if they restrict non-Mac Store apps and games from running on Macs, they just neglect it and do the bare minimum to cut costs on anything graphics related, i.e have the same APIs, software and drivers(Metal) that they already have on iOS and running on very similar Apple Silicon on mobile. Pushing game devs to use Metal provides Apple valuable lock-in.

They don't think about providing extra value to the Mac users since they already got their money from the high margin hardware. It's their way or the highway.

It's sad because Jobs used to have game devs launch games that ran on the Mac during WWDC presentations. Maybe when Apple was doing badly financially it became a smaller priority. I'd like to think that if Jobs was around after Apple hit $1T market cap he'd have prioritized proving more value for Mac users with supporting gaming, but with a COO like Tim Cook at the helm(just like MS under Ballmer) it feels like it won't happen. It's nice to have technology/engineer CEOs that like to build technology for its sake instead of only looking for more money like MBA CEOs do. Especially technology companies sitting on 200 billion dollars in cash.


👤 58028641
This may be one of the reasons Apple does not support Vulkan.

"Apple is not comfortable working under Khronos IP framework, because of dispute between Apple Legal & Khronos which is private. Can’t talk about the substance of this dispute. Can’t make any statement for Apple to agree to Khronos IP framework. So we’re discussing, what if we don’t fork? We can’t say whether we’re (Apple) happy with that."

Agenda / Minutes for GPU Web meeting 2019-12-09 https://docs.google.com/document/d/1F6ns6I3zs-2JL_dT9hOkX_25...


👤 alwillis
It's ironic that Apple devoted a chunk of its WWDC keynote on gaming on the Mac. I’m not a gamer but apparently Resident Evil Village is coming to the Mac and folks are excited about that [1].

It's not that Apple doesn't want games on macOS—they do. Now that nearly their entire product line is running on Apple Silicon with their GPUs, Metal is the best way to write game code that can run on Macs, iPads and iPhones.

From their press release [2]:

Metal 3 — the latest version of Apple’s graphics framework — comes with new features that enable game developers to tap into the power of Apple silicon for even greater gaming performance. MetalFX Upscaling enables developers to quickly render complex scenes by using less compute-intensive frames, and then apply high-quality spatial upscaling and temporal anti-aliasing. The result is accelerated performance that makes games feel more responsive and graphics that look stunning. Game developers also benefit from a new Fast Resource Loading API that minimizes wait time by providing a more direct path from storage to the GPU, so games can easily access high-quality textures and geometry needed to create expansive worlds for realistic and immersive gameplay.

Game developers that integrate with Game Center can now add Activity views into the dashboard, making it possible for their users to see which games their friends are playing and their high scores. And with SharePlay support, it’s easier than ever for users to play together in real time.

[1]: https://youtu.be/q5D55G7Ejs8?t=4867

[2]: https://www.apple.com/newsroom/2022/06/apple-provides-develo...


👤 musicale
> It just looks as if they _want_ to avoid success at all costs. Is there any reason that a megacorp would make such decisions?

One reason is that you and Apple have different definitions of gaming success.

For you, gaming success means "running PC/Windows games well on macOS."

For Apple, gaming success means "making more money from gaming than Microsoft or Nintendo."

Guess which path they've taken?


👤 noirbot
I'm also curious how much it is because Apple is primarily a hardware company, and over-leveraged in laptops vs. desktops in the modern era. Apple as an OS vendor probably wants to be a good OS for everyone. Apple as a hardware vendor is in a world where most non-console gamers are desktop-based and getting them onto an iMac or a Mac Mini is a harder sell.

There's a lot of odd history that goes into the Windows hegemony of the gaming industry, I'm sure, but that's lead to an industry that's built on desktops for the most part for non-console gaming. Even if Apple magically had even Linux-level support for games, I'm not sure how much that would ever raise their prospects in business or hardware sales, so it's a harder sell internally.

Taking the Wine/Proton emulation path that Linux has gone down also means that Apple would now be beholden to Microsoft not being screwy with them when it comes to how DirectX or the like gets developed in the future. I'm sure there's some calculation that if they started trying to be cross-compatible with something as complex as Windows' graphics APIs, it opens them up to MS intentionally breaking compatibility in the future just to ruin them. I know Linux devs have enough trouble with that already and MS almost definitely doesn't care about them.


👤 GeekyBear
The Mac's traditional problem is that it's a small niche market. It may or may not make economic sense to port to an Intel Mac, depending on the popularity of the game in question.

iOS, on the other hand, is the most profitable segment of gaming. A developer is certainly much more likely to to target the platform where the money is, and it's no longer possible to target iOS without your game also working, unchanged, on an Apple Silicon Mac. (Although you should, at the very least, add support for game controllers, since iOS and Macs now support XBox, Playstation, and Nintendo controllers out of the box)

Adding traditional Mac UI application chrome and adding support for a mouse based UI (in addition to a gaming controller) is also a nice thing to do for Mac customers.

The strategy of leveraging the most profitable segment of gaming is the opposite of trying to avoid success.


👤 clintonb
I doubt they are avoiding success, but they aren’t doing anything to attract gamers. When I think of gamers, I think of fully-customized machines modded to the owners’ desires. My maxed out MBP looks like every other one, and it’s pretty much impossible for me to modify.

Forget the software. Why would any gamer want to buy expensive hardware that cannot be customized/upgraded after delivery?


👤 ChristopherDrum
"It just looks as if they _want_ to avoid success at all costs"

Microsoft owns how many gaming properties and technolgy stacks at this point? Despite that, Apple beat all other companies to the $3T market valuation in January this year (AAPL at $2.2T, MSFT at $1.9T today).

I fail to see where Apple is "avoiding success" in this scenario. They have clearly shown that one need not appeal to the gamers to find success. Though I am a PC gamer, I kind of get it TBH. The variety of motherboards/GPUs/CPUs/APIs etc are kind of bewildering and having something that "just works" (or at least aspires to that goal) is appealing.


👤 jimsmart
It's perhaps worth noting that it took Microsoft a long time to make Windows into a gaming platform.

Their initial release of GameSDK (which they later renamed to DirectX) was pretty lame. As were early versions of DirectX. They also deliberately pitched OpenGL as not- and never- being suitable for gaming (despite having championed it only a year or so previous, and talking about shared driver cores), choosing to promote their own proprietary DirectX APIs instead. (Source: I was a games dev back then, clearly I'm old) — At the time, it was far preferable to simply stick to developing games for the DOS platform, using one's own software-rendered 3D engine, plus support for various 3D cards. But folk like Carmack proved that OpenGL could be fine for games, if not superior.

Much time has passed since then. DirectX has matured, OpenGL didn't go away, and DOS as a games platform (or otherwise) died.

Apple's current situation isn't much different to the early Microsoft DirectX/GameSDK days really. These things always take time. Particularly when folk are reinventing wheels for various reasons (whether rightly or wrongly).

I'm not sure what OOTB support for Python3 has to do with macOS being a gaming platform in any way though.


👤 WoahNoun
Steam invested heavily in Proton due to competitive threat of a future (consumer) windows where applications can only be installed from the windows store. (and for their own nascent hardware business)

Apple doesn't have any incentive for gaming on macOS. They already make a large amount of gaming revenue from the app store. Gamers on macos would likely buy from steam anyway. And they aren't going to sell many more macs just because the gaming support is a little better.


👤 wsc981
With regards to Vulkan support on macOS, there’s MoltenVK [0].

> MoltenVK is a Vulkan Portability implementation. It layers a subset of the high-performance, industry-standard Vulkan graphics and compute API over Apple's Metal graphics framework, enabling Vulkan applications to run on macOS, iOS and tvOS.

—-

[0]: https://github.com/KhronosGroup/MoltenVK


👤 pengaru
I've been told that the "deprecated" OpenGL is mostly just signaling to promote Metal adoption and not actually getting removed anytime soon, since it would be far too disruptive.

Something along those lines was the rationale I was given for GTK4 devs choosing to standardize on OpenGL despite prioritizing accelerated MacOS support.

It'd be nice to have more data points preferably from current Apple folks in this vein, since it's a constant factor to this day in deciding what GPU API to target when supporting the big three OSes. Maybe we're already at a point where webgpu makes the most sense?


👤 heavyset_go
Apple is optimizing for vendor lock-in of developers and for the sweet, sweet App Store margins on games and in-game purchases. Enabling cross-platform game development goes against both principles.

👤 United857
How much of this is a problem in practice when Unity, etc. abstract away all of those API differences these days? What's preventing a cross-platform game developer from targetting the Mac?

👤 al2o3cr

    Is there any reason that a megacorp would make such decisions?
Best-case, emulation delivers an experience that's not too notably crappy. Spending engineering effort to deliver a "not too bad" experience isn't how you become a megacorp.

    macOS is missing support for Python 3 OOTB
Good point, how did I forget how Windows was held back by lack of out-of-the-box Python for all those years /s

👤 zaptheimpaler
I mean it sounds like you think "simply support Vulkan" or OpenGL is just free and doesn't take any development resources at all. My understanding is Apple's graphics stack has always been optimized more for high quality / easy application development, video editing and other use cases. Apple (and other megatechs) are resource-constrained as all companies are, they don't have infinite manpower and money.

👤 sally1620
Apple is already in [casual] gaming, they have Apple Arcade and hundreds of high quality games on app store. They also have "console" called Apple TV. Evey Apple store sells Playstation controllers.

Apple still considers Macbooks as trucks: they are for developers and professionals, not gamers or everyday users. They want non-developers to buy iPad and that is why there is no sub-$1000 MacBook.


👤 pid-1
I've spend the past few years distro hopping.

To my surprise, a significant portion of my Steam library works out of box in Linux.

Disclaimer: I don't play many AAA games.


👤 32gbsd
Just go back to the flash days and you will figure it out.

👤 JKCalhoun
My guess: Apple doesn't want cross-platform software at all — games or otherwise.

If you want to be cynical, Apple wants devs to get locked into Apple's ecosystem by writing to Metal, in Swift, etc.

If you want to be generous, ports to Mac OS have traditionally been shit as the Mac is treated as second-class by devs. (I bought Kerbal Space Program off Steam for my Mac, returned it immediately — UI was so bad on the Mac, so un-Mac-like.)


👤 navjack27
I dunno. I'm playing games and emulators. If they are preventing things they are doing a poor job.

👤 Saphyel
Apple only wants your money and they will invest as much money on the marketing team as they can. Their porduts are average or mediocre.

No one remembers the bluetooth not working? The famous Magic Mouse ? iPhone 6 was bending in people's pockets?

The list is far from short


👤 GekkePrutser
I think they're happy with the mobile ports that are coming because that's where the mainstream is.

👤 jsiaajdsdaa
threejs runs just fine baby, webgl ftw and may the great portening begin

👤 politician
IMHO, WebGPU on Metal will erase Apple’s foot-dragging.

👤 EddieDante
Apple is already a profitable, trillion dollar business. They don't need gamers, and Tim Cook might even think that making macOS more attractive to gamers might debase Apple's brand.