59 comments

[ 3.0 ms ] story [ 133 ms ] thread
(comment deleted)
The GameControllers API on macOS is completely useless. They forget to say it in the documentation, but only a tiny fraction of game controllers are supported, so you have to use a lower level API to have any level of compatibility.

On iOS it's a different story. Only a tiny fraction of game controllers are allowed to connect to iPhones in the first place, and this API supports them all (1).

(1) They have deprecated support for game controllers that don't have joysticks, so even made-for-iOS game controllers may stop working.

XBox One and PS4 controllers have been supported on Mac and iOS since last year. The situation was pretty grim before then, but things are much better now.
Wow I didn't realise this and I just tested my XBox Controller with Evoland and Limbo and it just worked! Thank you! Now I can finally continue playing these, as controlling them with touch was horrible
Reading gamedev subs on reddit, I got a very strong impression that Macs are generally being looked down upon and not considered worthy of porting to.

In part due to a significantly weaker hardware compared to Windows machines, in part due to constantly changing API surface and breaking backwards compatibility, and in part due to historical game-hostile stance of the company stemming from Jobs' personal dislike towards having games on Mac.

Is this off or did I get the sentiments right?

Well, the 3D performance is very poor in general - my 2018 MacBook Pro 15" is about 30% slower under macOS than on Bootcamp Windows on the same hardware with the same app. And that comes on top of the fact that the GPUs in these MacBooks aren't really all that good and can't really run games at native screen resolution with any kind of decent performance.

The Windows world has made huge strides - e.g. laptops like Razer Blade Stealth 13" pack in faster GPU which is actually usable in a MacBook Pro 13" sized chasis.

Basically. Also, amusingly in this context, they have bad joypad support (No built-in support for xbox controllers is pretty grim, you have to rely on fan drivers. [Rumble stopped working last year]). Maybe they'll improve it, but maybe not. I'm very skeptical.

Also on iOS they totally let gamecenter rot.

They're a bit more positive now now, but for a long time in their conference talks they tend to up productivity tools and downplay games, which are a biig source of app store money IIRC. They're ashamed of games a bit (their original theming for gamecenter was a casino, which I think accurately reflects their distaste for games). And that's a position you can have, but it makes it less appealing if you're a game developer.

[honestly, raw hardware performance\value for money is the least of the issues].

The linked video gives a code example and describes haptic support specifically with xbox controllers, but perhaps it's only the newest ones?
They added support for PS and Xbox controllers last year, but it’s a bit too late at this point.

They added support for the pro Xbox controller this year.

