It's mostly Apple's fault. Three things: Graphics drivers quality, post-OpenGL library and long term commitment.
If you want to become a platform for game devs you have to make long-term commitments. Apple was not willing to make that commitment ten years ago. A major problem historically was Apples coice of graphics cards. The 1998 iMac had a poor graphics card. The ATI Rage 128 Pro was good for a few months, but Apple failed to adopt the ATI Radeon. No dedicated graphics card in the early Intel notebooks was insane. Intel GMA XXX was laughable. The current Intel HD 4000 is better, and so will the "Haswell" onboard chips be. Pricing is an issue. The 27" iMac is a great gaming device. So good in fact that the leading video games magazine in Germany, GameStar, did a device test on that thing. They slammed Mac OS X as a gaming platform and recommended installing Windows. The price point remained to put people off. A 2560x1440 screen means you need a high end graphics card. You're paying 2150€ for a 27" iMac and a 680MX.
Another problem historically has been graphics libraries. For a while it was QuickDraw or whatever it was called. I think the original Tomb Raider or Unreal had rendering paths for that. 3dfx had their own Mac version (Glide), that helped for a while. In 2000 my G4 had a Voodoo3 card, a PC card with beta 3rd party drivers. When Apple adopted OpenGL that was good news, especially with id Software being the dominant force in gaming tech and John Carmack being a OpenGL guy. That was in 1998. OpenGL 4.0 is today bloated mess. Add to that the dominant console market and we are in a post OpenGL world. Apple has no answer to that. Microsoft has, it's DirectX. Apple's answer is that desktop gaming is dead and that people should play on mobile devices. Just like Apple's answer is that optical media is dead and people should download music and movies. I think I see a pattern here ...
At a time where the Windows market is a afterthought for console blockbuster titles, so even more is that Mac market thanks to no dedicated graphics card, smaller user base and lackluster drivers. Why would you want to port Battlefield 3, Modern Warfare 3, Crysis 3 or Gears of War 3 to the Mac? Mac users are all just notebook users, right? Just hipsters who don't want violent video games, right? All just girls who don't play video games, right? People who play only cute indie titles, right?
On graphics drivers. The level of optimization in the Windows space is insane, with NVidia and ATI going to great length to optimize their drivers. Up to the point where drivers are optimized for individual titles. Even long time post release. Every major PC title sees new graphics driver versions a few weeks after release that are optimized specifically for that one title. Recent examples: Crysis 3 and Tomb Raider. Apple is not willing to go there.
This is painfully obvious considering that other parts of OS X are well optimized. The performance of Final Cut Pro X proves that Objective-C, XCode, Grand Central Dispatch and the "Core" libraries are all well done. You could argue that for graphics card manufacturers it doesn't make sense to dedicate people to such a small platform. Add to that a company that just won't support you in your efforts (read: Apple). You could then argue that Apple should do that themselves. But that menas hiring. And no graphics driver specialist would want to work for that company. For iOS graphics drivers, maybe, but not for OS X.
To be fair, graphics drivers performance on OS X has gotten better. Years ago Apple collaborated with Valve to improve the drivers. These changes were to be rolled into Lion and beyond. Unreal for Mac was also good news. But Unreal/UDK for the Mac does not mean more Unreal-based Mac titles. Devs and publishers have to actively make the decision to use those features. Unreal is a middleware, and a great one. That means while Unreal might be on the Mac, the physics solution that some dev uses with Unreal might not be. So the Mac version dies right there.
When it comes to gaming technologies Apple is jumping back and forth and that just kills you if you're talking about three year development cycles for blockbuster titles. Optimizing drivers with Valve was good. Retina displays are bad for gaming. Game Center is a mixed bag. Generally the right idea, but depends a lot on the strength of the iOS platform. Maybe adopting a standard instead of creating your own would've been the better choice.
Ironically, for 15 years Apple did not offer an attractive platform for game devs. Starting in 2006 they had the hottest gaming platform out there, but it was not the Mac. It was the iOS.
There's more. Blizzard and id were the last companies producing true Mac ports for a while. Valve has now jumped on that train. All three companies don't care for the latest DirectX features (note: DX10 and 11 titles are deemed unportable to OpenGL since you can't translate those features). CryTex does. Epic does. DICE does. Microsoft does. id has jumped off that train a little bit with Rage. Yes, Rage has a Mac port (and a solid one), but unlike in the past the Mac version did not come from id directly.
That means that the Mac versions of today are usually Cider ports. I guess that Borderlands 2 and Dirt 2 are Cider ports.
But there are some bright sides. Gaming on the Mac actually never looked better than it does now. It's just that the rest of the market has long passed it by. If Apple tries to compete with the latest console blockbusters they will lose. Even Windows does. Gaming happens somewhere else, that's the good news. Happens on mobile devices, happens in web browsers. It's kind of anachronistic actually that Apple promotes OS X games at all. Kinda weird to look at the iMac page and see EVE Online on the promo pictures. Guess they feel uncomfortable seeling you a 2150€ box just for emailing.
OS X is great for App Store based indie titles. It's also great for MMOs a la WoW or EVE Online - which performance is just barely good enough.
And there are well-performing OS X titles. It's just that nobody knows them.
Overgrowth is one example,
Quake Live is another. Go to the Unity website and
filter for Mac titles. Yeah Ok, not exactly blockbuster titles, but my point is that some devs actually want a solid Mac version. Valve's steam is the best thing ever to happen to Mac gaming. Now you have a way of distribution for medium-sized tiles, which are bigger than your cute mobile tiles, yet smaller than your 150 people teams console blockbusters. Trine is an example. Torchlight 2 for Mac is being worked on. GOG.com helps the Mac market - see
The Witcher 2.
I recently posted in the Mac Pro forum about my disappointment with purchase of a Radeon 7950 mac edition video card for my Mac Pro 3,1.
There are definitely improvements there compared to the 8800GT that was previously in the Pro but certainly not the night and day boost I was expecting.
I will focus on Dirt 2 as the point of comparison. Under OS X I had to use a mix of medium/Low/Off @1680x1050 to get a playable framerate and even then on some tracks the framerate would plummet to a level that was barely acceptable. Other game's performance such as the Witcher 2 and WoW, were also underwhelming.
So I was kinda fed up and decided I would install Windows 7 on my Pro and see if that faired any better.
I was expecting maybe slightly better performance under Windows 7 but the performance delta is huge.
Dirt 2 under windows 7 with everything turned up as high as it can go and with post processing effects higher than that allowed in OSX in addition to 8x AA was absolutely flawless. It never ever dropped below 60FPS and without vsync my framerates were averaging around 100+ Other games showed similar improvements.
So where do these problems lie in OSX? Apple's OpenGL framework? The Graphics vendor's drivers? or are the game ports to OSX simply unoptimised?
It's really disappointing to me as I would prefer not to have to run windows at all but sadly for decent gaming performance it seems to be a necessity.
Thoughts?
I haven't heard of that rumor yet. The PS3 used PSGL, which is a weird mix of OpenGL ES and CG. So if that's any hint ...?
But yes, a lot of analysts are saying that the upcoming generation of consoles will be more porting friendly. With the PS4 and the XBox1 supposedly both using 8-core AMD APUs with supposedly direct access to system memory, things might be more portable. However, in the current generation you already have portability, yet titles are being kept exclusive. In other words: technological arguments usually lose against economical ones. The early PS3/360 titles were poor PC ports, with the 360 architecture being the most PC-like. For cross-platform publishers the PC space is pirate land. They don't even consider bringing console games over to Windows.
I assume that Microsoft is pushing DirectX on the XBox1, so once again middle ware providers a la Epic have to fill the gaps between the XBox1/Windows-PC on one side and the PS4 on the other. The PS4/XBox1 dev kits are out since roughly late 2012. Unity has been announced for the PS4. An announcement for the XBox1 may come (the 1 was introduced later).
Also I don't assume that a Mac porting company would take the PS4 codebase as a starting point. Historically, it has always been the windows version, which made sense for games from Blizzard or id. Even if the PS4 codebase made most sense because of OpenGL that codebase would be the most restricted. That is what you pay for in licensing. When id released the source for Doom3 BFG Edition they stripped away everything Steam- and console-related. So, once again, economic concerns triumph over engineering ones.
But there's more. OpenGL is practically dead. v4.x is a mess, says every dev. It's too bloated and the long expected overhaul did not happen. The Kronos group that standardizes OpenGL is working on a consensus basis. That means that every proposal and every extension has to be in. That's why many devs are using OpenGL-ES already. That is why if you are hoping that the PS4 means more Mac titles you are betting on the wrong horse. iOS is the right horse to bet on. A future AppleTV might be a good gaming console with hardware closer to a desktop Mac, so porting titles over to OS X might make sense. But then again you have the exclusivity and pirating concerns mentioned above. Take a look at the wording that Apple used from 2006 to 2009 when it comes to iOS development. They hoped that a rising iOS means more devs knowing Objective-C, means more OpenGL games, means more XCode users, means more Mac games. Didn't happen.
Question to any Feral or Aspyr employees (if any end up reading this):
A few rumors have suggested the PS4 is likely to be using native Open GL for it's primary Graphics Tech. Assuming this is true, you'd now have similar architectures (x86) and Graphics Libraries to what's used in OS X. Considering that, how easy would that make porting titles over to OS X (assuming that you decided to use the PS4 code)? Would it be something that would take days (in most cases)? Would performance greatly improve (again; in most cases)?
Just curious as it would be great for the Mac platform.