(Acknowledgement: I didn't watch the video...). Huh, I guess my knowledge is out of date - last year I had to give up on mac rumble support from a game because the drivers people use didn't support it any more - https://github.com/360Controller/360Controller/issues/978

Abstractly, it's good to see they're supporting it, but they're so inconsistent with game-related stuff that I can't muster enthusiasm.

[edit: I tried to find a list of supported controllers for macOS, but couldn't]

macOS 10.15 has built-in xbox controller support.
It is spot on. Macs are less than 5% of the Steam audience, software now needs notarization, developer tools cost money in the form of hardware, GPU drivers are buggy (unless you use Metal and buy into Apple ecosystem), modern OpenGL was abandoned years ago, etc. So developers only target macOS if the game gets big enough.

From the point of view of gamers, it is annoying. The recent 32-bit support drop killed a huge amount of macOS games. Now I have to bootcamp to play some of my favorite games. The GPU performance is also quite bad due their fight with NVIDIA.

I'm wondering if any of this will change now that Apple is going all-in on vertical integration, basically unifying their platforms so you can write a game once and run it on Mac, AppleTV, iPad and iPhone with (almost) no changes. Their hardware will all run comparable Apple CPU's & GPU's, same API's, appear to fully support game controllers etc, and the development and deployment platform are pretty much the same thing. This makes a small step towards a unified platform for light gaming.

I get that MacBooks and AppleTV's will never be anywhere near the performance of PC, Xbox or PlayStation, but Nintendo has shown that doesn't have to matter. I'm pretty sure any Apple SoC used in the last ~2 years already beats the Nintendo Switch for example. All Apple needs to do is put some effort towards getting more 'real' games in their store, ie: games like you would play on switch with traditional controls, and not glorified mobile games that also have to work with the ridiculous AppleTV remote.

My feeling has been for a long time already that Apple is really leaving a huge opportunity on the table here. But the vibe I got from WWDC keynote and platform state of the union was that they seem to have more focus on this now, showing unity, maya and some other tools that can be used for game dev, running on their Apple Silicon. So who knows what they are planning...

> I'm wondering if any of this will change now that Apple is going all-in on vertical integration, basically unifying their platforms so you can write a game once and run it on Mac, AppleTV, iPad and iPhone

Nothing will change. Mobile games will continue being mobile games. Hardly anyone else will bring their games to the "unified platform" for the simple fact that you cannot run the same game on desktop and mobile.

I think that currently there are some games in Apple Arcade that works on macOS, iOS and Apple TV; that said we’re not talking about the usual AAA games of course.
> I think that currently there are some games in Apple Arcade that works on

Mobile games will continue being mobile games.

;)

That's the only type of game that can work on both desktop and mobile.

If you can run iOS apps on mac in the future, that includes games too.
Of course, but it doesn't factor in the interface and input differences. It is next to impossible to port a game optimized for PC to mobile. And nobody cares about mobile games making their way onto desktops.
> the vibe I got from WWDC keynote and platform state of the union was that they seem to have more focus on this now

It doesn't matter - I don't think they really understand the dynamics of the traditional gaming market. They are bewildered that their strong position in the mobile-game arena, which is due almost entirely to the economic characteristics of their customers' demographic, is doing nothing to improve their position in the desktop/AAA game, which plays by a different set of rules and appeals to very different constituencies.

It's a bit like little chains of trendy indie cinemas were trying to get Marvel or Warner to make films with them in mind: it ain't going to happen, they just don't care, their business works on a different level both on quality and quantity.

Those were on Intel Metal Drivers.

Hopefully drivers quality will improve once Apple take full control of their GPU as well.

> Macs are less than 5% of the Steam audience

Isn’t this one a bit of a chicken/egg situation?

If you're only 5% of the market, you can't afford to try vendor lock-in tactics. But that's exactly what Apple is doing with Metal.
Maybe, but Apple's choices (described by other replies ITT) only made it worse. Deprecating OpenGL and dropping 32-bit compatibility, for instance.
As a developer, you don't have much incentive to fix it yourself.
In fact, one could argue that you’re actually penalized for trying to fix it yourself.
> The recent 32-bit support drop killed a huge amount of macOS games. Now I have to bootcamp to play some of my favorite games.

I just see no reason to upgrade the OS to the version that dropped 32-bit support. High Sierra runs everything and feels great.

Xcode 11.5+ runs only on Catalina. If you want to use it, you’re mostly forced to.
This is one of the real problems: Apple knows that a significant chunk of desktop/laptop users are iOS devs, and while they started to use Xcode as a carrot, it’s now very clearly a warship-mounted harpoon, dragging everyone along in to waters infested with piranha (biting in to freedom of speech, ability to use 3rd party tools, ability to hack away at the hardware of our choice, and many others).
With the recent move to ARM, you won't be able to use bootcamp for games anymore either.

I think this move was the final nail in coffin for Mac gaming.

I've always found it frustrating that a 3k Mac has a barely acceptable GPU compared to its PC counterparts.

I mean my 2019 Mac Mini can just barely run StarCraft (1998) ...
Unless your definition of “game” primarily covers Japanese or Chinese apps you play to build a deck of playing cards by collecting spent $100 App Store prepaid cards through the process of paying iAP to collect digital arts of featureless girls with superbright skin made of raw springroll wrap, difference between Japanese and Chinese being either the girls consists of those {are FTM, has absolute flat chests, are chemically castrated men} or {has breasts larger than a sack of football, has breast larger than a sack of football and hair made of bare optical fibers}, then you’re spot on. As for “games” that falls into this category Apple loves them.
> due to constantly changing API surface and breaking backwards compatibility

Interesting that those same problems exist in Linux Desktop, and Ubuntu nearly pulled an Apple and dropped 32bit support on x64. The fact that Valve maintains a platform for devs to target that is relatively independent of distribution shenanigans, and that you can run Linux without paying for it or buying new hardware (probably), are the only reasons it gets any attention at all.

Apple isn't doing this for Macs primarily, this is for the iPhone and iPads. With Nintendo starting to bring a lot of titles to the app store, Apple probably expects other big publishers to start using it as well. They are going to want good controller support. Dark Souls on the iPhone 13? Yeah, I'm going to need a controller. Fortnite is huge and more titles that offer mobile experiences are coming.

There's also an entire generation of children growing up right now who gamed mostly on their mobile devices. One of my friend's kids actually made fun of me for still playing games on my desktop.

Think about what a Nintendo Switch is. It's an iPad with controllers stuck to the side. I can imagine a future where Nintendo might say "why are we building hardware, Apple does it better and cheaper than us, let's just be a publisher". From what I understand, most hardware is sold at a loss anyways, so what's preventing gaming from consolidating around a few devices?

Nintendo will not give up control of their distribution to a company that takes a 30% cut of software licenses. The expectations of people who play Switch games and people who play mobile games are also vastly different. You can see this by looking at the types of games Nintendo publishes on the respective platforms. Their mobile games are free to play, chock-full of mobile game style in-app purchase garbage, whereas their console games are much more traditional premium titles with an up-front purchase price. These are 2 different markets with different audiences.

They also typically don’t sell their consoles at a loss, unlike the other manufacturers and stated they wouldn’t sell the Switch at a loss.[1]

1: https://venturebeat.com/2016/10/26/nintendo-wont-sell-switch...

You said weaker hardware but really it comes down to cost and modular builds with PC's are a huge factor from a game player perspective. You can piece-meal together a decent gaming system for half the cost of a Mac and the most useful upgrade is a new graphics card.

You can't upgrade Macs.

There is also the extra development fees and/or needing a mac if you want to do any testing.

Most engines (Gamemaker/Unity/and epic soon) will port to iOS/Mac so it isn't a huge 'step'.

Power really isn't an excuse these days. There's a huge library of great games on Steam that run beautifully on a $600 laptop. Look at how many great games are on the Switch, which is about as powerful as an iPhone 6S.

It's just ridiculous that a leading software company can't support such a wildly popular class of software, but Apple game support has such a long history of tragic incompetence that any handwringing is a waste of time.

For hobbyists, a big blocker is that one needs a Mac just to export for it. This probably isn't an issue for profitable companies, but $400+ for a MacOS device is a big ask for indie devs making games in their free time.
So apple reinvented SDL and made it less portable?
SDL2 is a layer over Metal, or Vulkan, OpenGL, D3D and others.
It also abstracts out a ton of third party controllers
Why isn’t the ipad a portable console for TVs?

Why can’t you plug the iPad into an HDMI slot and use near-by iphones as controllers?

I think this is exactly what Nintendo was thinking when it came up with the Switch and it's pretty brilliant.
I have this daydream that there are some Apple engineers that looked at the Switch and said, "Dammit. We could have done this."
It is well possible to attach a TV and a gamepad to an iPhone - there is an official adapter that plugs into the iPhone's lightning port and gives you an HDMI port and a vacant lightning port.

I don't know what functionality does that provide though. That probably does just screen mirroring + charging.

Why do we still use game pads anyway? Why not just put some sensors on the fingers and the body itself and capture the motions?
For VR, that is pretty much what we do! For some higher-end stuff like the Valve Index knuckles, you don't even need to hold the controllers - they strap to your palm and track the position of each individual finger
Why not do this for everything? Perhaps it could even replace ordinary keyboards.

By the way I once tried playing a first-person shooter or a PS3 using its gamepad - it felt like controlling an excavator (which is quite hard do fast and agile enough to evade and shoot an enemy). I believe a VR-like sensor could be as convenient as a mouse is.

"once tried playing a first-person shooter or a PS3 using its gamepad"

Is this because you aren't used to using a gamepad? I know people who exclusively use console gamepads and struggle to use a keyboard and mouse to the same accuracy.

AFAIK it's a well-known problem players using mice have a significant edge in competition with game-pad users.
You're absolutely correct, but that doesn't mean that playing on a gamepad is difficult.

Just that it perhaps doesn't provide you with the accuracy of a mouse, that is why they add in mitigating features such as aim assist.

In some areas its been a problem with PC players playing on a gamepad, to take advantage of high refresh rates and FPS in conjunction with aim assist.

My point being that I have friends that have tried playing FPS games on a PC and have seriously struggled. Not because it's difficult but because it was new to them.

A game pad is a sensor that captures the motions of your fingers.
Because we like tactile feedback, sensors are only half the picture.
As outsider I'm amazed how much work it is just to detect a button or to vibrate the controller. That haptic diagram at 7:55 looks like satire. Compare it with LOVE API which is as simple as it can be. https://love2d.org/wiki/love.joystick
Apple is wasting its energy. All they know is they seem to make some decent money from the crappy mobile gaming world, so they blindly think they'll be able to leverage this.
Weird studio over-production. The first speaker looked like old CGI after cutting away from the cartoon.